Как правильно развернуть мультирегиональный стек CloudFormation, включающий глобальные ресурсы? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть шаблон стека облачной информации, который включает региональные ресурсы (лямбды, API, темы и т. Д.) И глобальные ресурсы (пользователь, политики, route53, облачный фронт, глобальные таблицы DynamodB и т. Д.) И хочу развернуть его в нескольких регионах.в той же учетной записи AWS.

Я не могу напрямую развернуть этот шаблон стека в нескольких регионах, поскольку глобальные ресурсы уже будут существовать после первого создания.

Я знаю, что могу разбить все на два отдельных стековых шаблона, но я бы предпочел избежать этого и оставить все в одном шаблоне одного стека.

Я видел, что, вероятно, могу использовать CF Условия + Параметры для переключения создания глобального ресурса только при первом создании, но это выглядит не очень хорошо ...

Мне было интересно, смогу ли я использовать какую-нибудь функцию CloudFormation, например StackSets, или что-то еще для достижениячто.

Есть идеи о том, как правильно сделать это?

1 Ответ

0 голосов
/ 05 декабря 2018

Решение в ваших руках.Я предлагаю вам сделать следующее:

  • Создать отдельный шаблон для глобальных ресурсов (да, я знаю, что вам это не нравится, но в моем опыте это работает хорошо)
  • Хранить ссылки на общие глобальные ресурсы в SSM с помощью AWS :: SSM :: Parameter
  • Развертывать региональные стеки и отменять ссылки на глобальные ресурсы (используя либо Параметры , например, AWS::SSM::Parameter::Value<String> или динамическая ссылка , например {{resolve:ssm:S3AccessControl:2}})

Вы можете использовать StackSets для развертывания в региональном стеке или создать параметризованный сценарий сборкикоторый развертывает региональные стеки по одному за раз (для выполнения локально или предпочтительно вашим сервером CI / CD).

...