Cloud Run を利用する際、defaultではデプロイした新しいリビジョンに対してトラフィックが移行されるような振る舞いになっていると思います。GAE の gcloud app deploy
コマンドで言う --promote
オプション相当です。
ただ、Web の UI などから過去のリビジョンにトラフィックを切り替えたりすると、次回からその appendine の --promote オプション相当の振る舞い(新しいバージョンにトラフィックが流れる)が無効になり、前回トラフィック切り替えをした状態が維持されます。
そのため、 gcloud run deploy
コマンドで新しいバージョンをどんどんデプロイし、新しいリビジョンでリクエストを処理したい場合には新しいバージョンへのトラフィック切り替えが必要になります。
今回はそれをもとに戻しましょうという記事になります。
必要なコマンド
早速ですが、必要なコマンドは
gcloud run services update-traffic
になります。
GAE に慣れている人の感覚だと gcloud run deploy
のオプションにありそうな気もしますが、 Run の場合には Traffic をコントロールするための別のコマンドで操作します。
必要なオプションは
--to-latest True to assign 100 percent of traffic to the 'latest' revision of this service. Note that when a new revision is created, it will become the 'latest' and traffic will be directed to it. Defaults to False. Synonymous with '--to-revisions=LATEST=100'.
これですね。
マニュアルには default で false になっていると書いてあります。(が、振る舞い的に true な気もするが・・・)
コマンド
以下のようなコマンドで実行します。
gcloud run --project=${PROJECT_ID} services update-traffic --to-latest
最低限上記のオプションぐらいで実行できますが、
--region
, --platform
あたりの引数を渡すとコマンド一発で実行できるようになるでしょう。
以上です。
参考
https://cloud.google.com/sdk/gcloud/reference/run/services/update-traffic#--to-latest https://cloud.google.com/sdk/gcloud/reference/run/deploy