【问题标题】:Trigger a lambda based on Cloudformation stack update/complete events根据 Cloudformation 堆栈更新/完成事件触发 lambda
【发布时间】:2020-02-02 10:40:04
【问题描述】:

我有这个用例,每次我的 cloudformation 堆栈更新/删除时,我都需要触发一个 lambda。 Cloudformation 不会发出任何 cloudwatch 指标。有没有办法让 cloudformation 事件触发 lambda。我可以参考的任何现有示例。

【问题讨论】:

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


    【解决方案1】:

    您可以在 cloudformation 脚本中添加引用您的 lambda 函数作为自定义资源。然后,您可以在堆栈的每次更新时运行自定义资源(执行您的 Lambda)。

    基本语法是:

    MyCustomResource: 
      Type: "Custom::TestLambdaCrossStackRef"
      Properties: 
        ServiceToken:
          !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${LambdaFunctionName}
        StackName: 
          Ref: "NetworkStackName"
    

    更多信息在这里: AWS Documentation

    【讨论】:

    • 值得注意的是,它不会在每次更新时运行,除非该资源发生变化,而不会发生变化。我做了类似的事情,但使用宏来设置传递给自定义资源的参数值。宏生成的值总是不同的,所以每次模板作为更新运行时,由于参数值的变化,总是调用自定义资源。
    【解决方案2】:

    通过https://docs.aws.amazon.com/en_pv/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html 在 CFT 中将 SNS 主题配置为通知选项。让您的 lambda 成为该主题的订阅者。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 1970-01-01
      • 2022-06-10
      • 2021-06-27
      • 2020-03-19
      • 2017-05-07
      • 2018-04-01
      • 1970-01-01
      • 2014-02-24
      相关资源
      最近更新 更多