View a markdown version of this page

详细字段的结构 - Amazon Resource Groups
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

详细字段的结构

注意

Amazon 的群组生命周期事件 (GLE) 功能不再向新客户开放。 Amazon Resource Groups 有关与群组生命周期事件 (GLE) 类似的功能,请参阅推荐的 EventBridge-based 替代方案。有关更多信息,请参阅 的群组生命周期事件功能 Amazon Resource Groups  可用性变更

detail 字段包含有关特定更改的所有 Resource Groups 服务特定详细信息。根据上一节中描述的 detail 字段值,该 detail-type 字段可以采用两种形式之一,即组状态更改或成员资格更改。

重要

这些事件中的资源组由组的 ARN 和包含 UUID"unique-id" 字段组合来标识。通过将 UUID 作为资源组身份的一部分,您可以区分已删除的组和以后使用相同名称创建的不同组。我们建议您将 ARN 和唯一 ID 的串联视为程序中与这些事件交互的组的键。

组状态更改

"detail-type": "ResourceGroups Group State Change"

detail-type 值表示组本身的状态(包括其元数据)已更改。此更改发生在创建、更新或删除组时,如 detail 中的 "change" 字段所示。

指定此 detail-type 时,details 部分中包含的信息包括下表中描述的字段。

字段名称 Type 说明
event-sequence 双精度 一个单调递增的数字,用于指定特定组的事件顺序。当您删除该组并创建另一个同名的组时,该数字会重置。
group Group JSON 对象 按其 ARN、名称和唯一 ID 与事件关联的组对象。
state-change 字符串 发生的状态更改类型。可以是以下任何值:
old-state GroupState JSON 对象 更改前的组状态。该对象仅包含已更改的属性的值。

new-state

GroupState JSON 对象 更改后的组状态。该对象仅包含已更改的属性的值。

group JSON 对象包含下表中描述的元素。

字段名称 Type 说明
arn 字符串 组的 ARN。
name 字符串 组的友好名称。
unique-id GUID 唯一的 GUID 值,用于区分已删除的组和后来使用相同名称和 ARN 创建的另一个组。在代码中使用这些事件时,使用 ARN 和此值的串联作为该组的唯一键。

GroupState JSON 对象包含下表中描述的元素。

字段名称 Type 说明
description 字符串 资源组的客户提供描述。
resource-query ResourceQuery JSON 对象 定义组成员的查询的 JSON 表示形式。此字段仅适用于基于查询的组。该字段的语法由 ResourceQuery API 数据类型定义创建更新事件示例中包含了这方面的示例。
group-configuration Configuration JSON 对象 与服务关联组关联的配置参数的 JSON 表示形式。有关更多信息,请参阅 Amazon Resource Groups API 参考中的保存资源组的配置

以下每个代码示例说明了每种 state-change 类型的 detail 字段内容。

Create

"state-change": "create"

该事件表示新组已创建。该事件包含组创建期间设置的所有组元数据属性。除非组为空,否则此事件之后通常会有一个或多个组成员资格事件。具有空值的属性不会显示在事件正文中。

以下示例事件表示名为 my-service-group 的新建资源组。在此示例中,该组使用一个基于标签查询,其仅匹配具有标签 "project"="my-service" 的 Amazon Elastic Compute Cloud(Amazon EC2)实例。

{ "version": "0", "id": "08f00e24-2e30-ec44-b824-8acddf1ac868", "detail-type": "ResourceGroups Group State Change", "source": "aws.resource-groups", "account": "123456789012", "time": "2020-09-29T09:59:01Z", "region": "us-east-1", "resources": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group" ], "detail": { "event-sequence": 1.0, "state-change": "create", "group": { "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group", "name": "my-service-group", "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea" }, "new-state": { "resource-query": { "type": "TAG_FILTERS_1_0", "query": "{ \"ResourceTypeFilters\": [\"AWS::EC2::Instance\"], \"TagFilters\": [{\"Key\":\"project\", \"Values\":[\"my-service\"}] }" } } } }

更新

"state-change": "update"

该事件表示现有组已按某种方式修改。该事件仅包含从先前状态更改的属性。未更改的属性不会显示在事件正文中。

以下示例事件表明,上一个示例的资源组中基于标签的查询已被修改,将该组中的 Amazon EC2 卷资源也包括在内。

{ "version": "0", "id": "08f00e24-2e30-ec44-b824-8acddf1ac868", "detail-type": "ResourceGroups Group State Change", "source": "aws.resource-groups", "account": "123456789012", "time": "2020-09-29T09:59:01Z", "region": "us-east-1", "resources": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group" ], "detail": { "event-sequence": 3.0, "state-change": "update", "group": { "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group", "name": "my-service", "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea" }, "new-state": { "resource-query": { "type": "TAG_FILTERS_1_0", "query": "{ \"ResourceTypeFilters\": [\"AWS::EC2::Instance\", \"AWS::EC2::Volume\"], \"TagFilters\": [{\"Key\":\"project\", \"Values\":[\"my-service\"}] }" } }, "old-state": { "resource-query": { "type": "TAG_FILTERS_1_0", "query": "{ \"ResourceTypeFilters\": [\"AWS::EC2::Instance\"], \"TagFilters\": [{\"Key\":\"Project\", \"Values\":[\"my-service\"}] }" } } } }

删除

"state-change": "delete"

该事件表示现有组已被删除。除了组标识外,详细信息字段不包含关于组的元数据。该 event-sequence 字段将在此事件之后重置,因为根据定义,它是此 arnunique-id 的最后一个事件。

{ "version": "0", "id": "08f00e24-2e30-ec44-b824-8acddf1ac868", "detail-type": "ResourceGroups Group State Change", "source": "aws.resource-groups", "account": "123456789012", "time": "2020-09-29T09:59:01Z", "region": "us-east-1", "resources": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-service" ], "detail": { "event-sequence": 4.0, "state-change": "delete", "group": { "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service", "name": "my-service", "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea" } } }

组成员资格更改

"detail-type": "ResourceGroups Group Membership Change"

detail-type 值表示该组的成员资格因向该组添加资源或从组中移除资源而更改。指定此 detail-type 后,顶级 resources 字段将包括成员资格已更改的组的 ARN 以及向该组中添加或移除的所有资源的 ARN。

指定此 detail-type 时,details 部分中包含的信息包括下表中描述的字段。

字段名称 Type 说明
event-sequence 双精度 一个单调递增的数字,表示特定组的事件顺序。当组被删除且其唯一 ID 更改时,该数字会重置。
group Group JSON 对象 通过 ARN、名称和唯一 ID 标识与事件关联的组对象。

resources

ResourceChange JSON 对象数组

组成员资格已更改的资源数组。

ResourceChange 对象包含每个资源的以下字段:

  • membership-change – 该值为 "add""remove"

  • arn – 添加或移除的资源的 ARN。

  • resource-type – 添加或移除的资源类型。

以下代码示例说明了典型成员资格更改类型的事件内容。此示例显示正在向组中添加一个资源,以及从该组中移除一个资源。

{ "version": "0", "id": "08f00e24-2e30-ec44-b824-8acddf1ac868", "detail-type": "ResourceGroups Group Membership Change", "source": "aws.resource-groups", "account": "123456789012", "time": "2020-09-29T09:59:01Z", "region": "us-east-1", "resources": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-service", "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111", "arn:aws:ec2:us-east-1:123456789012:instance/i-efef2222" ], "detail": { "event-sequence": 2.0, "group": { "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service", "name": "my-service", "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea" }, "resources": [ { "membership-change": "add", "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111", "resource-type": "AWS::EC2::Instance" }, { "membership-change": "remove", "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-efef2222", "resource-type": "AWS::EC2::Instance" } ] } }