Slide 7
Slide 7 text
Knative Eventingを用いた非同期連携
# イベントを受信し、在庫情報を更新する
@app.route("/", methods=["POST"])
def receive_cloudevents():
# ①イベントを受信する
event = json.loads( request.data )
# ②処理ロジック
foo = bar(...)
# ③HTTPレスポンスのヘッダをCloudEvents形式とすると、
# Knative Eventingがイベントの発生と判断してくれる
…
response = make_response( json.dumps(value).encode('utf-8') )
response.headers["Ce-Id"] = str(uuid.uuid4())
response.headers["Ce-Source"] = "dev.knative.serving#stock"
…
return response, status_code
①受信
Kafka
②Logic
アプリA
Knative
Eventing
Topic
③返信
アプリB
Kafka固有の実装を吸収
イベント送信先をYAMLで
定義しアプリ間連携
7