Cloud RunのサービスからCloud Tasksにenqueueし別のCloud Runサービスに処理させる

前回の記事では Cloud Scheduler から Cloud Run (batch) の呼び出しについて書きました。 inari111.hatenablog.com

自分のメモ用に雑に書いていきます。
今回は Cloud Scheduler → Cloud Run(batch) → Cloud Tasks → Cloud Run(task) の流れを目指します。

Cloud Tasksのpushキュー作成

任意の名前でキュー作成 f:id:inari111:20210309235252p:plain

サービスアカウント作成

  • 下記3つのロールを持つ
    • クラウドタスクキュー管理者
    • サービスアカウントユーザー
    • Cloud Run 起動元

f:id:inari111:20210309235755p:plain

Cloud Tasks に enqueueするコードを書く

Cloud Run (batch)側にenqueueするコードを書きます。
認証トークンを使用した HTTP タスクの作成 の通り書くとHTTPタスクを作成することができます。

Cloud Run (task) で処理するコードを書く

任意の処理を書きます。
今回は呼び出されていることを確かめることができればいいので、ログを吐くだけにしていおきます。

Cloud Runにデプロイ

Cloud Run (batch) と Cloud Run (task) をデプロイします。

動作検証

Cloud Schedulerのジョブを実行し、
Cloud Scheduler → Cloud Run(batch) → Cloud Tasks → Cloud Run(task) の流れが確認できれば動作確認は完了です。