【问题标题】:Deploy 2 dependent cloudformation stack parts in 2 regions在 2 个区域部署 2 个依赖的 cloudformation 堆栈部分
【发布时间】:2020-03-30 06:35:34
【问题描述】:

我想在 2 个不同的区域(us-east-1、eu-west-1)部署 2 个 cloudformation 堆栈部分。

一部分创建 vpc 和 x 资源 - 我想部署到 us-east-1。

第二部分创建依赖于 x.Outputs 的 y 资源 - 我想部署到 eu-west-1。

我不能简单地在 eu-west-1 区域运行堆栈(它只会创建第一部分)

有什么办法吗?

【问题讨论】:

  • CFN 是区域服务。一个堆栈不能引用其他区域的堆栈创建的资源。
  • 如果您以编程方式部署堆栈,您可以部署第一个堆栈,获取其输出,并将输出作为参数传递给您在不同区域启动的第二个堆栈。
  • 如何跨区域使用输出?

标签: amazon-cloudformation


【解决方案1】:

当您以编程方式部署堆栈时,例如使用 CLI 和 bash,您可以执行以下操作(cli 示例):

  1. 使用 [deploy] 命令在第一个区域部署您的堆栈。 CLI 有--region 参数来指定操作的区域。

  2. 使用基本循环,您可以等待创建堆栈。 describe-stacks 提供堆栈创建的状态。

  3. 一旦状态为 CREATE_COMPLETE,您再调用一次 describe-stacks 以获取它的输出。

  4. 您从堆栈中获取输出,并将第二个堆栈部署到您想要的区域。 deploy 命令有--parameter-overrides,您可以指定第二个堆栈的输入参数。这些输入将来自您从第一个堆栈获得的输出。

您可以使用 SDK 做类似的事情,例如python中的boto3。

【讨论】:

  • 我可以使用 cloudformation 吗?从另一个区域的输出中获取参数?
猜你喜欢
  • 2018-07-31
  • 1970-01-01
  • 2017-03-14
  • 2018-10-01
  • 2013-08-25
  • 2021-09-06
  • 2019-02-07
  • 2019-05-19
  • 2021-05-27
相关资源
最近更新 更多