AWS Cloudformation Fn :: GetAZ не работают после смены часового пояса - PullRequest
0 голосов
/ 05 ноября 2018

Я использую AWS Cloudformation для создания приложения, которое развертывает некоторые экземпляры внутри кластера с группой автоматического масштабирования. Я развернул его на us-east-1

Дело в том, что вчера мы перешли на Summertime, и мой сценарий перестал работать, из-за чего произошла очень странная ошибка, потому что я запустил тот же сценарий в пятницу, и он работал отлично.

После некоторой отладки я нашел виновника, и, похоже, это внутренняя функция Fn::GetAZs.

Я указывал свои зоны доступности и подсети для группы Autoscaling, и ошибка была:

Зоны доступности указанных подсетей и группы автоматического масштабирования не совпадают

После этого я изменил свой сценарий. Вместо следующего формата:

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

И это сработало, но, конечно, я не могу иметь такие жестко закодированные значения. Это привело меня к мысли, что после смены часового пояса он начал терпеть неудачу. Мое текущее местоположение - Белу-Оризонти - Бразилия

Кто-нибудь сталкивается с той же проблемой? Имеет ли это смысл ?

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Fn::GetAZs возвращает зоны доступности, в которых у вас есть подсети по умолчанию в вашем VPC по умолчанию. Может быть, вы удалили такие подсоединения.

У вас есть два варианта:

  • воссоздать VPC по умолчанию с подсетями по умолчанию;
  • полностью удалить VPC по умолчанию.

Sidenote: Fn::GetAZs работает в текущем регионе, если не указан, поэтому вам не нужно использовать

Fn::GetAZs:
    Ref: AWS::Region

Вы можете упростить это до:

Fn::GetAZs: ""
...