【GCP+Python3】CloudRunにPub/Subで起動するアプリを乗っけたい

わたしへ。
どうせ忘れるでしょうから、まとめておきましたよ。
わたしより。

まず見るところはココ

クイックスタート

クイックスタート: ビルドとデプロイ  |  Cloud Run のドキュメント  |  Google Cloud

Pub/Subで起動するアプリの作り方

Cloud Run チュートリアルで Pub/Sub を使用する  |  Cloud Run のドキュメント  |  Google Cloud

CloudBuild使ってアプリをコンテナ化する

・準備:Dockerfile と .dockerignore ファイルを作る
(何をどう書くかはここを読む。)

・Dockerfileのあるディレクトリに移動して、

gcloud builds submit --tag gcr.io/PROJECT-ID/IMAGE-NAME

(PROJECT-IDは自分のプロジェクトのID、IMAGE-NAMEは任意の名前)
これでコンテナイメージが作られる。イメージ名(gcr.io/PROJECT-ID/IMAGE-NAME)が発行されるので控える。

引き続き

gcloud run deploy SERVICE-NAME --image gcr.io/PROJECT-ID/FILE-NAME --platform managed

で、イメージをcloudRunにデプロイする。

SERVICE-NAMEは任意のサービス名に置き換える。

Pub/Subを関連付ける

連動させる用のPub/Subトピックを立てる

Pub/Subトピックにサブスクリプションを作る為に、サービスアカウントを発行する

サービスアカウントをデプロイしたサービスに紐付ける

gcloud run services add-iam-policy-binding SERVICE-NAME\
   --member=serviceAccount:SUBSCRIPTION-NAME@PROJECT.iam.gserviceaccount.com\
   --role=roles/run.invoker

で、紐付けたサービスアカウントを認証情報に使ってサブスクリプションを作る。

gcloud pubsub subscriptions create NEW-SUBSCRIPTIOPN-NAME\
  --topic TOPIC-NAME --push-endpoint=SERVICE-URL\
  --push-auth-service-account=SUBSCRIPTION-NAME@PROJECT.iam.gserviceaccount.com

これで、Pub/Subトピックにメッセージを公開すればそれを受け取ってサービスが動くぞ。

サービスの作り方は…………また挑戦する……(ダメだった)

この記事が気に入ったらサポートをしてみませんか?