在cloudformation堆栈创建之后触发预定的lambda函数

时间:2016-12-21 17:13:54

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

这会安排我的cloudformation lambda每天运行一次,但我希望它能在创建一次时触发。

Transform: AWS::Serverless-2016-10-31
...
EventListFunction:
  Type: 'AWS::Serverless::Function'
  Properties:
    ...
    Events:
      Schedule1:
        Type: Schedule
        Properties:
          Schedule: rate(1 day)

2 个答案:

答案 0 :(得分:2)

以下是一些选项:

  1. 手动create an SNS Topic。使用lambda函数作为AWS::SNS::Subscription并将SNS主题添加为Endpoint,将TopicArn添加到堆栈。在堆栈创建/更新时,配置要发送到此SNS主题的堆栈事件通知。

  2. 添加Custom Resource引用新创建的函数,该函数将在创建时调用该函数。为了完成自定义资源创建并且不会导致堆栈中的回滚,您需要调整Lambda函数以支持CloudFormation请求/响应格式(请参阅Custom Resource Reference)。另请注意,在删除堆栈时也会再次调用该函数,这也需要处理。

  3. 将Lambda函数添加到堆栈输出,然后编写一个简单的脚本,执行堆栈更新并在完成后调用Lambda函数。

答案 1 :(得分:0)

查看AWS :: CloudFormation :: CustomResource来调用它