appspec.yml
用于:
说明文件部署到机器上的哪个位置(比如/var/www/html
)
管理部署过程中的每个 lifecycle hooks
In-place部署:
和traffic相关的hook只适用于ELB
Start, DownloadBundle, Install, 和 End不能用到脚本中
蓝色的部分是用户能够干预的,灰色的部分是用户干预不了的
Blue/green 部署:
从上图看到,在进行蓝绿部署时,对于原来旧版本所在的机器(Original instances),是不会发生ApplicationStop,BeforeInstall,Install……
等事件的,这些事件只在新版本的机器(Replacement instances)上发生。原来的机器只为它停掉流量就行:
Lifecycle event name | In-place deployment¹ | Blue/green deployment: Original instances | Blue/green deployment: Replacement instances | Blue/green deployment rollback: Original instances | Blue/green deployment rollback: Replacement instances |
---|---|---|---|---|---|
ApplicationStop | ✓ | ✓ | |||
DownloadBundle² | ✓ | ✓ | |||
BeforeInstall | ✓ | ✓ | |||
Install² | ✓ | ✓ | |||
AfterInstall | ✓ | ✓ | |||
ApplicationStart | ✓ | ✓ | |||
ValidateService | ✓ | ✓ | |||
BeforeBlockTraffic | ✓ | ✓ | ✓ | ||
BlockTraffic² | ✓ | ✓ | ✓ | ||
AfterBlockTraffic | ✓ | ✓ | ✓ | ||
BeforeAllowTraffic | ✓ | ✓ | ✓ | ||
AllowTraffic² | ✓ | ✓ | ✓ | ||
AfterAllowTraffic | ✓ | ✓ | ✓ |