AWS SAM+CloudFormation+CodeDeployでLambdaをデプロイする方法
samテンプレートのDeploymentPreferenceプロパティでTypeを指定するとCodeDeployのアプリケーションが作成されます。
samテンプレート
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: This CloudFormation template to create Lambda function
Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: 'sample-function'
CodeUri: src/lambda-a
Handler: index.handler
Runtime: nodejs18.x
MemorySize: 128
Timeout: 15
AutoPublishAlias: live
DeploymentPreference:
Enabled: true
Type: Canary10Percent5Minutes
package deploy
sam package&sam deployします。
$ sam package --template-file sample.yml --s3-bucket <バケット名> --output-template-file sample_out.yml $ sam deploy --template-file sample_out.yml --stack-name sample-stack --capabilities CAPABILITY_IAM --no-fail-on-empty-changeset
CodeDeployのアプリケーションが作成されます。
Lambdaのエイリアスとバージョン発行が行われています。
sam deploy が sam package の機能を暗黙的に実行するようになりました。sam deploy コマンドを直接使用して、アプリケーションをパッケージ化およびデプロイできます。
参考サイト
チュートリアル: CodeDeploy および AWS Serverless Application Model を使用して更新された Lambda 関数をデプロイする - AWS CodeDeploy
このチュートリアルの手順に従って、 CodeDeploy と AWS Serverless Application Model (AWS SAM) テンプレートを使用して、更新された Lambda 関数をデプロイします。

AWS SAMを通してCodeDeployを利用したLambda関数のデプロイを理解する – ClassmethodサーバーレスAdvent Calendar 2017 #serverless #adventcalendar #reinvent | DevelopersIO

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^



コメント