AWS CodeDeploy
User Guide (API 版本 2014-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

在 AWS CodeDeploy 中为部署组标记实例

可以使用标签为每个资源分配您自己的元数据,这有助于管理您的 Amazon EC2 实例和本地实例。您可使用标签按各种标准 (例如用途、所有者或环境) 对实例进行分类。如果您拥有许多实例,这种方法就很有用。您可以根据为实例分配的标签快速确定某个实例或一组实例。每个标签都包含您定义的一个键和一个可选值。有关更多信息,请参阅标记您的 Amazon EC2 资源

要指定 AWS CodeDeploy 部署组中包含哪些实例,需要在一个或多个标签组中指定标签。针对部署组创建部署时,满足标签条件的实例上会安装最新的应用修订。

注意

您还可以在部署组中包含 Auto Scaling 组,但这些组是根据其名称识别的,而不是根据实例应用的标签识别。有关信息,请参阅 将 AWS CodeDeploy 与 Auto Scaling 集成

部署组中最简单的实例条件可以是唯一标签组中的唯一标签,复杂的条件可以在最多三个标签组中每组添加 10 个标签。

如果使用唯一标签组,该组中至少一个标签标记的实例即会包括在部署组中。如果使用多个标签组,只有由每个标签组中至少一个标签标记的实例才会包括在内。

以下示例说明如何使用标签和标签组为部署组选择实例。

示例 1:唯一标签组,唯一标签

您可以在唯一标签组中指定唯一标签:

标签组 1

名称 AppVersion-ABC

具有 Name=AppVersion-ABC 标签的每个实例都是部署组中的一部分,即使它也应用了其他标签。

AWS CodeDeploy 控制台设置视图:

JSON 结构:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ],

示例 2:唯一标签组,多个标签

您也可以在唯一标签组中指定多个标签:

标签组 1

区域 北部
区域 南部
区域 东部

具有这三个标签之一的实例即属于部署组,即使它也应用了其他标签。例如,如果有其他实例具有 Region=West 标签,这些实例将不会包含在部署组中。

AWS CodeDeploy 控制台设置视图:

JSON 结构:

"ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ],

示例 3:多个标签组,单个标签

您还可以使用多组标签组,每个标签组中只有唯一的键值对,指定部署组中实例的条件。如果在部署组中使用多个标签组,只有所有标签组均标记出的实例才会包含在部署组中。

标签组 1

名称 AppVersion-ABC

标签组 2

区域 北部

标签组 3

类型 t2.medium

可能在许多区域中都有具有 Name=AppVersion-ABC 标签的各种实例类型的实例,但在此示例中,部署组中只包含也具有 Region=NorthType=t2.medium 标签的实例。

AWS CodeDeploy 控制台设置视图:

JSON 结构:

"ec2TagSet": { "ec2TagSetList": [ [ { "Key": "KEY_AND_VALUE", "Type": "Name", "Value": "AppVersion-ABC" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "North" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.medium" } ], ] },

示例 4:多个标签组,多个标签

如果使用多个标签组,一个或多个组中具有多个标签,实例必须与每个组中的至少一个标签匹配,才能包含在部署组中。

标签组 1

Environment 测试版
Environment 生产前调试

标签组 2

区域 北部
区域 南部
区域 东部

标签组 3

类型 t2.medium
类型 t2.large

在此示例中,实例要包含在部署组中,必须具有 (1) Environment=BetaEnvironment=Staging 标签;(2) Region=NorthRegion=SouthRegion=East 标签;以及 (3) Type=t2.mediumType=t2.large 标签。

例如,具有以下标签组的实例将会包含在部署组中:

  • Environment=BetaRegion=NorthType=t2.medium

  • Environment=StagingRegion=EastType=t2.large

  • Environment=StagingRegion=SouthType=t2.large

具有以下标签组的实例不会包含在部署组中。突出显示的键值使这些实例被排除在外:

  • Environment=BetaRegion=WestType=t2.medium

  • Environment=StagingRegion=EastType=t2.micro

  • Environment=ProductionRegion=SouthType=t2.large

AWS CodeDeploy 控制台设置视图:

JSON 结构:

"ec2TagSet": { "ec2TagSetList": [ [ { "Key": "KEY_AND_VALUE", "Type": "Environment", "Value": "Beta" }, { "Key": "KEY_AND_VALUE", "Type": "Environment", "Value": "Staging" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "North" }, { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "South" }, { "Key": "KEY_AND_VALUE", "Type": "Region", "Value": "East" } ], [ { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.medium" }, { "Key": "KEY_AND_VALUE", "Type": "Type", "Value": "t2.large" } ], ] },