【问题标题】:Setup Lambda function to run a CloudFormation stack设置 Lambda 函数以运行 CloudFormation 堆栈
【发布时间】:2020-05-13 02:57:38
【问题描述】:

是否可以在收到特定 SNS 通知时运行 CloudFormation 堆栈。 任何建议如何实现这种情况。

每当我收到特定的 SNS 通知时,都应触发 Lambda 函数,然后启动 CloudFormation 堆栈。

【问题讨论】:

    标签: lambda amazon-cloudformation


    【解决方案1】:

    因为您可以从 AWS Lambda 中访问 AWS API,这完全没有问题。如果您使用的 Python 可能如下所示:

    import boto3
    cf_client = boto3.client('cloudformation')
    cf_client.create_stack(
        StackName='your-stack',
        TemplateURL='https://s3.amazonaws.com/your-bucket/your-template'
    )
    

    当然还有很多附加参数是supported as well

    有一个很大的警告:上面的代码将创建一个堆栈,但不会跟踪堆栈创建是否成功。虽然您可以通过 describe_stacks 调用获取该信息,但您不能依赖在 AWS Lambda 函数的该实例中拥有一个完成的堆栈,因为 AWS Lambda 函数的最长运行时间是 15 分钟,但 CloudFormation 堆栈创建可能需要更长的时间。

    如果您不关心堆栈创建是否成功,您应该很好,否则我建议您将 create_stack 调用返回的堆栈 ID 写入持久存储(例如 DynamoDB)并有一个单独的计划 AWS Lambda 函数检查存储在 DynamoDB 中的 CloudFormation 堆栈的状态并处理可能的堆栈创建结果。

    【讨论】:

    • 非常感谢。会检查的。
    猜你喜欢
    • 2022-01-27
    • 2017-10-20
    • 2019-03-15
    • 1970-01-01
    • 2017-05-07
    • 2018-08-24
    • 2016-07-17
    • 2021-05-11
    • 2017-08-08
    相关资源
    最近更新 更多