在 AWS 资源组 中更新组 - AWS 资源组
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在 AWS 资源组 中更新组

要在资源组中更新基于标签的资源组,您可以编辑作为组基础的查询和标签。只能通过对查询或标签应用更改来在组中添加和删除资源。不能选择要在组中添加或删除的特定资源。在组中添加或删除特定资源的最佳方式是编辑资源的标签。然后,验证您的资源组标签查询是否包含或忽略标签,具体取决于您是否希望该资源位于您的组中。

要更新基于 AWS CloudFormation 堆栈的资源组,您可以选择其他堆栈。您还可以在要成为组一部分的堆栈中添加或删除资源类型。要更改堆栈中的可用资源,请更新用于创建堆栈的 AWS CloudFormation 模板,然后在 AWS CloudFormation 中更新堆栈。有关如何更新 AWS CloudFormation 堆栈的更多信息,请参阅 用户指南AWS CloudFormation 中的 堆栈更新AWS CloudFormation。

在 AWS CLI 中,您可以使用两个命令更新组。

  • update-group,用于更新组的描述。

  • update-group-query,用于更新用于确定组成员资源的资源查询和标签。

在控制台中,您无法将基于 AWS CloudFormation 堆栈的组更改为基于标签的组,反之亦然。不过,您可以使用资源组 API(包括在 AWS CLI 中)执行该操作。

更新组(控制台)

更新基于标签的组

可以在查询中更改组所基于的资源类型或标签以更新基于标签的组。您还可以添加或更改组的描述。

  1. 从 AWS 管理控制台的左上角打开 资源组。

  2. 在导航窗格中的保存的资源组下面,选择一个组,然后选择编辑

    注意

    您只能更新您拥有的资源组。拥有者列显示每个资源组的账户所有权。账户所有者不是您登录的账户所有者的任何组都是在AWS License Manager中创建的。有关更多信息,请参阅 中的 AWS License Manager 中的主机资源组License Manager 用户指南

  3. 编辑组页面上的分组条件中,添加或删除资源类型。您最多可以在查询中包含 20 种资源类型。要删除资源类型,请在该资源类型的标签上选择 X。选择查看组资源以查看更改如何影响您的组的资源成员。在本演练中,我们在查询中添加资源类型 AWS::RDS::DBInstance

    
                            组查询
  4. 编辑标签(如有必要)。在该示例中,我们筛选具有 Stage 标签键并添加 Test 标签值的资源。标签值是可选的,但会进一步缩小查询的结果。要删除标签,请在其标签上选择 X

    
                            组标签
  5. 其他信息中,您可以编辑组描述。在创建组后,您无法编辑组的名称。

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

    如果计划将此组作为较大组的成员,则组标签非常有用。要创建组,至少需要指定一个标签键。因此,请确保将 Group tags (组标签) 中的标签键添加到您计划嵌套到更大组的组。

  7. 选择查看查询结果以返回您的账户中与指定标签键匹配的 EC2 实例、S3 存储桶和 Amazon RDS 数据库实例的更新列表。如果在列表中看不到所需的资源,请确保使用在分组条件中指定的标签标记了资源。

  8. 在完成后,选择保存更改

更新基于 AWS CloudFormation 堆栈的组

您不能在 AWS CloudFormation中将基于 AWS 管理控制台 堆栈的组更改为基于标签的组。但是,您可以更改组所基于的堆栈,或更改要包含在组中的堆栈资源类型。您还可以添加或更改组的描述。

  1. 从 AWS 管理控制台的左上角打开 资源组。

  2. 在导航窗格中的保存的资源组下面,选择一个现有的组,然后选择编辑

    注意

    您只能更新您拥有的资源组。拥有者列显示每个资源组的账户所有权。账户所有者不是您登录的账户所有者的任何组都是在AWS License Manager中创建的。有关更多信息,请参阅 中的 AWS License Manager 中的主机资源组License Manager 用户指南

  3. 编辑组页面上的分组条件中,要更改组所基于的堆栈,请从下拉列表中选择该堆栈。只能将资源组基于一个堆栈。要筛选堆栈列表,请开始键入堆栈的名称。仅在列表中显示具有支持的状态的堆栈。有关支持的状态列表,请参阅本指南中的在 AWS 资源组 中构建查询和组

    
                             分组条件区域;未选择任何资源类型;基于 AWS CloudFormation 堆栈的查询。
  4. 添加或删除资源类型。仅在下拉列表中显示堆栈中的可用资源类型。默认值为所有受支持的资源类型。您最多可以在查询中包含 20 种资源类型。要删除资源类型,请在该资源类型的标签上选择 X。有关可以包含在组中的受支持资源类型的更多信息,请参阅可以与 AWS 资源组 一起使用的资源

  5. 选择查看组资源以返回 AWS CloudFormation 堆栈中与选定资源类型匹配的资源列表。

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

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

    如果计划将此组作为较大组的成员,则组标签非常有用。要创建组,至少需要指定一个标签键。因此,请确保在 Group tags (组标签) 中向计划嵌套到更大组的组添加至少一个标签键。

  8. 在完成后,选择保存更改

更新组 (AWS CLI)

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

更新基于标签的组

  1. 如果您不想更改组的描述,请跳过此步骤并转到下一步。在 AWS CLI 会话中,键入以下内容,然后按 Enter,以将组名称和描述替换为您自己的值。

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

    以下命令是一个示例。

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

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

  2. 要更新组的查询和标签,请键入以下命令。将组名称、资源类型、标签键和标签值的值替换为您自己的值。然后,选择 Enter。您最多可以在查询中包含 20 种资源类型。

    $ aws resource-groups update-group-query \ --group-name resource-group-name \ --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"resource_type1\",\"resource_type2\"],\"TagFilters\":[{\"Key\":\"Key1\",\"Values\":[\"Value1\",\"Value2\"]},{\"Key\":\"Key2\",\"Values\":[\"Value1\",\"Value2\"]}]}"}'

    以下命令是一个示例。

    $ aws resource-groups update-group-query \ --group-name my-resource-group \ --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\",\"AWS::S3::Bucket\",\"AWS::RDS::DBInstance\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'

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

更新基于 AWS CloudFormation 堆栈的组

  1. 如果您不想更改组的描述,请跳过此步骤并转到下一步。在 AWS CLI 会话中,键入以下内容,然后按 Enter,以将组名称和描述替换为您自己的值。

    $ 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."

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

  2. 要更新组的查询和标签,请键入以下命令。将组名称、堆栈标识符和资源类型的值替换为您自己的值。然后按 Enter。要添加资源类型,请在命令中提供完整的资源类型列表,而不是仅提供添加的资源类型。您最多可以在查询中包含 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\"]}"}'

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