【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トピックにメッセージを公開すればそれを受け取ってサービスが動くぞ。
サービスの作り方は…………また挑戦する……(ダメだった)
この記事が気に入ったらサポートをしてみませんか?