本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建基于查询的组Amazon Resource Groups
资源组查询的类型
InAmazon Resource Groups,a询问是基于查询的组的基础。您可以将资源组基于两种类型的查询之一。
- 基于标签
-
基于标签的查询包含使用以下格式指定的资源类型列表。
AWS::
,以及标签。标签 是帮助识别组织中的资源以及对其进行排序的键。(可选)标签包含键的值。service
::resource
对于基于标签的查询,您还可以指定要作为组成员的资源共享的标签。例如,如果要创建的资源组具有您要用于运行应用程序测试阶段的所有 Amazon EC2 实例和 Amazon S3 存储桶,并且您具有以这种方式标记的实例和存储桶,请选择
AWS::EC2::Instance
和AWS::S3::Bucket
在下拉列表中选择资源类型,然后指定标签键Stage
,标签值为Test
.语法
ResourceQuery
基于标签的资源组的参数包含以下元素:-
Type
此元素表示哪种查询定义了此资源组。要创建基于标签的资源组,请指定值
TAG_FILTERS_1_0
,如下所示:"Type": "TAG_FILTERS_1_0"
-
Query
此元素定义了用于与资源匹配的实际查询。它包含具有以下元素的 JSON 结构的字符串表示:
-
ResourceTypeFilters
此元素将结果限制为仅与筛选条件匹配的资源类型。可以指定以下值:
-
"AWS::AllSupported"
— 指定结果可以包括与查询匹配且 &ARG; 服务当前支持的任何类型的资源。 -
"AWS::
— 使用以下格式的资源类型规范字符串的逗号分隔列表:例如service-id
::resource-type
"AWS::EC2::Instance"
.
-
-
TagFilters
此元素指定与附加到资源的标签进行比较的键/值字符串对。组中包含标签键和值与筛选器匹配的标签键和值。每个过滤器都包含以下元素:
-
"Key"
— 带有密钥名称的字符串。只有具有匹配密钥名称的标签的资源匹配且可以包含在组中。 -
"Values"
— 一个字符串,其中包含逗号分隔的指定键值列表。只有具有匹配标签键和值与此列表中的一个匹配的资源才是组的成员。
-
-
所有这些 JSON 元素必须组合成 JSON 结构的单行字符串表示形式。例如,请考虑
Query
使用以下示例 JSON 结构。此查询旨在仅匹配带有 “Stage” 标签且值为 “测试” 的 Amazon EC2 实例。{ "ResourceTypeFilters": [ "AWS::EC2::Instance" ], "TagFilters": [ { "Key": "Stage", "Values": [ "Test" ] } ] }
该 JSON 可以表示为以下单行字符串,并用作
Query
元素。由于 JSON 结构的值必须是双引号字符串,因此必须通过在每个嵌入的双引号字符或正斜杠字符之前加上反斜杠来转义任何嵌入的双引号字符,如下所示:"Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"
完成
ResourceQuery
然后将字符串表示为 CLI 命令参数,如下所示:--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
-
- 基于 Amazon CloudFormation 堆栈
-
在基于 Amazon CloudFormation 堆栈的查询中,您可以在您的账户的当前区域中选择一个 Amazon CloudFormation 堆栈,然后在该堆栈中选择要包含在组中的资源类型。您只能将查询基于一个 Amazon CloudFormation 堆栈。Resource Groups 支持基于Amazon CloudFormation具有以下状态之一的堆栈。
重要 只有作为查询中堆栈的一部分直接创建的资源才包含在资源组中。后来由成员创建的资源Amazon CloudFormation堆栈不会成为组的成员。例如,如果 auto-scaling 组是由Amazon CloudFormation作为堆栈的一部分,那么那个 auto-scaling 组是该组的成员。但是,作为其运营的一部分,该 auto-scaling 组创建的 Amazon EC2 实例不是的成员Amazon CloudFormation基于堆栈的资源组。
如果您基于Amazon CloudFormation堆栈,并且堆栈变为不再支持作为组查询基础的状态,例如
DELETE_COMPLETE
,资源组仍然存在,但它没有成员资源。
创建资源组后,您可以对组中的资源执行任务。
语法ResourceQuery
a 的参数 CloudFormation 基于堆栈的资源组包含以下元素:
-
Type
此元素表示哪种查询定义了此资源组。
创建Amazon CloudFormation基于堆栈的资源组,指定值
CLOUDFORMATION_STACK_1_0
,如下所示:"Type": "CLOUDFORMATION_STACK_1_0"
-
Query
此元素定义了用于与资源匹配的实际查询。它包含具有以下元素的 JSON 结构的字符串表示:
-
ResourceTypeFilters
此元素将结果限制为仅与筛选条件匹配的资源类型。可以指定以下值:
-
"AWS::AllSupported"
— 指定结果可以包括与查询匹配的任何类型的资源。 -
"AWS::
— 使用以下格式的资源类型规范字符串的逗号分隔列表:例如service-id
::resource-type
"AWS::EC2::Instance"
.
-
-
StackIdentifier
此元素指定的亚马逊资源名称 (ARN)Amazon CloudFormation堆栈您想要包含在组中的资源。
-
所有这些 JSON 元素必须组合成 JSON 结构的单行字符串表示形式。例如,请考虑Query
使用以下示例 JSON 结构。此查询旨在仅匹配属于指定的 Amazon S3 存储桶的组成部分的 Amazon S3 存储桶。Amazon CloudFormation堆栈。
{ "ResourceTypeFilters": [ "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/
MyCloudFormationStackName
/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE" }
该 JSON 可以表示为以下单行字符串,并用作Query
元素。由于 JSON 结构的值必须是双引号字符串,因此必须通过在每个嵌入的双引号字符或正斜杠字符之前加上反斜杠来转义任何嵌入的双引号字符,如下所示:
"Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"
完成ResourceQuery
然后将字符串表示为 CLI 命令参数,如下所示:
--resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"}'
构建基于标签的查询和创建组
下述流程说明了如何构建基于标签的查询和使用该查询创建资源组。
创建Amazon CloudFormation基于堆栈的组
下述流程说明了如何构建基于堆栈的查询和使用该查询创建资源组。