AWS CodeDeploy的模型定义了Application
,这是一个长期存在的高级对象,代表需要部署在某处的软件。一个应用程序可以有许多Deployment Groups
,它们代表目标(例如,具有特定标记组合的特定EC2服务器)。 deployment
是将某个特定版本的软件发布到应用程序内定义的部署组中。
可以通过CloudWatch events获得有关CodeDeploy进度的反馈。鉴于EC2服务器在部署时可以启动或关闭,并且EC2服务器上的标签可能随时间变化,是否有一种方法可以从CloudWatch CodeDeploy事件中确定目标用户所确定的EC2服务器的确切集合。特定的部署?
特定:
我使用简单的CodeDeploy设置测试了几种方案。仅基于实例tags标识了部署组(没有ASG)。我的观察如下:
我通过使用停止的实例模拟了这种情况。停止的实例上的部署hanged。如果我让它长时间挂起,可能会timeout。重新启动实例后,部署将继续。
CodeDeploy 未自动检测到它们。必须重新部署上次部署,以便检测到新实例并运行最新的应用程序版本。
标签更改的实例为不包括。因此,您最终会遇到一个实例,该实例运行旧版本的应用程序,而其余实例运行新版本。
list-deployment-targets
打印出在部署时发生部署的实例的ID。重新部署时(在这种情况下,部署ID不会更改),该列表将包括要重新部署的实例。实例的原始列表丢失。
到ASG的部署将具有不同的表现,因为CodeDeploy通过其生活方式挂钩与ASG集成。
希望这会有所帮助。