将对象上传到 S3 存储桶时如何触发 AWS Cloudformation 堆栈的更新?
Posted
技术标签:
【中文标题】将对象上传到 S3 存储桶时如何触发 AWS Cloudformation 堆栈的更新?【英文标题】:How to trigger Update of an AWS Cloudformation stack when an object is uploaded to an S3 bucket? 【发布时间】:2019-10-24 00:52:32 【问题描述】:我们有一个使用 AWS CloudFormation 部署的 AWS Lambda 函数列表,它们的代码放置在 Amazon S3 存储桶中。
我们通过将最新代码上传到 S3 并运行具有 S3 对象版本参数的 update-stack
命令来更新 Lambda 代码。因此,当检测到对象版本更改(即:将新的 Lambda 代码上传到 s3)时,我们运行更新堆栈命令,然后 CloudFormation 部署新代码。
我想通过在将对象上传到 S3 时触发堆栈更新来自动执行此过程。这个可以吗?
【问题讨论】:
【参考方案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 调用。以上是关于将对象上传到 S3 存储桶时如何触发 AWS Cloudformation 堆栈的更新?的主要内容,如果未能解决你的问题,请参考以下文章
当我们将数据从加密的 AWS S3 存储桶发送到加密的 Google Cloud Storage 存储桶时,该数据是不是在传输过程中加密?