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

Function Compute:fc-canary を使用したカナリアリリース

最終更新日:Feb 28, 2026

Function Compute で関数を更新すると、新しいコードと構成が直ちに LATEST バージョンを上書きし、それ以降のすべての呼び出しがこの更新されたバージョンに対して実行されます。本番環境ですべてのトラフィックに変更を直接リリースすることは、リスクを伴います。

コミュニティが提供する @serverless-cd/fc-canary プラグインを使用すると、新しいバージョンを完全に昇格させる前に、指定した割合のトラフィックのみを新しいバージョンにルーティングすることで、カナリアリリースを実行できます。

仕組み

Function Compute は、エイリアスを使用してデプロイメントとリリースを分離します。本番環境では、エイリアスを特定の公開済みバージョンに指定します。新しいコードをデプロイすると LATEST バージョンは更新されますが、エイリアスは以前の安定バージョンを指したままです。エイリアスを明示的に更新するまで、トラフィックは古いバージョンに流れ続けます。

fc-canary プラグインは、このプロセスを自動化します:

  1. 現在の LATEST のコードと構成に基づいて新しいバージョンを公開します

  2. エイリアスを更新して、以前の安定バージョンと新しく公開されたバージョンとの間でトラフィックを分割します。エイリアスがまだ存在しない場合、プラグインはそれを自動的に作成します。

指定した割合の呼び出しのみを新しいバージョンに送ることで、ロールアウトを完了する前にエラーやパフォーマンスの低下をモニターできます。

前提条件

  • Serverless Devs をインストールし、Alibaba Cloud 認証情報を設定済みであること。

  • Function Compute に関数をデプロイ済みであること。

  • パイプライン構成に @serverless-cd/fc-canary プラグインをインストール済みであること。

パラメーター

次の表に、fc-canary プラグインでサポートされているパラメーターを示します。

パラメータータイプ必須説明
serviceNameStringはい (FC 2.0)ターゲット関数を含む Function Compute 2.0 サービスの名前。
functionNameStringはい (FC 3.0)関数の名前。サービスレベルのグルーピングが廃止された Function Compute 3.0 で使用されます。
aliasNameStringはい作成または更新するエイリアスの名前。例:prod
regionIdStringはい関数がデプロイされているリージョンの ID。例:cn-hangzhou
canaryPercentNumberはい新しいバージョンにルーティングするトラフィックの割合。有効な値:0~100。

使用方法

Function Compute 2.0

Function Compute 2.0 では、エイリアスはサービスレベルで構成されます。次の例では、サービスのエイリアスを更新し、トラフィックの 50% を新しいバージョンにルーティングします:

- plugin: @serverless-cd/fc-canary
  inputs:
    serviceName: web-framework-kzbp
    aliasName: prod
    regionId: cn-hangzhou
    canaryPercent: 50

Function Compute 3.0

Function Compute 3.0 では、サービスレベルのグルーピングが廃止されています。functionName パラメーターを serviceName の代わりに使用します:

- plugin: @serverless-cd/fc-canary
  inputs:
    functionName: my-function
    aliasName: prod
    regionId: cn-hangzhou
    canaryPercent: 10

リリースの完了

新しいバージョンが期待どおりに動作することを確認した後、canaryPercent100 に更新するか、エイリアスを完全に新しいバージョンに指定してリリースを完了します。