AWS Config 规则的示例事件 - AWS Config

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

AWS Config 规则的示例事件

当规则的触发器发生时,通过发布事件来 AWS Config 调用规则的 AWS Lambda 函数。然后通过将事件传递给函数的处理程序来 AWS Lambda 执行该函数。

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

AWS 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" }

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

AWS 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" }

事件属性

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

invokingEvent

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

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

对于每种类型的事件,函数都必须使用解JSON析器解析字符串才能评估其内容,如下面的 Node.js 示例所示:

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

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

参数的JSON代码包含在字符串中,因此函数必须使用解析器解JSON析该字符串才能评估其内容,如下面的 Node.js 示例所示:

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

函数在调用时必须传递给 AWS Config 的标PutEvaluations记。

eventLeftScope

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

executionRoleArn

分配给ARN的IAM角色的 AWS Config。

configRuleArn

AWS Config 分配ARN给规则的。

configRuleName

您为导致 AWS Config 发布事件和调用函数的规则分配的名称。

configRuleId

AWS Config 分配给规则的 ID。

accountId

拥有 AWS 账户 该规则的 ID。

version

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

AWS Config 事件的当前版本是 1.0。