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

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

最終更新日:Apr 21, 2026

関数に対して 1 つ以上のバージョンを公開できます。バージョンを公開するたびに、Function Compute はコードと構成の不変のスナップショットを一意のバージョン番号で作成します。また、特定のバージョンへのポインターとして機能するエイリアスを作成することもできます。バージョンとエイリアスを併用することで、デプロイメントの管理、ロールバックの実行、カナリアリリースの実装が容易になります。

カナリアリリースのワークフロー

前提条件

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

関数を作成すると、その初期バージョンは LATEST になります。LATEST バージョンで関数を開発およびテストし、安定するまで続けます。コンソールから関数の 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";
            }
        }
    }

    実行が完了したら、ログ出力を表示できます。ログには、qualifier フィールドの値が LATEST であることが示されます。これは、関数の LATEST バージョンが実行されたことを意味します。

ステップ 2:バージョンの公開とテスト

関数の LATEST バージョンが安定したら、公開して本番トラフィックを処理できます。詳細については、「バージョンの公開」をご参照ください。

新しいバージョンを公開した後、コンソールからそれを呼び出すことができます。

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、関数管理 > 関数リストを選択します。

  2. 上部のナビゲーションバーでリージョンを選択します。関数リストページで、対象の関数をクリックします。

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

  4. 対象のバージョンの詳細ページで、コード タブをクリックし、次に 関数のテスト をクリックします。

    実行が完了したら、実行ログを表示できます。ログ出力には、qualifier が 1 で、解析された versionId が 1 であることが示されます。これは、関数のバージョン 1 が実行されたことを意味します。

ステップ 3:エイリアスを使用したトラフィックの切り替え

新しいバージョンをデプロイした後、それを指すエイリアスを作成できます。関数を更新する際に、エイリアスを更新して新しいバージョンを指すようにすることができます。これにより、呼び出し元はバージョン番号を追跡する必要なく、固定のエイリアスを使用できます。エイリアスの作成手順については、「エイリアスの作成」をご参照ください。

エイリアスを作成した後、コンソールから正しい関数バージョンが呼び出されることを確認できます。

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

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、関数管理 > 関数リストを選択します。

  2. 上部のナビゲーションバーでリージョンを選択します。関数リストページで、対象の関数をクリックします。

  3. 関数の詳細ページで、エイリアス管理 タブをクリックし、対象のエイリアスをクリックします。

  4. 対象のエイリアスの詳細ページで、テスト タブをクリックし、次に 関数のテスト をクリックします。

    実行が完了したら、ログ出力を表示できます。ログ出力には、qualifieralias1 で、解決された versionId1 であることが示されます。これは、バージョン 1 を指すエイリアス alias1 を使用して関数が実行されたことを示します。

新しいバージョンを開発した後、カナリアリリースを使用して安定したロールアウトを保証します。

説明

新しいバージョンは、前回のバージョン公開以降に関数のコードまたは構成が変更された場合にのみ公開できます。

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

    バージョンが公開されると、バージョンリストで新しいバージョンを表示できます。

  2. 関数の詳細ページで、エイリアス タブをクリックします。対象のエイリアスの 操作 列で、変更 をクリックします。

  3. [エイリアスの変更] パネルで、新しいバージョン 2カナリアリリースバージョン として設定し、カナリアリリースバージョンの重み を構成してから、OK をクリックします。

    カナリアバージョンが安定していることを確認した後、完全な切り替えを実行して、すべてのトラフィックをバージョン 2 にルーティングできます。

よくある質問

呼び出された関数バージョンの確認

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

  • context 入力パラメーターによる確認

    各関数呼び出しにおいて、context 入力パラメーターには qualifier フィールドと versionId フィールドが含まれます。

    • qualifier:呼び出す関数のバージョンまたはエイリアス。

    • versionId:関数の実行時に qualifier から解決される特定のバージョン番号。

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

    同期関数呼び出しのレスポンスには、呼び出された関数バージョンを指定する x-fc-invocation-function-version ヘッダーが含まれます。

参考

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