【问题标题】:Getting CloudTrail event to a Lambda function将 CloudTrail 事件发送到 Lambda 函数
【发布时间】:2017-12-11 23:05:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudwatch amazon-cloudtrail


    【解决方案1】:

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

    例如,如果您的 lambda 由 CloudFormation 触发,您可以使用 event['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"
    }
    

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

    如果想实时调试查看事件内容,可以找lambda-toolkit这样的解决方案

    【讨论】:

    • 是的,我刚刚与 AWS 讨论了一些细节,看起来,就像你说的,JSON 的格式,特别是 ARN 的存储位置,在事件之间不会相同。同样在事件版本之间,因此这种方法似乎不适用于我的预期目的。
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 2020-12-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2020-10-08
    • 2018-05-05
    相关资源
    最近更新 更多