開発者がAWS SAM(Serverless Application Model)を使用してLambda関数をデプロイしています。新バージョンのデプロイ時に、最初の5分間は10%のトラフィックを新バージョンへ流し、CloudWatchアラームがエラー率の上昇を検知した場合に自動ロールバックする仕組みを実装したいと考えています。SAMテンプレートに追加すべき設定はどれですか?
正解: Lambda関数リソースに DeploymentPreference セクションを追加し、Type を Canary10Percent5Minutes、Alarms に CloudWatchアラームのARNを指定する SAMの DeploymentPreference プロパティを使うと、CodeDeployによるLambdaのトラフィックシフトを宣言的に設定できます。Type でCanaryやLinearのデプロイ方式を指定し、Alarms リストにCloudWatchアラームのARNを設定するとアラーム発火時に自動ロールバックが実行されます。 選択肢Aは、AutoPublishAlias はバージョンとエイリアスの自動作成のみを行い、ロールバック機能は持ちません。 選択肢Cは、SAMテンプレートに AWS::CodeDeploy::DeploymentGroup リソースを直接定義する必要はなく、DeploymentPreference で十分です。 選択肢Dは、プロビジョニング済み同時実行はコールドスタート対策であり、トラフィックシフトとは無関係です。