本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 请求中的InputParameters
属性或put-config-rule
AWS CLI 命令来定义参数。参数的 JSON 代码包含在字符串中,因此,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:
var ruleParameters = JSON.parse(event.ruleParameters);
resultToken
-
函数必须通过
PutEvaluations
调用传递给 AWS Config 的令牌。 eventLeftScope
-
表明要评估的 AWS 资源是否已从规则范围内删除的布尔值。如果值为
true
,则该函数表示可通过传递NOT_APPLICABLE
作为ComplianceType
调用中的PutEvaluations
属性值来忽略评估。 executionRoleArn
-
分配的 IAM 角色的 ARNAWS Config。
configRuleArn
-
AWS Config 分配给规则的 ARN。
configRuleName
-
您向导致 AWS Config 发布事件并调用函数的规则分配的名称。
configRuleId
-
AWS Config 分配给规则的 ID。
accountId
-
拥有规则的 AWS 账户的 ID。
version
-
AWS 分配的版本号。如果 AWS 向 AWS Config 事件添加属性,则版本号会递增。如果函数需要仅在匹配或超过特定版本的事件中的属性,则该函数可以检查此属性的值。
AWS Config 事件的当前版本为 1.0。