本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
-
触发规则评估的事件。如果事件是为了响应资源配置更改而发布的,则此属性的值是一个包含JSON
configurationItem
或的字符串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。