すべてのプロダクト
Search
ドキュメントセンター

Function Compute:バージョンとエイリアスを使用してカナリアリリースを実装する

最終更新日:Jul 19, 2024

関数の1つ以上のバージョンを公開できます。 バージョンは、関数のスナップショットと同様に使用されます。 バージョンを公開すると、Function Computeは関数のスナップショットを生成し、スナップショットにバージョン番号を自動的に割り当てます。 エイリアスを作成し、エイリアスを関数のバージョンに指定することもできます。 関数のバージョンとエイリアスを一緒に使用して、リリース、ロールバック、カナリアリリースなどの機能を実装できます。

カナリア解放プロセス

image

始める前に

ステップ1: 関数の準備とテスト

関数を初めて作成する場合、関数のバージョンはLATESTです。 LATESTバージョンの関数は、関数が安定するまでデバッグできます。 function ComputeコンソールでLATESTバージョンの関数を呼び出すこともできます。

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。

  3. 関数の詳細ページで、コードタブをクリックします。

  4. コードエディターで、コードを変更して関数のバージョンを表示し、デプロイをクリックし、テスト機能.

    次のサンプルコードを使用して、関数のバージョンを確認します。

    module.exports.handler = function(eventBuf, context, callback) {
     var qualifier = context['service']['qualifier']
     var versionId = context['service']['versionId']
     console.log('Qualifier from context:', qualifier);
     console.log('VersionId from context: ', versionId);
     callback(null, qualifier);
    };
    # -*- coding: utf-8 -*-
    
    def handler(event, context):
      qualifier = context.service.qualifier
      versionId = context.service.version_id
      print('Qualifier from context:' + qualifier)
      print('VersionId from context:' + versionId)
      return 'hello world'
    <?php
    function handler($event, $context) {
      $qualifier = $context["service"]["qualifier"];
      $versionId = $context["service"]["versionId"];
      print($qualifier);
      print($versionId);
    
        return "hello world";
    }
    using System;
    using System.IO;
    using Aliyun.Serverless.Core;
    using Microsoft.Extensions.Logging;
    
    namespace Desktop
    {
    
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World!");
            }
        }
    
        class App
        {
            public string Handler(Stream input, IFcContext context)
            {
                ILogger logger = context.Logger;
                var qualifier = context.ServiceMeta.Qualifier;
                var versionId = context.ServiceMeta.VersionId;
                logger.LogInformation("Qualifier from context: {0}", qualifier);
                logger.LogInformation("versionId from context: {0}", versionId);
                return "hello word";
            }
        }
    }

    実行が完了すると、ログ出力を表示できます。 ログ出力では、バージョン情報を示す修飾子パラメーターの値がLATESTであることがわかります。 この値は、実行された関数がLATESTバージョンの関数に属することを示します。

ステップ2: バージョンを公開してバージョンをテストする

LATESTバージョンの機能の準備ができたら、新しいバージョンを公開し、そのバージョンを使用してオンライン要求に応答できます。 詳細については、「」をご参照ください。

新しいバージョンが公開された後、function Computeコンソールで新しいバージョンの関数を実行できます。

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。

  3. 関数の詳細ページで、バージョンタブをクリックし、管理するバージョンをクリックします。

  4. 表示されるページで、コードタブをクリックし、テスト機能.

    関数の実行後、実行ログの出力を表示できます。 ログ出力では、バージョン情報を示す修飾子パラメーターの値が1で、バージョンIDを示すversionIdパラメーターの値が1であることがわかります。 ログ出力は、実行された関数がバージョン1であることを示します。

ステップ3: エイリアスを使用してトラフィックを転送する

バージョンが公開された後、エイリアスを作成し、エイリアスをバージョンにポイントすることができます。 新しいバージョンが公開されると、エイリアスを新しいバージョンに指定できます。 呼び出し元は正しいエイリアスを使用するだけでよく、関数の特定のバージョンを知る必要はありません。 エイリアスの作成方法の詳細については、「」をご参照ください。

エイリアスの作成後、function Computeコンソールで正しいバージョンの関数が実行されているかどうかを確認できます。

このトピックでは、エイリアスalias1はバージョン1を指します。

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。

  3. 関数の詳細ページで、エイリアスタブをクリックし、表示するエイリアスをクリックします。

  4. 表示されるページで、テストタブをクリックし、テスト機能をクリックします。

    実行が完了すると、ログ出力を表示できます。 ログ出力では、バージョン情報を示す修飾子パラメーターの値がalias1で、バージョンIDを示すversionIdパラメーターの値が1であることがわかります。 ログは、alias1エイリアスの関数が呼び出され、エイリアスがバージョン1を指していることを示しています。

新しいバージョンが開発された後、カナリアリリース機能を使用して、新しいバージョンが正式に展開される前に安定していることを確認できます。

説明

新しいバージョンは、以前のバージョンと比較して関数の構成またはコードに変更が加えられた場合にのみ公開できます。

  1. バージョン2を新しいバージョンとして公開します。 詳細については、「」をご参照ください。

    バージョンが公開された後、バージョンリストで最新バージョンを表示できます。

  2. 関数の詳細ページで、[エイリアス管理] タブをクリックします。 管理するエイリアスを見つけて、[操作] 列の [変更] をクリックします。

  3. エイリアス編集パネルで、バージョンを設定します。2としてCanary Releaseバージョン、構成Canary ReleaseバージョンWeightをクリックし、OKをクリックします。

    カナリアリリースのバージョンが安定したら、すべてのオンライントラフィックをバージョン2に切り替えることができます。

よくある質問

呼び出しの関数バージョンを確認するにはどうすればよいですか?

カナリアリリース機能を使用すると、Function Computeは指定された重みに基づいてトラフィックを割り当てます。 次の方法を使用して、特定のリクエストを処理するために呼び出される関数のバージョンを確認できます。

  • contextパラメーターを使用する

    各関数呼び出しでは、修飾子フィールドとversionIdフィールドがcontext入力パラメーターに含まれます。

    • qualifier: 関数が呼び出されたときに渡されるバージョン情報。 バージョン番号またはエイリアスにすることができます。

    • versionId: 関数の実行時に修飾子パラメーターに基づいて解析される特定のバージョンID。

  • 同期関数呼び出しの応答を使用する

    同期関数呼び出しへの応答には、呼び出された関数のバージョンを示すx-fc-invocation-function-versionヘッダーが含まれています。

より多くの情報

  • プロビジョニングされたインスタンスは、LATESTバージョンに対してのみ設定できます。 詳細は、「」をご参照ください。

  • バージョンとエイリアスを管理する方法の詳細については、「」および「」をご参照ください。