0

有没有办法获取事件信息,特别是导致事件的服务的 ARN,到 lambda 函数?

在我之前的问题中,我寻求一些有关使用 Cloudwatch 和 Cloudtrail 获取信息的帮助。我认为这主要是对规则的误解,但现在我担心是否有办法制定一个通用的解决方案。

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

只是为了充分阐述我的目标,我希望在创建任何服务时都有一个 lambda 函数触发器,并可以访问该新服务的 ARN,以便我可以对流程进行验证。

4

1 回答 1

1

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

例如,如果您的 lambda 由CloudFormation触发,您可以使用event['StackId'].

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

您可以在http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html中查看有关生成的每个事件的详细信息。

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

于 2017-07-12T17:29:50.413 回答