本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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-history
Amazon CLI 命令生成的输出查看配置历史记录。如果事件是针对定期评估而发布的,则值是一个包含 JSON 对象的字符串。该对象包含关于已触发的评估的信息。
对于每种类型的事件,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:
var invokingEvent = JSON.parse(event.invokingEvent);
ruleParameters
-
函数会将其作为评估逻辑的一部分来处理的键/值对。您可以在使用 Amazon Config 控制台创建自定义 Lambda 规则时定义参数。您也可以在
PutConfigRule
Amazon Config API 请求或put-config-rule
Amazon CLI 命令中使用InputParameters
属性定义参数。参数的 JSON 代码包含在字符串中,因此,函数必须通过 JSON 解析程序解析字符串,以便能够评估其内容,如下面的 Node.js 示例中所示:
var ruleParameters = JSON.parse(event.ruleParameters);
resultToken
-
函数在调用时必须传递给 Amazon Config 的标
PutEvaluations
记。 eventLeftScope
-
一个布尔值,表示要评估的 Amazon 资源是否已从规则的作用域中移除。如果值为
true
,则该函数表示可通过传递NOT_APPLICABLE
作为ComplianceType
调用中的PutEvaluations
属性值来忽略评估。 executionRoleArn
-
分配给的 IAM 角色的 ARN。 Amazon Config
configRuleArn
-
Amazon Config 分配给规则的 ARN。
configRuleName
-
您为导致 Amazon Config 发布事件和调用函数的规则分配的名称。
configRuleId
-
Amazon Config 分配给规则的 ID。
accountId
-
拥有 Amazon Web Services 账户 该规则的 ID。
version
-
由分配的版本号 Amazon。如果向 Amazon Config 事件 Amazon 添加属性,则版本将增加。如果函数需要仅在匹配或超过特定版本的事件中的属性,则该函数可以检查此属性的值。
Amazon Config 事件的当前版本是 1.0。