【问题标题】:CloudFormer-generated template failing when running in other regionCloudFormer 生成的模板在其他区域运行时失败
【发布时间】:2014-10-22 22:55:26
【问题描述】:

我在我的一个地区设置了一个 CloudFormer 实例。我为我的一个实例(包括 VPC、安全组……)生成了一个模板,然后我尝试通过确保将可用区切换到新区域(us-east-1a)在另一个区域中创建堆栈-> us-west-1a 等),但在尝试创建 EC2 实例时遇到以下错误: 图片 id '[ami-xxxxxxxx]' 不存在。

我需要先手动将图像复制到其他区域吗?有没有办法使用 cloudformer 生成的模板来做到这一点?模板如何确定此 AMI 的来源?

谢谢,

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    您必须将 AMI 复制到要使用它的每个区域。此功能在 AWS 控制台中可用。选择 AMI 并显示将其复制到另一个区域的选项。请参阅AWS provided instructions

    没有办法让模板发现某个区域中没有 AMI,然后将 ami 复制到所需区域。

    要指定哪些 AMI 与哪些区域一起使用,您应该指定一个映射(来自 AWS Cloudformation 示例模板):

    "Mappings" : {
    "AWSInstanceType2Arch" : {
      "m1.small"   : { "Arch" : "64" },
      "m1.medium"  : { "Arch" : "64" },
      "m1.large"   : { "Arch" : "64" },
      "m1.xlarge"  : { "Arch" : "64" },
      "m2.xlarge"  : { "Arch" : "64" },
      "m2.2xlarge" : { "Arch" : "64" },
      "m2.4xlarge" : { "Arch" : "64" },
      "c1.medium"  : { "Arch" : "64" },
      "c1.xlarge"  : { "Arch" : "64" }
    },
    "AWSRegionArch2AMI" : {
      "us-east-1"      : {"64" : "ami-7614ac1e"},
      "us-west-1"      : {"64" : "ami-2f43566a"},
      "us-west-2"      : {"64" : "ami-e5f7bbd5"},
      "eu-west-1"      : {"64" : "ami-32228e45"},
      "ap-southeast-1" : {"64" : "ami-c6634294"},
      "ap-southeast-2" : {"64" : "ami-995c31a3"},
      "ap-northeast-1" : {"64" : "ami-73d0e672"},
      "sa-east-1"      : {"64" : "ami-77a1156a"}
    }
    

    },

    映射部分通常位于参数部分之后。

    然后你引用你的 ami 如下:

    "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
                      { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] },
    

    【讨论】:

      猜你喜欢
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2012-04-07
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多