開発者は AWS SAM(Serverless Application Model)テンプレートを使って Lambda 関数をデプロイしています。新バージョンのデプロイ時に次の要件を満たしたいと考えています。 - トラフィックの一部を段階的に新バージョンへ移行するカナリアデプロイを行う - 特定の CloudWatch アラームが発火した場合は自動的にロールバックする - SAM テンプレートで宣言的に設定を記述したい 正しい SAM テンプレートの設定として必要なものを2つ選んでください。
SAMでカナリアデプロイを実現するには2つの設定が必要です。 ①AutoPublishAlias:デプロイのたびに自動でLambdaバージョンを発行し、指定エイリアスを新バージョンに更新します。これによりCodeDeployがトラフィック移行の管理対象バージョンを特定できます。 ②DeploymentPreference:Typeにカナリア戦略(例:Canary10Percent10Minutes)を指定し、Alarmsプロパティで CloudWatch アラームを紐付けることで自動ロールバックが有効になります。SAMは内部的にCodeDeployを使ってこれらを実装します。 選択肢CのCodePipelineの手動承認は自動ロールバックの要件を満たしません。 選択肢DのLambdaのバージョニングを無効化するとDeploymentPreferenceは機能しません。