【问题标题】:Cloudformation append to stackCloudformation 附加到堆栈
【发布时间】:2019-03-02 08:46:33
【问题描述】:

我有一个带有 lambda 和 api 网关资源的 AWS 堆栈。大约有 250 个资源,cloudformation 一次只允许上传 200 个,所以我将它分成 2 个模板。但是,当我像这样为每个堆栈运行部署命令时

aws cloudformation deploy --template-file template.yml --stack-name my-stack --region us-east-1 --capabilities CAPABILITY_IAM

aws cloudformation deploy --template-file template2.yml --stack-name my-stack --region us-east-1 --capabilities CAPABILITY_IAM

第二个命令删除第一个命令部署到my-stack 的内容。我想将template2.yml 中的资源附加到my-stack 并保留从template.yml 部署的内容。有没有办法做到这一点?我希望两个模板中的资源使用相同的 api 网关端点。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    从技术上讲,它们是 2 个堆栈,但您只提供了 1 个堆栈名称。所以后面的命令会覆盖基于template.yml部署的my-stack。

    更改您的第二个命令以使用不同的堆栈名称,例如 my-stack2

    【讨论】:

    • 不同堆栈中的资源仍然可以相互通信
    • API 网关资源正在由需要一个通用 http 端点的前端应用程序调用。如果它们是 2 个堆栈,它们可以具有相同的端点吗?
    • 如果您只想使用 API 网关端点的相同值,那么很容易,只需在您的第一个 cloudformation 和第二个堆栈中导出该值,然后导入该值。 docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…否则,您能否进一步详细说明您的cloudformation堆栈以及您要实现的目标?
    • 谢谢@York。我会试试的。我拥有的这两个模板只是一个反应应用程序的后端 API。所有方法在逻辑上都是单个服务的一部分,因此我只希望它们在 http 端点中都具有相同的域名,每个方法仅在域名后的路径上有所不同。
    • @gary69 没问题!看起来你只需要导出/导入。
    【解决方案2】:

    您可以将此规范部署到两个不同的堆栈(不同的堆栈名称)中,此外您可以将 api 网关规范从第一个堆栈引用到第二个堆栈,这是在同一个 api 网关中引用 lambda 函数的一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2019-03-23
      • 2021-06-27
      • 1970-01-01
      相关资源
      最近更新 更多