Amazon web services 将CloudTrail事件获取到Lambda函数

Amazon web services 将CloudTrail事件获取到Lambda函数,amazon-web-services,aws-lambda,amazon-cloudwatch,amazon-cloudtrail,Amazon Web Services,Aws Lambda,Amazon Cloudwatch,Amazon Cloudtrail,是否有方法向lambda函数获取事件信息,特别是导致事件的服务的ARN 在上一篇文章中,我请求使用Cloudwatch和Cloudtrail来获取信息。我认为这主要是对规则的误解,但现在我担心的是,是否有必要制定一个通用的解决方案 我知道我可以为一个特定的服务成功地完成它,但是我希望有一个通用的规则来触发这个函数。Cloudwatch日志或事件似乎是解决这个问题的正确答案,但我对Cloudwatch Cloudtrail规则的问题不再有信心 为了充分说明我的目标,我希望在创建任何服务时触发lam

是否有方法向lambda函数获取事件信息,特别是导致事件的服务的ARN

在上一篇文章中,我请求使用Cloudwatch和Cloudtrail来获取信息。我认为这主要是对规则的误解,但现在我担心的是,是否有必要制定一个通用的解决方案

我知道我可以为一个特定的服务成功地完成它,但是我希望有一个通用的规则来触发这个函数。Cloudwatch日志或事件似乎是解决这个问题的正确答案,但我对Cloudwatch Cloudtrail规则的问题不再有信心


为了充分说明我的目标,我希望在创建任何服务时触发lambda函数,并访问新服务的ARN,以便我可以对流程进行验证。

是的,这是可能的,但是,每个事件都有不同的事件属性,您需要检查从何处获取此信息

例如,如果lambda由CloudFormation触发,则可以使用
事件['StackId']
获取堆栈Id(ARN)

{
  "StackId": stackidarn,
  "ResponseURL": "http://pre-signed-S3-url-for-response",
  "ResourceProperties": {
    "StackName": "stack-name",
    "List": [
      "1",
      "2",
      "3"
    ]
  },
  "RequestType": "Create",
  "ResourceType": "Custom::TestResource",
  "RequestId": "unique id for this create request",
  "LogicalResourceId": "MyTestResource"
}
您可以查看中生成的每个事件的详细信息


如果您想实时调试以检查事件内容,您可以找到一些解决方案,如

是的,我刚刚与AWS讨论了一些细节,似乎,正如您所说,JSON的格式,特别是ARN的存储位置,在事件之间将不相同。同样在事件版本之间,所以这种方法似乎不适合我的预期目的。