【问题标题】:How to trigger Update of an AWS Cloudformation stack when an object is uploaded to an S3 bucket?将对象上传到 S3 存储桶时如何触发 AWS Cloudformation 堆栈的更新?
【发布时间】:2019-10-24 00:52:32
【问题描述】:

我们有一个使用 AWS CloudFormation 部署的 AWS Lambda 函数列表,它们的代码放置在 Amazon S3 存储桶中。

我们通过将最新代码上传到 S3 并运行具有 S3 对象版本参数的 update-stack 命令来更新 Lambda 代码。因此,当检测到对象版本更改(即:将新的 Lambda 代码上传到 s3)时,我们运行更新堆栈命令,然后 CloudFormation 部署新代码。

我想通过在将对象上传到 S3 时触发堆栈更新来自动执行此过程。这个可以吗?

【问题讨论】:

    标签: amazon-s3 aws-lambda amazon-cloudformation amazon-sns auto-update


    【解决方案1】:

    当对象上传到 Amazon S3 时,您可以使用 Amazon S3 事件触发 AWS Lambda 函数

    见:Using AWS Lambda with Amazon S3

    然后,此 Lambda 函数可以调用 CloudFormation UpdateStack() 函数来更新堆栈。您可以在 Lambda 函数中使用您选择的语言。

    【讨论】:

    • 是否可以从 lambda 中执行 update stack(),create stack() 命令?要安装哪个包来运行这些命令。我听说开发人员在 lambdas 中使用 AWS CLI,您指的是那些还是有其他方法?能否请您详细说明。谢谢
    • 无需使用 AWS CLI。它用于命令行使用。基本上,您可以通过编程调用在 AWS 上执行绝对一切。请参阅:AWS SDKs。例如,请参阅CloudFormation commands from Python
    • 非常感谢。终于找到了 dotnet 的 Cloudformation 客户端。 docs.aws.amazon.com/sdkfornet/latest/apidocs
    • 使用 s3 事件时要小心。它将异步触发 Lambda,如果由于某种原因出错,可能会导致意外的额外 Lambda 调用。
    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2018-04-25
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多