AWS Cloudformation Fn::GetAZ не работает после смены часового пояса

Я использую 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

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

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

Спасибо.


person Juan Rivillas    schedule 05.11.2018    source источник
comment
Вы направляетесь в Вирджинию или Сан-Паулу? Я не думаю, что ваше физическое местоположение имеет какое-либо значение, поскольку никакая обработка не выполняется на стороне клиента.   -  person tyron    schedule 05.11.2018
comment
Имейте в виду, что для VPC функция Fn::GetAZs возвращает только зоны доступности, имеющие подсеть по умолчанию (если только ни одна из зон доступности не имеет подсети по умолчанию, в этом случае все зоны доступности). возвращаются).   -  person jarmod    schedule 05.11.2018
comment
Я развертываю его на us-east-1   -  person Juan Rivillas    schedule 05.11.2018
comment
На первый взгляд кажется, что изменение времени случайно и не связано с проблемой. Конечно - возможно, но маловероятно. Вы уже видели этот вопрос? Это то же самое, с чем вы имеете дело?   -  person Matt Johnson-Pint    schedule 05.11.2018
comment
@jarmod спасибо, я развертывал дополнительную подсеть в качестве набора изменений, чтобы динамически выбирать новую зону доступности, и столкнулся с ошибкой. Удаление предыдущих элементов и повторное создание тоже столкнулись с той же ошибкой Template error: Fn::Select cannot select nonexistent value at index 1 ``` Fn::Select: - '1' - Fn::GetAZs: Ref: AWS::Region ```   -  person prasun    schedule 15.07.2021


Ответы (1)


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

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

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

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

Fn::GetAZs:
    Ref: AWS::Region

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

Fn::GetAZs: ""
person Rafał Wrzeszcz    schedule 08.11.2018