

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

# 更新一个 Amazon CloudFormation 基于堆栈的群组
<a name="updating-stack-based-resource-groups"></a>

以下过程向您展示如何更新 CloudFormation 基于堆栈的组。

------
#### [ Console ]

您无法在中将 Amazon CloudFormation 基于堆栈的组更改为基于标签的组。 Amazon Web Services 管理控制台但是，您可以更改该组所基于的堆栈，也可以更改要包含在组中的堆栈资源类型。您还可以添加或更改组的描述。

1. 登录 [Amazon Resource Groups 控制台](https://console.amazonaws.cn/resource-groups)。

1. 在导航窗格中的**[保存的资源组](https://console.amazonaws.cn/resource-groups/groups)**下面，选择该组的名称，然后选择**编辑**。

1. 
**注意**  
您只能更新自己拥有的资源组。**所有者**列显示每个资源组的账户所有权。账户所有者不是您已登录账户的任何组都是在 Amazon License Manager中创建的。有关更多信息，请参阅 *License Manager 用户指南*中的 [Amazon License Manager中的主机资源组](https://docs.amazonaws.cn/license-manager/latest/userguide/host-resource-groups.html)。

1. 在**编辑组**页面上的**分组条件**下，要更改组所基于的堆栈，请从下拉列表中选择该堆栈。只能将资源组基于一个堆栈。要筛选堆栈列表，请开始键入堆栈的名称。仅在列表中显示具有支持的状态的堆栈。有关支持的状态列表，请参阅本指南中的[在中创建基于查询的群组 Amazon Resource Groups](gettingstarted-query.md)。

1. 添加或删除资源类型。仅在下拉列表中显示堆栈中的可用资源类型。默认值为**所有受支持的资源类型**。您最多可以在查询中包含 20 种资源类型。要删除资源类型，请在该资源类型的标签上选择 **X**。有关可以包含在组中的受支持资源类型的更多信息，请参阅[可以与一起使用的资源类型 Amazon Resource Groups 和标签编辑器](supported-resources.md)。

1. 选择**预览组资源**以检索 Amazon CloudFormation 堆栈中与所选资源类型相匹配的资源列表。

1. 在**其他信息**中，您可以编辑组描述。在创建组后，您无法编辑组的名称。

1. 在**组标签**中，添加或删除标签。组标签是有关资源组的元数据。它们不会影响成员资源。要更改资源组的查询返回的资源，请在**分组条件**中编辑标签。

   如果计划将此组作为较大组的成员，则组标签非常有用。要创建组，必须至少指定标签键。因此，请务必在**组标签**中为计划嵌套到较大组中的组添加至少一个标签键。

1. 在完成后，选择**保存更改**。

------
#### [ Amazon CLI & Amazon SDKs ]

在中 Amazon CLI，您可以使用两个不同的命令更新组的查询和资源组的描述。不能编辑现有组的名称。在中 Amazon CLI，您可以将基于标签的群组更改为基于 CloudFormation 堆栈的群组，反之亦然。

1. 如果您不想更改组的描述，请跳过此步骤并转到下一步。运行以下命令，将组名称和描述的值替换为自己的值。

   ```
   $ aws resource-groups update-group \
       --group-name "{{resource-group-name}}" \
       --description "{{description_text}}"
   ```

   以下命令是一个示例。

   ```
   $ aws resource-groups update-group \
       --group-name "My-CFN-stack-group" \
       --description "EC2 instances, S3 buckets, and RDS DBs that we are using for the test stage."
   ```

   该命令会返回一个完整、更新的组描述。

1. 要更新组的查询和标签，请运行以下命令。将组名称、堆栈标识符和资源类型的值替换为您自己的值。要添加资源类型，请在命令中提供完整的资源类型列表，而不是仅提供添加的资源类型。您最多可以在查询中包含 20 种资源类型。

   {{stack\_identifier}}是堆栈 ARN，如示例命令所示。

   ```
   $ aws resource-groups update-group-query \
       --group-name {{resource-group-name}} \
       --description "{{description}}" \
       --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"{{stack_identifier}}\",\"ResourceTypeFilters\":[\"{{resource_type1}}\",\"{{resource_type2}}\"]}"}'
   ```

   以下命令是一个示例。

   ```
   $ aws resource-groups update-group-query \
       --group-name "my-resource-group" \
       --description "Updated CloudFormation stack-based group" \
       --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:810000000000:stack\/AWStestuseraccount\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\",\"ResourceTypeFilters\":[\"AWS::EC2::Instance\",\"AWS::S3::Bucket\"]}"}'
   ```

   该命令会返回已更新的查询作为结果。

------