クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

Cloud Run full managed environementsでのTraffic Splitting #gcpja


Cloud Run full managed environemntsでも、glcoud コマンドなら、できる返信いただき、試してみました。

( 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 でも割り振り状態は確認できます。

コメントは受け付けていません。