本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
configurationItem或configurationItemSummary(对于过大配置项) 的字符串。该配置项表示相关资源在 Amazon Config 检测到更改时的状态。有关配置项的示例,请参阅 查看配置历史记录 中的get-resource-config-historyAmazon CLI 命令生成的输出。如果事件是针对定期评估而发布的,则值是一个包含 JSON 对象的字符串。该对象包含关于已触发的评估的信息。
对于每种类型的事件,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:
var invokingEvent = JSON.parse(event.invokingEvent); ruleParameters-
函数会将其作为评估逻辑的一部分来处理的键/值对。使用时,您可以定义参数Amazon Config控制台以创建自定义 Lambda 规则。您也可以使用
PutConfigRuleAmazon Config API 请求中的InputParameters属性或put-config-ruleAmazon 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。