14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Lambdaでカナリアリリースする

Last updated at Posted at 2020-02-06

LambdaのVersionとAlias

AWS LambdaではPublishすると固有のVersion番号が割り当てられる。
Versionには任意の名前のAliasをつけることが可能で、Aliasに関連付けるVersionを変更することで、Aliasを指定してFunctionを呼び出しているユーザが利用するVersionを変更することができる。
Lambda_Version_Alias.png

Additional versionを用いて、新しいVersionをカナリアリリースする

Aliasには Additional versionというオプションが存在し、主として指定したVersionとは異なるVersionとその呼び出し割合を指定することができる。
Additional versionの有無や呼び出し割合は任意のタイミングで変更ができ、新しいVersionの呼び出し割合を徐々に増やしていくカナリアリリースが可能である。
Lambda_Additional_version.png

Additional versionの設定方法

Management Consoleで設定する場合

Aliasの設定画面で、Additional version及びWeightを入力し、保存する。
Weightには0〜100の間の整数を入力する。
image.png

AWS CLIで設定する場合

lambda create-aliasもしくはlambda update-aliasの --routing-config オプションで設定する。
Weightsは0.00〜1.00の小数で指定する。

aws lambda update-alias \
    --function-name testCanary \
    --name Prod \
    --function-version 2 \
    --routing-config 'AdditionalVersionWeights={"3"=0.8}'

どのVersionが呼び出されたか確認する

AWS CLIで呼び出した際の戻り値

レスポンスの ExecutedVersion プロパティに、実際に呼び出されたVersionの番号が出力される。
※同期呼び出しをした場合に限る

$ aws lambda invoke \
      --function-name testCanary \
      --qualifier Prod \
      --region ap-northeast-1 \
      -
{
    "StatusCode": 200,
    "ExecutedVersion": "3"
}

CloudWatch

CloudWatchでは、呼び出しに用いられたAliasとVersionごとにメトリクスを取得できる。
image.png

14
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?