Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8837

【SRE/JS】Cloud Run 周りの基礎

$
0
0

ローカル

イメージを作ってから、docker run -p 8080:8080 {Image ID}
コンテナ イメージをローカルでテストする  |  Cloud Run のドキュメント  |  Google Cloud

実装(JS)

コンテナ ランタイムの契約に記載されているように、コンテナは、Cloud Run によって定義され、PORT 環境変数で指定されているポートで受信リクエストをリッスンする必要があります。
Cloud Run のトラブルシューティング(フルマネージド)  |  Cloud Run のドキュメント  |  Google Cloudより引用

リクエストをリッスンすることをお忘れなく。

constexpress=require('express');constapp=express();constport=process.env.PORT||8080;app.listen(port,()=>{console.log('Hello world listening on port',port);});

デプロイ

手順

  1. イメージ作成、プッシュ
  2. デプロイコマンド実行
    Cloud Run を使用した動的コンテンツの配信とマイクロサービスのホスティング  |  Firebase

イメージ作成

docker build -t gcr.io/{PROJECT_ID}/js-cloud-run .
docker push gcr.io/{PROJECT_ID}/js-cloud-run

コマンドでのデプロイ

gcloud run deploy js-cloud-run \--image gcr.io/yojo-linebot-test/js-cloud-run \--port 8080 \--platform managed \--region asia-northeast1 \ # リージョン--allow-unauthenticated--revision-suffix v1 # つけたいrevisionの名前をつける

リビジョンに名前をつけてデプロイしたい場合は、--revision-suffixを指定します。
このコマンドで付与した revisonには、デプロイ完了時点では、トラフィックは飛ばないようになっています。

トラフィックの割合をコマンドで管理したい場合は、gcloud run services update-trafficコマンドに --to-revisionsオプションを付与することで実行できそう。

サンプルコマンド
gcloud run services update-traffic myservice --to-revisions=myservice-s5sxn=10,myservice-cp9kw=90
gcloud run services update-traffic  |  Cloud SDK のドキュメント  |  Google Cloud

ブルーグリーンデプロイメント

Cloud Runでは、下記のように設定することで、トラフィックの分割を容易に実施することができます。
image.png
image.png

ロールバック、段階的なロールアウト、トラフィックの移行  |  Cloud Run のドキュメント  |  Google Cloud

TODO

  • ホットリロード環境の構築
  • Cloud Run の CI/CDパイプライン構築

Viewing all articles
Browse latest Browse all 8837

Trending Articles