Cloud Run full managed environemntsでも、glcoud コマンドなら、できる返信いただき、試してみました。
Traffic splitting is currently rolling out. Try `gcloud alpha run update-traffic` in the meantime.
Serverless VPC access is literally our highest priority item.— Steren (@steren) February 2, 2020
( Cloud Run用Serverless VPCも優先度高く、対応中とのこと)
簡単な、python applicationで、試してみました。(チュートリアルにのっているものになります。)
import os from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): target = os.environ.get('TARGET', 'World') return 'Hello {}!\n'.format(target) if __name__ == "__name__": app.run(debug=True,host='0.0.0.0', port=int(os.environ.get('PORT', 8080))
FROM python:3.7 ENV APP_HOME /app WORKDIR $APP_HOME COPY . . RUN pip install Flask gunicorn CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 app:app
最初に、latestリビジョンでアップロードします。
gcloud builds submit --tag gcr.io/xxxxxxxx/hellowrld
Cloud Runへデプロイ
gcloud beta run deploy --image gcr.io/cxxxxxxxx/hellowrld
わかりやすいように、上記pythonスクリプトで、Helloのところを、Helllo 2として別リビジョンでアップロード
gcloud builds submit --tag gcr.io/xxxxxxxx/hellowrld:canary
再度、Cloud Runにデプロイ。
gcloud beta run deploy --image gcr.io/xxxxxxxx/hellowrld:canary
gcloud alpha run deploy の、–no-traffic オプションで、次デプロイしたリビジョンへのトラフィックをこないように制御できるので、カナリアリリースようなことが、できそう。
リビジョンごとのトラフィックを下記コマンドで設定します。
gcloud alpha run services update-traffic hellowrld --platform=managed --to-revisions=hellowrld-00003-hub=90,hellowrld-00001-kay=10
マニュアルには、下記に記載。
https://cloud.google.com/sdk/gcloud/reference/alpha/run/services/update-traffic
コンソール上での表記
Billable container instance time でも割り振り状態は確認できます。