1. 概要
このラボでは、Pub/Sub トピックを Workflows サービスに接続する Eventarc トリガーを作成します。Eventarc を使用すると、サービス間の通信を分離できるため、ソリューションの拡張性とイベント ドリブン性が向上します。複数のステップを含むワークフローを作成して、Cymbal Eats での注文に対する顧客の特典ポイントを計算するビジネス プロセスを実行します。ワークフローは、GKE Autopilot で実行されているアプリケーションに複数のリクエストを送信し、Pub/Sub トピックにメッセージをパブリッシュして、計算された特典ポイントを Order Service アプリケーションに通知します。

GKE Autopilot とは
GKE Autopilot は、ノード、スケーリング、セキュリティ、その他の事前構成された設定などのクラスタ構成を Google が管理する GKE の運用モードです。Autopilot クラスタは、ほとんどの本番環境ワークロードを実行するように最適化されており、Kubernetes マニフェストに基づいてコンピューティング リソースをプロビジョニングします。この合理化された構成は、クラスタとワークロードの設定、スケーラビリティ、セキュリティに関する GKE のベスト プラクティスと推奨事項に準拠しています。組み込み設定の一覧については、Autopilot と Standard の比較表をご覧ください。
GKE Standard では、ワーカーノードとノードプールの構成の管理はユーザーが行い、残りの部分は GKE が処理します。
GKE Standard モードで実行する場合の顧客と Google の責任範囲

GKE Autopilot では、ノードプールの構成と管理は Google の責任となります。これにより、クラスタ上で実行されるアプリケーションとサービスに集中できます。
Eventarc とは
Eventarc を使用すると、基盤となるインフラストラクチャを実装、カスタマイズ、またはメンテナンスすることなく、イベント ドリブン アーキテクチャを構築できます。Eventarc は、分離されたマイクロサービス間の状態変更(イベント)フローを管理するための、標準化されたソリューションを提供します。Eventarc がトリガーされると、配信、セキュリティ、認可、オブザーバビリティ、エラー処理を行いながら、これらのイベントを Pub/Sub サブスクリプション経由でさまざまな宛先(Workflows、Cloud Run など)に転送します。
Google イベント プロバイダ
- 90 を超える Google Cloud プロバイダ。これらのプロバイダは、ソース(Cloud Storage など)からイベントを直接送信するか、Cloud Audit Logs のエントリを介してイベントを送信します。
- Pub/Sub プロバイダ。これらのプロバイダは、Pub/Sub メッセージを使用して Eventarc にイベントを送信します。
サードパーティ プロバイダ
サードパーティ プロバイダは、Eventarc ソースを提供する Google 以外のエンティティです。
Eventarc トリガー
- Cloud Pub/Sub イベント。Eventarc は、Pub/Sub トピックに公開されたメッセージによってトリガーできます。
- Cloud Audit Logs(CAL)イベント。Cloud Audit Logs では、クラウド プロジェクト、フォルダ、組織ごとに管理アクティビティとデータアクセス監査ログが提供されます。
- 直接イベント。Eventarc は、Cloud Storage バケットの更新や Firebase Remote Config テンプレートの更新など、さまざまな直接イベントによってトリガーされます。
イベントの宛先
- Workflows
- Cloud Run
- GKE
- Cloud Functions(第 2 世代)

Workflows とは
Workflows は、マイクロサービス、タスク、API を統合できるフルマネージド サービスです。Workflows はサーバーレス サービスであり、需要に合わせてスケーリングされます。
Workflows のユースケース:
- イベント ドリブン ワークフロー は、定義されたトリガーで実行されます。たとえば、新しい注文が送信されたときに、顧客のロイヤリティ ポイントを計算する場合などです。また、注文がキャンセルされたときに、イベントをパブリッシュして、関心のあるすべてのサービスでイベントを処理できます。
- バッチジョブ ワークフロー は、Cloud Scheduler を使用して定期的にジョブを実行します。たとえば、失敗したステータスのメニュー項目を確認して削除する夜間ジョブなどです。
Workflows は、サービスをオーケストレートするワークフローに最適です。最長 1 年間の待機や再試行を含むプロセスを自動化できます。
Workflows のメリット:
- コードよりも構成: ロジックをコードではなく構成に移行することで、技術的負債を削減します。
- アーキテクチャを簡素化する。ステートフル ワークフローを使用すると、依存関係を追加しなくても、複雑なサービス統合の可視化とモニタリングを行うことができます。
- 信頼性とフォールト トレランスの実現。デフォルトまたはカスタムの再試行ロジックとエラー処理を使用すると、他のシステムから Cloud Spanner へのどのステップのチェックポイントで障害が発生しても、障害を制御して進行状況の追跡を継続できます。
- メンテナンス不要。必要に応じてスケール: パッチの適用や保守は不要です。ワークフローを実行した場合にのみ料金が発生し、待機中や非アクティブの間は料金は発生しません。
このラボでは、イベント ドリブン ワークフローを構成します。
学習内容
このラボでは、次の方法について学びます。
- Workflows をトリガーするように Pub/Sub トピックと Eventarc を構成する
- GKE Autopilot で実行されているアプリケーションに API 呼び出しを行うようにワークフローを構成する
- Pub/Sub にメッセージをパブリッシュするようにワークフローを構成する
- Cloud Logging で Workflows の構造化ログをクエリする方法と gcloud CLI の使用方法
前提条件
- このラボでは、Cloud コンソールと Cloud Shell 環境に精通していることを前提としています。
- GKE と Cloud Pub/Sub の使用経験があると役立ちますが、必須ではありません。
2. 設定と要件
Cloud プロジェクトの設定
- Google Cloud コンソール にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。



- プロジェクト名 は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。この場所はいつでも更新できます。
- プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は
PROJECT_IDと識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。 - なお、3 つ目の値として、一部の API が使用するプロジェクト番号 があります。これら 3 つの値について詳しくは、こちらの ドキュメントをご覧ください。
- 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクト全体を削除します。Google Cloud の新規ユーザーは、 300 米ドル分の無料トライアル プログラムをご利用いただけます。
環境設定
検索バーの右側にあるアイコンをクリックして、Cloud Shell をアクティブにします。

リポジトリをクローンしてディレクトリに移動し、次のコマンドをコピーしてターミナルに貼り付けて Enter キーを押します。
git clone https://github.com/GoogleCloudPlatform/cymbal-eats.git && cd cymbal-eats/customer-service
gke-lab-setup.sh を実行して、必要な依存関係をデプロイします。
次のリソースが作成されます。
- AlloyDB クラスタとインスタンス
- GKE Autopilot クラスタ
./gke-lab-setup.sh
認証を求められたら、[Authorize] をクリックして続行します。

設定には 10 分ほどかかります。
スクリプトが完了し、次の出力が表示されるまで待ってから、次の手順に進みます。
NAME: client-instance ZONE: us-central1-c MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.128.0.9 EXTERNAL_IP: 35.232.109.233 STATUS: RUNNING
3. GKE Autopilot クラスタ
GKE Autopilot クラスタを確認する
プロジェクトの環境変数を設定します。
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
初期設定の一部として、次のコマンドを使用してクラスタが作成されました(このコマンドを実行する必要はありません)。
gcloud container clusters create-auto $CLUSTER_NAME --region $REGION
コマンドを実行して、作成した GKE Autopilot クラスタを表示します。
gcloud container clusters list
出力例:

コマンドを実行して、クラスタの認証情報を保存します。
CLUSTER_NAME=rewards-cluster
REGION=us-central1
gcloud container clusters get-credentials $CLUSTER_NAME --region=$REGION
アプリケーションをデプロイする
次に、カスタマー サービス アプリケーションをデプロイします。これは、Quarkus フレームワークを使用する Java ベースのマイクロサービスです。
cymbal-eats/customer-service フォルダに移動し、次のコマンドを実行してコンテナ イメージをビルドしてアップロードします。
./mvnw clean package -DskipTests
export CUSTOMER_SERVICE_IMAGE=gcr.io/$PROJECT_ID/customer-service:1.0.0
gcloud builds submit --tag $CUSTOMER_SERVICE_IMAGE .
AlloyDB プライベート IP アドレスを設定します。
export DB_HOST=$(gcloud beta alloydb instances describe customer-instance \
--cluster=customer-cluster \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo $DB_HOST
次のコマンドを実行して、データベースに接続するためにカスタマー サービス アプリケーションで使用されるデータベース認証情報を保存する Kubernetes Secret オブジェクトを作成します。
DB_NAME=customers
DB_USER=postgres
DB_PASSWORD=password123
kubectl create secret generic gke-alloydb-secrets \
--from-literal=database=$DB_NAME \
--from-literal=username=$DB_USER \
--from-literal=password=$DB_PASSWORD \
--from-literal=db_host=$DB_HOST
コマンドを実行して、deployment.yaml ファイルの CUSTOMER_SERVICE_IMAGE を置き換えます。
sed "s@CUSTOMER_SERVICE_IMAGE@$CUSTOMER_SERVICE_IMAGE@g" deployment.yaml.tmpl > customer-service-deployment.yaml
コマンドを実行して、アプリケーションをデプロイします。
kubectl apply -f customer-service-deployment.yaml
アプリケーションが RUNNING 状態に移行するまでしばらくかかります。
Deployment 仕様ファイルを確認します。
deployment.yaml.tmpl
このアプリケーションの実行に必要なリソースを指定する構成の一部を次に示します。
spec:
containers:
- name: customer-service
image: CUSTOMER_SERVICE_IMAGE
resources:
requests:
cpu: 250m
memory: 512Mi
ephemeral-storage: 512Mi
limits:
cpu: 500m
memory: 1024Mi
ephemeral-storage: 1Gi
コマンドを実行して、ワークフローで使用する外部 IP を作成します。
SERVICE_NAME=customer-service
kubectl expose deployment $SERVICE_NAME \
--type LoadBalancer --port 80 --target-port 8080
コマンドを実行して、作成したリソースを確認します。
kubectl get all
出力例:

4. ワークフローを確認する
Workflows のコアコンセプト
ワークフローは、Workflows 構文(YAML または JSON)を使用して記述された一連のステップで構成されます。
ワークフローを作成するとデプロイ され、ワークフローを実行する準備が整います。
実行 とは、ワークフローの定義に含まれるロジックを 1 回だけ実行することです。実行されなかったワークフローは課金されません。ワークフローのそれぞれの実行はすべて独立しています。また、このプロダクトの迅速なスケーリングにより、多数の同時実行が可能です。
実行制御
- ステップ - ワークフローを作成するには、Workflows 構文を使用して、必要な
stepsと実行順序を定義します。すべてのワークフローには、少なくとも 1 つのステップが必要です。 - 条件 -
switchブロックを選択メカニズムとして使用して、式の値はワークフローの実行フローを制御できます。 - 反復 -
forループを使用することで、一連の数値や、リストやマップなどのデータのコレクションに対する反復処理を行えます。 - サブワークフロー - サブワークフローは、プログラミング言語のルーティンまたは関数と同様に機能し、ワークフローが複数回繰り返されるステップやステップのセットをカプセル化できます。
実行をトリガーする
- 手動 - ワークフローは、Google Cloud コンソールまたはコマンドラインから Google Cloud CLI を使用して管理できます。
- プログラム - Workflows API の Cloud クライアント ライブラリまたは REST API を使用して、ワークフローを管理できます。
- スケジュール設定 - Cloud Scheduler を使用して、特定のスケジュールでワークフローを実行できます。
ランタイム引数
ランタイムで渡されたデータにアクセスするには、メイン ワークフロー(メインブロックに配置)に params
フィールドを追加します。メインブロックは、有効な JSON データ型である単一の引数を受け入れます。params フィールドでは、ワークフローは渡されたデータを格納するために使用する変数を指定します。
ワークフロー ロジック
顧客が存在しない場合、ワークフローは API 呼び出しを行って最初に顧客を作成し、次に特典ポイントを更新します。注文の合計金額に基づいて、ワークフローは乗数を選択して顧客の特典ポイントを計算します。詳細については、次のサンプルをご覧ください。
- calculate_multiplier:
switch:
- condition: ${totalAmount < 10}
steps:
- set_multiplier1:
assign:
- multiplier: 2
- condition: ${totalAmount >= 10 and totalAmount < 25}
steps:
- set_multiplier2:
assign:
- multiplier: 3
- condition: ${totalAmount >= 25}
steps:
- set_multiplier3:
assign:
- multiplier: 5
- calculate_rewards:
assign:
- rewardPoints: ${customerRecord.rewardPoints + multiplier}

5. ワークフローを構成してデプロイする
コマンドを実行して、サービスの外部 IP アドレスを表示します。
kubectl get svc
出力例:

前の出力の外部 IP の値を使用して、次の環境変数を設定します。
CUSTOMER_SERVICE_URL=http://$(kubectl get svc customer-service -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')
ワークフロー テンプレートでカスタマー サービス アプリケーションの URL を置き換えます。
sed "s@CUSTOMER_SERVICE_URL@$CUSTOMER_SERVICE_URL@g" gkeRewardsWorkflow.yaml.tmpl > gkeRewardsWorkflow.yaml
Workflows サービスとプロジェクトの環境変数の場所を設定します。
gcloud config set workflows/location ${REGION}
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
次の権限を持つワークフローのカスタム サービス アカウントを作成します。
- Logging API を呼び出す
- PubSub トピックにメッセージをパブリッシュする
export WORKFLOW_SERVICE_ACCOUNT=workflows-sa
gcloud iam service-accounts create ${WORKFLOW_SERVICE_ACCOUNT}
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member "serviceAccount:${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com" \
--role "roles/pubsub.publisher"
ワークフローをデプロイします。ワークフローは、前のステップで作成したサービス アカウントを使用するように構成されています。
export WORKFLOW_NAME=rewardsWorkflow
gcloud workflows deploy ${WORKFLOW_NAME} \
--source=gkeRewardsWorkflow.yaml \
--service-account=${WORKFLOW_SERVICE_ACCOUNT}@$PROJECT_ID.iam.gserviceaccount.com
[ワークフロー] のソースとその他の詳細([トリガー] タブ)を確認します。現時点では、このワークフローを実行するように構成されたトリガーはありません。次のステップで設定します。

6. Pub/Sub トピックと Eventarc トリガーを構成する
次に、2 つの Pub/Sub トピックを作成し、1 つの Eventarc トリガーを構成します。
Order Service アプリケーションは、新しい注文に関する情報を order-topic にパブリッシュします。
ワークフローは、注文の特典ポイントと合計金額に関する情報を order-points-topic にパブリッシュします。Order Service(このラボではデプロイされていません)は、order-points-topic, の push サブスクリプションで使用されるエンドポイントを公開して、注文ごとの特典ポイントと合計金額を更新します。
新しい Pub/Sub トピックを作成します。
export TOPIC_ID=order-topic
export ORDER_POINTS_TOPIC_ID=order-points-topic
gcloud pubsub topics create $TOPIC_ID --project=$PROJECT_ID
gcloud pubsub topics create $ORDER_POINTS_TOPIC_ID --project=$PROJECT_ID
Eventarc サービスの場所を設定します。
gcloud config set eventarc/location ${REGION}
Eventarc トリガーがワークフローの実行に使用するカスタム サービス アカウントを作成します。
export TRIGGER_SERVICE_ACCOUNT=eventarc-workflow-sa
gcloud iam service-accounts create ${TRIGGER_SERVICE_ACCOUNT}
ワークフローを実行するサービス アカウントへのアクセス権を付与します。
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/workflows.invoker"
Pub/Sub メッセージをリッスンして Workflows に配信する Eventarc トリガーを作成します。
gcloud eventarc triggers create new-orders-trigger \
--destination-workflow=${WORKFLOW_NAME} \
--destination-workflow-location=${REGION} \
--event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
--service-account="${TRIGGER_SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com" \
--transport-topic=$TOPIC_ID
出力例:
Creating trigger [new-orders-trigger] in project [qwiklabs-gcp-01-1a990bfcadb3], location [us-east1]...done. Publish to Pub/Sub topic [projects/qwiklabs-gcp-01-1a990bfcadb3/topics/order-topic] to receive events in Workflow [rewardsWorkflow]. WARNING: It may take up to 2 minutes for the new trigger to become active.
作成した Eventarc トリガー を確認します。

トリガー用に作成したサブスクリプションを確認します。

ワークフロー側の変更を確認します。新しいトリガーが追加されました。

7. ワークフローをテストする

Order Service をシミュレートするには、Cloud Shell から Pub/Sub トピックにメッセージを送信し、Cloud コンソールでカスタマー サービス ログを確認します。
export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'
出力例:
messageIds: - '5063709859203105'
ワークフローの実行の詳細と ログ を確認します。


8. ワークフローの構造化ロギング
ワークフローは、構造化ログを JSON 形式で書き込むように構成されています。ログは、Cloud Logging API、workflows.googleapis.com/Workflow リソース、ログ名 projects/${PROJECT_ID}/logs/Workflows を使用して書き込まれます。
次のロギング構成を確認します。
- log_totalAmount:
call: sys.log
args:
json:
orderNumber: ${order.orderNumber}
totalAmount: ${totalAmount}
multiplier: ${multiplier}
totalRewardPoints: ${rewardPoints}
orderRewardPoints: ${orderRewardPoints}
severity: INFO
Cloud Console で ログ エクスプローラ を開き、クエリを実行して、合計金額が 2 ドルを超える処理済みの注文を検索します。
検索クエリ フィールドを表示するには、[クエリを表示] をクリックします。

resource.type="workflows.googleapis.com/Workflow" AND
jsonPayload.totalAmount > 2 AND
timestamp >= "2023-01-01T00:00:00Z" AND
timestamp <= "2024-12-31T23:59:59Z"
出力例:

Cloud Shell を開き、gcloud CLI を使用してログを読み取ります。
gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"
table 形式の出力例:

次のコマンドを実行して、ログを JSON 形式で返します。
gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format=json | jq
json 形式の出力例:

9. 顧客レコードを確認する
(省略可)
次のコマンドを実行して、カスタマー サービス URL 環境変数を設定します。
CUSTOMER_SERVICE_URL=http://$(kubectl get svc customer-service -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')
curl $CUSTOMER_SERVICE_URL/customer | jq
出力例:
[
{
"address": "1845 Denise St",
"city": "Mountain View",
"createDateTime": "2023-01-31T17:22:08.853644",
"email": "ajensen9090+eats@gmail.com",
"id": "id1",
"name": "Angela Jensen",
"rewardPoints": 4,
"state": "CA",
"updateDateTime": "2023-01-31T17:22:09.652117",
"zip": "94043"
}
]
コマンドを実行して新しい注文を複数回パブリッシュし、curl コマンドで顧客の特典ポイントを確認します。
新しい注文メッセージをパブリッシュします。
export TOPIC_ID=order-topic
gcloud pubsub topics publish $TOPIC_ID --message '{"userId":"id1","orderNumber":123456,"name":"Angela Jensen","email":"ajensen9090+eats@gmail.com","address":"1845 Denise St","city":"Mountain View","state":"CA","zip":"94043","orderItems":[{"id":7,"createDateTime":"2022-03-17T21:51:44.968584","itemImageURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","itemName":"Curry Plate","itemPrice":12.5,"itemThumbnailURL":"https://images.unsplash.com/photo-1618449840665-9ed506d73a34?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80","spiceLevel":0,"status":"Ready","tagLine":"Spicy touch for your taste buds","updateDateTime":"2022-03-18T01:30:29.340584","inventory":8,"quantity":1}]}'
顧客の特典ポイントを確認します。
curl $CUSTOMER_SERVICE_URL/customer | jq
次のコマンドを実行して、最新のログを確認します。
gcloud logging read 'resource.type="workflows.googleapis.com/Workflow" AND jsonPayload.totalAmount > 2 AND timestamp >= "2023-01-01T00:00:00Z" AND timestamp <= "2023-12-31T23:59:59Z"' --limit 10 --format="table(jsonPayload.orderNumber,jsonPayload.totalAmount,jsonPayload.orderRewardPoints,jsonPayload.totalRewardPoints,jsonPayload.multiplier)"
10. 完了
お疲れさまでした。これでこの Codelab は終了です。
学習した内容
- Workflows をトリガーするように Pub/Sub トピックと Eventarc を構成する方法
- GKE Autopilot で実行されているアプリケーションに API 呼び出しを行うようにワークフローを構成する方法
- Pub/Sub にメッセージをパブリッシュするようにワークフローを構成する方法
- Cloud Logging で Workflows の構造化ログをクエリする方法と gcloud CLI の使用方法
次のステップ:
Cymbal Eats の他の Codelab を確認する:
- Eventarc で Cloud Workflows をトリガーする
- Cloud Storage からイベント処理をトリガーする
- Cloud Run からプライベート CloudSQL に接続する
- Cloud Run からフルマネージド データベースに接続する
- Identity Aware Proxy(IAP)を使用してサーバーレス アプリケーションを保護する
- Cloud Scheduler で Cloud Run ジョブをトリガーする
- Cloud Run に安全にデプロイする
- Cloud Run Ingress トラフィックを保護する
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。