Какова наилучшая практика AWS CloudFormation для управления рабочей нагрузкой, имеющей ресурсы более чем в одном регионе?
Допустим, у меня есть следующие требования:
Мне нужен дистрибутив CloudFront, который запускает функцию Lambda @ Edge.
Мне нужны другие ресурсы в моей рабочей нагрузке, которые находятся в eu-west-1, регионе, ближайшем к моим пользователям.
Мне нужна CodePipeline для развертывания ресурсов.
Мой первый подход - создать шаблон SAM со всем, что в нем есть, и создать CodePipeline, который развертывает его на eu-west-1. Однако это не получится, потому что функции Lambda должны находиться в us-east-1 из-за ограничения CloudFront / Lambda . Поэтому я вынужден разделить свой шаблон SAM на две части: одну для лямбда-функций в us-east-1 и одну для остальных в eu-west-1. Это приносит новые проблемы, такие как:
Я не могу ссылаться на ресурсы по регионам в SAM / CloudFormation.
Моя CodePipeline усложняется, потому что ему нужно создать / обновить два стека CloudFormation.
Я не верю, что StackSets - это решение, поскольку оно развертывает одни и те же стеки в нескольких регионах.
Пользовательские ресурсы в CloudFormation, использующие API-интерфейс AWS, будут работать, но это не соответствует цели CloudFormation.
Как вы справляетесь с такими требованиями?