0

我正在使用 AWS Cloudformation 创建一个应用程序,该应用程序在具有 Autoscaling 组的集群内部署一些实例。我将其部署在us-east-1

问题是昨天我们改为 Summertime,我的脚本停止工作,给我一个非常奇怪的错误,因为我在星期五运行了相同的脚本并且它运行良好。

经过一番调试,我找到了罪魁祸首,它似乎是内在函数Fn::GetAZs

我正在为 Autoscaling 组指定我的可用区和子网,错误是:

指定子网的可用区与 Auto Scaling 组不匹配

之后我改变了我的剧本。而不是具有以下格式:

AvailabilityZones:
     - Fn::Select:
       - '0'
       - Fn::GetAZs:
           Ref: AWS::Region
     - Fn::Select:
       - '1'
       - Fn::GetAZs:
           Ref: AWS::Region
     - Fn::Select:
       - '2'
       - Fn::GetAZs:
           Ref: AWS::Region

我使用了这种格式

AvailabilityZones:
    - us-east-1a
    - us-east-1b
    - us-east-1c

它有效,但我当然不能有这样的硬编码值。这使我认为在时区更改后它开始失败。我目前的位置是贝洛奥里藏特 - 巴西

有没有人面临同样的问题?是否有意义 ?

谢谢。

4

1 回答 1

0

Fn::GetAZs返回您在默认 VPC 中具有默认子网的可用区。也许您删除了此类子连接。

你有两个选择:

  • 使用默认子网重新创建默认 VPC;
  • 完全删除默认 VPC。

旁注:Fn::GetAZs如果未指定,则在当前区域有效,因此您不需要使用

Fn::GetAZs:
    Ref: AWS::Region

您可以将其简化为:

Fn::GetAZs: ""
于 2018-11-08T16:30:22.393 回答