【问题标题】:I'd like to create CloudFormation stack with resources in multiple regions. Is this possible?我想用多个区域的资源创建 CloudFormation 堆栈。这可能吗?
【发布时间】:2015-04-16 13:35:52
【问题描述】:

例如,是否可以创建一个 Amazon CloudFormation 堆栈模板来实例化 ap-southeast-1 中的 AWS::EC2::Instanceus-west-2 中的另一个 AWS::EC2::Instance

我怀疑不是,但我还没有找到明确的“是/否”说法,即堆栈不能拥有跨越多个区域的资源。

【问题讨论】:

    标签: amazon-cloudformation


    【解决方案1】:

    接受的答案已过期。现在可以使用CloudFormation StackSets 跨账户和区域创建堆栈。

    【讨论】:

    • 你能在你的回复中提供一个简单的样本吗?
    • 我唯一遇到的是这个问题 (github.com/aws/aws-sam-cli/issues/2249),对于具有依赖关系的相当复杂的模板需要执行大量额外操作
    • 唯一的问题是:你不能在主模板中使用stackset模板的输出
    【解决方案2】:

    一个很好的问题;但我认为您无法创建分布在多个区域的资源。

    CloudFormation 的端点 URL 是基于区域的,AFAIK 没有地方是否可以指定区域特定(差异区域)信息。

    从今天开始,您可以通过利用映射部分和get::region 函数以使其区域独立的方式编写 CloudFormation 模板;但是使模板同时分布在多个区域是不可能的;但可以预期。

    【讨论】:

    【解决方案3】:

    您现在最好的选择是使用调用 Lambda 函数的 Cloudformation 自定义资源来创建其他区域中的资源。当您运行 CFN 模板时,它将调用 Lambda 函数,您将在其中创建代码(Python、Node.js 或 Java),利用 AWS 开发工具包创建您需要的资源。 CFN 自定义资源允许您将参数传递给函数并从中获取“输出”,因此从 CFN 的角度来看,您可以像对待任何其他资源一样对待它。

    这是来自 AWS 文档的演练示例:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html

    【讨论】:

    • 难道不需要将 Lambda 部署在调用者可以从中调用模板的每个区域中吗?
    【解决方案4】:

    您可以创建一个 lambda 函数来调用以在另一个区域中创建资源,甚至可以让您的 lambda 函数调用另一个区域中的另一个堆栈。

    为了让您的生活更轻松,在这种情况下,您可以使用 lambda cli2cloudformation (https://github.com/lucioveloso/cli2cloudformation)。

    使用它,您可以在 lambda 中执行 CLI 命令,通过这种方式,您可以在命令中指定 --region。

    这也很有趣,因为您可以在创建、更新和删除堆栈时设置命令。

      "myCustomResource": {
        "Type": "Custom::LocationConstraint",
        "Properties": {
          "ServiceToken": "arn:aws:lambda:eu-west-1:432811670411:function:cli2cfn_proxy2",
          "CliCommandCreate": "s3api get-bucket-location --bucket my-test-bucket --region eu-west-1",
          "CliCommandUpdate": "",
          "CliCommandDelete": ""
        }
      },
    

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2018-02-20
      • 1970-01-01
      • 2021-04-22
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2018-10-27
      相关资源
      最近更新 更多