【问题标题】: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


    【解决方案1】:

    对于一些需要 Amazon S3 位置(存储桶名称和文件名)的资源属性,您可以指定本地引用。无需手动将文件上传到 S3 存储桶,然后将位置添加到模板,您可以在模板中指定本地工件,然后使用 aws cloudformation package 命令快速上传它们。

    您可以在这里找到更多信息:Uploading Local Artifacts to an S3 Bucket

    【讨论】:

      【解决方案2】:

      那么,这是否意味着我必须使用模板单独创建一个bucket,上传jar文件,然后使用另一个模板创建一个lambda函数?

      是和不是。

      通常当您创建一个存储桶时,它会是空的。你不能用普通的 CloudFormation 填充它。通常你必须manually(例如使用AWS CLI、SDK或使用控制台)上传jar文件。

      要获得更多高级解决方案以将所有内容保存在 CloudFormation 中,您必须考虑在 CloudFormation 中创建自己的 Custom Resources,这会在 CloudFormation 中为您上传 jar 文件。为此,您的jar 需要在线可用,以便可以将其下载到您的存储桶中。

      因此,如果您刚开始使用 CloudFormation,那么一开始创建自定义资源可能会很困难。

      【讨论】:

        猜你喜欢
        • 2021-08-20
        • 1970-01-01
        • 2017-04-24
        • 2019-08-26
        • 2019-08-21
        • 2017-03-01
        • 2017-11-03
        • 2019-01-20
        • 2016-09-30
        相关资源
        最近更新 更多