トラフィック分割

Cloud Functions(第 2 世代)では、各関数の複数のリビジョンがサポートされ、トラフィックを異なるリビジョン間で分割したり、関数を以前のリビジョンにロールバックしたりできます。

関数をデプロイまたは再デプロイすると、基盤となる Cloud Run サービスの新しいリビジョンが自動的に作成されます。リビジョンは不変であり、作成後は変更できません。関数を変更するには、関数を再デプロイする必要があります。

デフォルトでは、関数へのトラフィックは最新のリビジョンにルーティングされます。次のセクションで説明するように、カスタム トラフィック構成を設定すると、この動作を変更できます。

トラフィック構成の設定

関数の基盤となる Cloud Run サービスを使用して、関数のリビジョン間でトラフィックをルーティングする方法を管理できます。

gcloud

gcloud CLI を使用してトラフィックを管理するには:

  1. 関数を複数回デプロイして、複数のリビジョンを作成します。必ず Cloud Functions(第 2 世代)を使用してください。

  2. 関数の基盤となる Cloud Run サービスのリビジョン ID を確認します。

    gcloud run revisions list --service YOUR_FUNCTION_NAME \
    --region YOUR_FUNCTION_REGION \
    --format 'value(REVISION)'
    

    出力例を以下に示します。

    YOUR_FUNCTION_NAME-00002-xyz
    YOUR_FUNCTION_NAME-00001-abc
    
  3. トラフィック構成を変更するには、リビジョン ID を指定して gcloud run services update-traffic コマンドを使用します。たとえば、次のコマンドはトラフィックを 2 つのリビジョン間で 50 / 50 に分割します。

    gcloud run services update-traffic YOUR_FUNCTION_NAME \
    --region YOUR_FUNCTION_REGION \
    --to-revisions YOUR_FUNCTION_NAME-00001-abc=50,YOUR_FUNCTION_NAME-00002-xyz=50
    

コンソール

Google Cloud コンソールを使用してトラフィックを管理するには:

  1. 関数を複数回デプロイして、複数のリビジョンを作成します。必ず Cloud Functions(第 2 世代)を使用してください。
  2. Google Cloud コンソールで Cloud Functions の概要ページに移動します。
  3. 関数の名前をクリックして、[関数の詳細] ページに移動します。
  4. [Powered by Cloud Run] と表示されたペインで、関数の名前をクリックして、基礎となる Cloud Run サービスの [サービスの詳細] ページに移動します。
  5. [リビジョン] タブをクリックして、リビジョンのリストを表示します。
  6. [リビジョン] タブで [トラフィックの管理] をクリックします。
  7. 必要なトラフィック構成を入力し、[保存] をクリックします。

Cloud Run のリビジョン間のトラフィックの管理については、Cloud Run のドキュメントのロールバック、段階的なロールアウト、トラフィックの移行をご覧ください。