Amazon Config 规则的示例事件 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon Config 规则的示例事件

当触发规则时,Amazon Config 会通过发布一个事件来调用该规则的 Amazon Lambda 函数。然后,Amazon Lambda 会将事件传递到该函数的处理程序,从而执行该函数。

由配置更改触发的评估的示例事件

当 Amazon Config 检测到规则范围内的资源的配置更改时,它会发布一个事件。下面的示例事件演示规则被某个 EC2 实例的配置更改所触发。

{ "invokingEvent": "{\"configurationItem\":{\"configurationItemCaptureTime\":\"2016-02-17T01:36:34.043Z\",\"awsAccountId\":\"123456789012\",\"configurationItemStatus\":\"OK\",\"resourceId\":\"i-00000000\",\"ARN\":\"arn:aws:ec2:us-east-2:123456789012:instance/i-00000000\",\"awsRegion\":\"us-east-2\",\"availabilityZone\":\"us-east-2a\",\"resourceType\":\"AWS::EC2::Instance\",\"tags\":{\"Foo\":\"Bar\"},\"relationships\":[{\"resourceId\":\"eipalloc-00000000\",\"resourceType\":\"AWS::EC2::EIP\",\"name\":\"Is attached to ElasticIp\"}],\"configuration\":{\"foo\":\"bar\"}},\"messageType\":\"ConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

由过大配置更改触发的评估的示例事件

某些资源更改会生成过大配置项。下面的示例事件演示规则被某个 EC2 实例的过大配置更改所触发。

{ "invokingEvent": "{\"configurationItemSummary\": {\"changeType\": \"UPDATE\",\"configurationItemVersion\": \"1.2\",\"configurationItemCaptureTime\":\"2016-10-06T16:46:16.261Z\",\"configurationStateId\": 0,\"awsAccountId\":\"123456789012\",\"configurationItemStatus\": \"OK\",\"resourceType\": \"AWS::EC2::Instance\",\"resourceId\":\"i-00000000\",\"resourceName\":null,\"ARN\":\"arn:aws:ec2:us-west-2:123456789012:instance/i-00000000\",\"awsRegion\": \"us-west-2\",\"availabilityZone\":\"us-west-2a\",\"configurationStateMd5Hash\":\"8f1ee69b287895a0f8bc5753eca68e96\",\"resourceCreationTime\":\"2016-10-06T16:46:10.489Z\"},\"messageType\":\"OversizedConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-ec2-managed-instance-inventory", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

由定期频率触发的评估的示例事件

当 Amazon Config 以您指定的频率 (如每 24 小时) 评估您的资源时,它会发布一个事件。下面的示例事件演示规则被定期频率触发。

{ "invokingEvent": "{\"awsAccountId\":\"123456789012\",\"notificationCreationTime\":\"2016-07-13T21:50:00.373Z\",\"messageType\":\"ScheduledNotification\",\"recordVersion\":\"1.0\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "periodic-config-rule", "configRuleId": "config-rule-6543210", "accountId": "123456789012", "version": "1.0" }

事件属性

Amazon Config 事件的 JSON 对象包含以下属性:

invokingEvent

触发规则评估的事件。如果事件是为了响应资源配置更改而发布的,则此属性的值是一个包含 JSON configurationItemconfigurationItemSummary (对于过大配置项) 的字符串。该配置项表示相关资源在 Amazon Config 检测到更改时的状态。有关配置项的示例,请参阅 查看配置历史记录 中的 get-resource-config-history Amazon CLI 命令生成的输出。

如果事件是针对定期评估而发布的,则值是一个包含 JSON 对象的字符串。该对象包含关于已触发的评估的信息。

对于每种类型的事件,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:

var invokingEvent = JSON.parse(event.invokingEvent);
ruleParameters

函数会将其作为评估逻辑的一部分来处理的键/值对。在使用时可以定义参数Amazon Config控制台创建自定义 Lambda 规则。您也可以使用 PutConfigRule Amazon Config API 请求中的 InputParameters 属性或 put-config-rule Amazon CLI 命令来定义参数。

参数的 JSON 代码包含在字符串中,因此,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:

var ruleParameters = JSON.parse(event.ruleParameters);
resultToken

函数必须通过 PutEvaluations 调用传递给 Amazon Config 的令牌。

eventLeftScope

表明要评估的 Amazon 资源是否已从规则范围内删除的布尔值。如果值为 true,则该函数表示可通过传递 NOT_APPLICABLE 作为 ComplianceType 调用中的 PutEvaluations 属性值来忽略评估。

executionRoleArn

分配给的 IAM 角色的 ARNAmazon Config.

configRuleArn

Amazon Config 分配给规则的 ARN。

configRuleName

您向导致 Amazon Config 发布事件并调用函数的规则分配的名称。

configRuleId

Amazon Config 分配给规则的 ID。

accountId

拥有规则的 Amazon 账户的 ID。

version

Amazon 分配的版本号。如果 Amazon 向 Amazon Config 事件添加属性,则版本号会递增。如果函数需要仅在匹配或超过特定版本的事件中的属性,则该函数可以检查此属性的值。

Amazon Config 事件的当前版本为 1.0。