

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

# 为部署组的实例添加标签 CodeDeploy
<a name="instances-tagging"></a>

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

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

**注意**  
您还可以在部署组中包含 Amazon EC2 Auto Scaling 组，但这些组是根据其名称识别的，而不是根据应用于实例的标签识别。有关信息，请参阅[CodeDeploy 与亚马逊 EC2 Auto Scaling 集成](integrations-aws-auto-scaling.md)。

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

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

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

**Topics**
+ [示例 1：唯一标签组，唯一标签](#instances-tagging-example-1)
+ [示例 2：唯一标签组，多个标签](#instances-tagging-example-2)
+ [示例 3：多个标签组，单个标签](#instances-tagging-example-3)
+ [示例 4：多个标签组，多个标签](#instances-tagging-example-4)

## 示例 1：唯一标签组，唯一标签
<a name="instances-tagging-example-1"></a>

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


**标签组 1**  

| 键 | 值 | 
| --- | --- | 
| Name | AppVersion-美国广播公司 | 

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

CodeDeploy 控制台设置视图：

![\[CodeDeploy 控制台显示一个带有一个标签的标签组。\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/images/TaggingExample1-polaris.png)


JSON 结构：

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

## 示例 2：唯一标签组，多个标签
<a name="instances-tagging-example-2"></a>

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


**标签组 1**  

| 键 | 值 | 
| --- | --- | 
| Region | 北部 | 
| Region | 南部 | 
| Region | East | 

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

CodeDeploy 控制台设置视图：

![\[CodeDeploy 控制台显示一个带有三个标签的标签组。\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/images/TaggingExample2-polaris.png)


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：多个标签组，单个标签
<a name="instances-tagging-example-3"></a>

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


**标签组 1**  

| 键 | 值 | 
| --- | --- | 
| Name | AppVersion-美国广播公司 | 


**标签组 2**  

| 键 | 值 | 
| --- | --- | 
| Region | 北部 | 


**标签组 3**  

| 键 | 值 | 
| --- | --- | 
| Type | t2.medium | 

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

CodeDeploy 控制台设置视图：

![\[CodeDeploy 控制台显示三个标签组，每个标签组中有一个标签。\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/images/TaggingExample3-polaris.png)


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：多个标签组，多个标签
<a name="instances-tagging-example-4"></a>

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


**标签组 1**  

| 键 | 值 | 
| --- | --- | 
| 环境 | Beta | 
| 环境 | 生产前调试 | 


**标签组 2**  

| 键 | 值 | 
| --- | --- | 
| Region | 北部 | 
| Region | 南部 | 
| Region | East | 


**标签组 3**  

| 键 | 值 | 
| --- | --- | 
| Type | t2.medium | 
| Type | t2.large | 

在此示例中，实例要包含在部署组中，必须具有（1）`Environment=Beta` 或 `Environment=Staging` 标签；（2）`Region=North`、`Region=South` 或 `Region=East` 标签；以及（3）`Type=t2.medium` 或 `Type=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=Staging`，`Region=East`，类型 =**t2.micro**
+ 环境 =**生产**，`Region=South`，`Type=t2.large`

CodeDeploy 控制台设置视图：

![\[CodeDeploy 控制台显示三个标签组，每个标签组中有多个标签。\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/images/TaggingExample4-polaris.png)


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"
               }
            ],
         ]
      },
```