Вложенные шаблоны AWS Cloudformation - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь создать вложенную топологию из 4 существующих шаблонов.Эти шаблоны выполняют следующие действия:

1: развертывание политики и роли.2: развертывание экземпляра EC2.3: развертывает ELB.4: развертывает экземпляр RDS.

Все они «связаны» с помощью выходов.Все параметры также содержатся в них.Теперь я хочу создать пятый шаблон (мастер) и обработать остальные 4 шаблона как дочерние.

Однако я не слишком уверен насчет минимального кода, который мне нужен в мастер-шаблоне:

Параметры : они определены внутри ребенка, поэтому они мне здесь не нужны, не так ли? Ресурсы : укажите 4 дочерних шаблона, указав URL-адрес S3, где они хранятся. DependsOn предложение: мне это нужно, так как дочерние шаблоны должны быть развернуты в последовательном порядке.Выходы: не слишком уверен, что сюда включить, я оставлю выходы на ребенке и определю здесь только мастер?

Мастер, я думаю, должен быть маленьким, но не слишком уверен, что я что-то упустил.Другой вопрос, нужно ли мне что-либо менять в дочерних шаблонах?

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Несколько вопросов здесь, поэтому я расскажу, что я могу:)

Для основного или родительского шаблона я бы рекомендовал включить все Параметры, которые укладывает дочерний элементпонадобится.

Если вы хотите в будущем сделать какие-либо обновления для любых дочерних стеков, вы захотите инициировать это из родительского стека.

Согласно документам :

Некоторые операции стека, такие как обновления стека, должны инициироваться из корневого стека, а не выполняться непосредственно на самих вложенных стеках.

Таким образом, ваш родительский шаблон может иметь много параметров в зависимости от того, сколько параметров необходимо передать непосредственно дочерним шаблонам.

В зависимости от того, как дочерние стеки используют Output s от другихдочерние стеки, вам может не нужно использовать DependsOn для принудительного упорядочения, поскольку Cloudformation достаточно умен, чтобы выяснить неявные зависимости (см. документы , обсуждение DependsOn).Включать их, конечно, не помешает, но атрибут DependsOn не требуется для большинства ситуаций.

Вам нужно убедиться, что у дочерних стеков есть секция Output, чтобы другиедочерние стеки могут использовать их.Обратите особое внимание на возвращаемые значения для AWS :: CloudFormation :: Stack

0 голосов
/ 01 октября 2018

Если у вас много зависимых стеков, гораздо проще запустить все, например, из Ansible.Добавьте выходные данные в каждый шаблон CF, а затем просто напишите простую книгу воспроизведения, которая будет запускать ваши шаблоны в нужном порядке.Пожалуйста, посмотрите на https://docs.ansible.com/ansible/devel/modules/cloudformation_module.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...