「hooks」 セクションの構造
hooks:
- deploymentLifecycleEventName:
- location: script-location
timeout: timeout-in-seconds
runas: user-name
ECS デプロイ
hooks:
#Startする
- BeforeInstall: "BeforeInstallHookFunctionName"
#Installする
- AfterInstall: "AfterInstallHookFunctionName"
#AllowTestTrafficする
- AfterAllowTestTraffic: "AfterAllowTestTrafficHookFunctionName"
- BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName"
#AllowTrafficする
- AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"
#Endする
Lambda デプロイ
デプロイ対象がLambdaの場合は、インストールイベントがなく直接AllowTrafficに入る
hooks:
#Startする
- BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName"
#AllowTrafficする
- AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"
#Endする
EC2 デプロイ(LoadBalancerなし)
デプロイ対象がEC2の場合、まずはApplicationStopでEC2を停止する必要がある
最後は「ValidateService」でデプロイが正常に完了したことを確認できる
hooks:
#Startする
- ApplicationStop: "ApplicationStopHookFunctionName"
#DownloadBundleする
- BeforeInstall: "BeforeInstallHookFunctionName"
#Installする
- AfterInstall: "AfterInstallHookFunctionName"
- ApplicationStart: "ApplicationStartHookFunctionName"
- ValidateService: "ValidateServiceHookFunctionName"
#Endする
EC2 デプロイ(LoadBalancerあり)
LoadBalancerを使う場合は、最初BlockTrafficでトラフィックを停止する必要があり、デプロイ完了後またAllowTrafficする
hooks:
#Startする
- BeforeBlockTraffic: "BeforeBlockTrafficHookFunctionName"
#BlockTrafficする
- AfterBlockTraffic: "AfterBlockTrafficHookFunctionName"
- ApplicationStop: "ApplicationStopHookFunctionName"
#DownloadBundleする
- BeforeInstall: "BeforeInstallHookFunctionName"
#Installする
- AfterInstall: "AfterInstallHookFunctionName"
- ApplicationStart: "ApplicationStartHookFunctionName"
- ValidateService: "ValidateServiceHookFunctionName"
- BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName"
#AllowTrafficする
- AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"
#Endする
参考サイト