在 AWS Resource Groups 中更新组 - AWS Resource Groups

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

在 AWS Resource Groups 中更新组

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

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

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

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

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

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

更新基于标签的查询组

Console

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

  1. 登录到 AWS Resource Groups 控制台

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

    注意

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

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

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

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

  6. (可选)在组标签中,您可以添加或移除标签。组标签是有关资源组的元数据。它们不会影响成员资源。要更改资源组的查询返回的资源,请在分组条件下编辑标签。

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

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

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

AWS CLI & AWS SDKs

在 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 堆栈的组

Console

在 AWS CloudFormation 中,您无法将基于 AWS Management Console 堆栈的组更改为基于标签的组。但是,您可以更改该组所基于的堆栈,也可以更改要包含在组中的堆栈资源类型。您还可以添加或更改组的描述。

  1. 登录到 AWS Resource Groups 控制台

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

  3. 注意

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

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

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

  6. 选择之前的组资源以检索 AWS CloudFormation 堆栈中与选定资源类型匹配的资源列表。

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

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

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

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

AWS CLI & AWS SDKs

在 AWS CLI 中,您使用两个不同的命令更新组的查询和更新资源组的描述。不能编辑现有组的名称。在 AWS 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."

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

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

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