【问题标题】:Can AWS Lambda and Amazon S3 resources exist in the same CloudFormation template?AWS Lambda 和 Amazon S3 资源是否可以存在于同一个 CloudFormation 模板中?
【发布时间】:2020-10-08 08:56:32
【问题描述】:
我需要使用 CloudFormation 创建一个 Amazon S3 存储桶和一个 lambda 函数。我在本地有 jar 文件。如果我在单个模板中为 S3 存储桶和 lambda 函数编写资源,我必须在 lambda 资源中提供 S3bucket 和密钥。堆栈创建失败,因为存储桶中不存在 jar 文件。那么,这是否意味着我必须使用模板单独创建一个bucket,上传jar文件,然后使用另一个模板创建一个lambda函数?
有没有办法使用一个模板创建两种资源?
【问题讨论】:
标签:
amazon-web-services
amazon-s3
aws-lambda
amazon-cloudformation
【解决方案2】:
那么,这是否意味着我必须使用模板单独创建一个bucket,上传jar文件,然后使用另一个模板创建一个lambda函数?
是和不是。
通常当您创建一个存储桶时,它会是空的。你不能用普通的 CloudFormation 填充它。通常你必须manually(例如使用AWS CLI、SDK或使用控制台)上传jar文件。
要获得更多高级解决方案以将所有内容保存在 CloudFormation 中,您必须考虑在 CloudFormation 中创建自己的 Custom Resources,这会在 CloudFormation 中为您上传 jar 文件。为此,您的jar 需要在线可用,以便可以将其下载到您的存储桶中。
因此,如果您刚开始使用 CloudFormation,那么一开始创建自定义资源可能会很困难。