设置Lambda函数以运行CloudFormation堆栈

设置Lambda函数以运行CloudFormation堆栈,lambda,amazon-cloudformation,Lambda,Amazon Cloudformation,每当我收到特定的SNS通知时,是否可以运行CloudFormation堆栈。 如何实现此场景的任何建议 每当我收到特定的SNS通知时,都会触发Lambda函数,该函数将启动CloudFormation堆栈。因为您可以从AWS Lambda中访问AWS API,这一点都没有问题。如果您使用的是Python,它可能看起来像: 导入boto3 cf_client=boto3.client('cloudformation') cf\u client.create\u堆栈( StackName='your

每当我收到特定的SNS通知时,是否可以运行CloudFormation堆栈。 如何实现此场景的任何建议


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

因为您可以从AWS Lambda中访问AWS API,这一点都没有问题。如果您使用的是Python,它可能看起来像:

导入boto3
cf_client=boto3.client('cloudformation')
cf\u client.create\u堆栈(
StackName='your-stack',
TemplateURL=https://s3.amazonaws.com/your-bucket/your-template'
)
当然还有很多额外的参数

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


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

非常感谢。我会检查的。