在 CodeDeploy 中标记部署组的实例 - AWS CodeDeploy

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 CodeDeploy 中标记部署组的实例

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

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

注意

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

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

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

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

示例 1:单个标签组,单个标签

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

标签组 1
密钥
名称 AppVersion-ABC

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

CodeDeploy 控制台设置视图:

JSON 结构:

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

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

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

标签组 1
密钥
区域 北部
区域 南部
区域 东部

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

CodeDeploy 控制台设置视图:

JSON 结构:

"ec2TagSet": { "ec2TagSetList": [ [ { "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 标签的实例。

CodeDeploy 控制台设置视图:

JSON 结构:

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

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

如果使用多个标签组,一个或多个组中具有多个标签,实例必须与每个组中的至少一个标签匹配。

标签组 1
密钥
Environment 测试版
Environment 生产前调试
标签组 2
密钥
区域 北部
区域 南部
区域 东部
标签组 3
密钥
类型 t2.medium
Type t2.large

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

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

  • Environment=Beta, Region=North,Type=t2.medium

  • Environment=Staging,Region=East,Type=t2.large

  • Environment=Staging,Region=South,Type=t2.large

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

  • Environment=Beta,区域 =西部Type=t2.medium

  • Environment=StagingRegion=East,类型 =t2.micro

  • 环境 =生产Region=SouthType=t2.large

CodeDeploy 控制台设置视图:

JSON 结构:

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