Автоматизация развертывания шаблона Cloudformation - PullRequest
2 голосов
/ 19 мая 2019

В настоящее время я использую шаблоны Cloudformation для предоставления ресурсов в AWS.

В настоящее время, если мне нужно создать группы VPC и группы безопасности, сначала я создам VPC из шаблона, а затем снова запущу другой шаблон для группы безопасности, в который я вручную ввожу идентификатор VPC.

Теперь мне нужно автоматизировать этот ручной процесс в Cloudformation.Как я могу это сделать?Могу ли я использовать инструменты разработчика AWS или другие инструменты автоматизации?

Ответы [ 2 ]

2 голосов
/ 19 мая 2019

Краткий ответ

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

Как объясняется в ответе Nimo выше, для этого вам нужно будет использовать функцию Export в разделе Outputs для всех шаблонов для любых ресурсов, которые, как вы ожидаете, могут быть повторно использованы. И затем позже вы можете легко использовать Fn::ImportValue для использования ранее созданного ресурса, не зная фактического физического идентификатора ресурса. Это называется перекрестными ссылками.

Пояснение к части автоматизации

Похоже, вам нужна непрерывная интеграция и непрерывное развертывание (CICD) для вашей инфраструктуры, поэтому изменения в вашем коде будут автоматически / автоматически развернуты в AWS. Для этого вам нужно будет настроить конвейеры, и последующий - самый простой, но не единственный способ:

  1. Используйте Github / AWS codecommit и т. Д. Для хранения кода CloudFormation и установите его триггер на ветку, например ваша master ветка так любая изменения в нем вызовут конвейер, и он будет развертывать те, изменяется автоматически.

  2. Используйте для этой цели нативный сервис AWS CodePipeline. Это где вы можете определить полный конвейер с различными этапами, в то время как каждый этап может иметь много действий, каждый из которых создает стек. Все стеки могут использовать выходные данные из ранее созданных стеков, и некоторые вещи также могут быть переданы в параметры. Для этого вам нужно будет создать новый стек с AWS::CodePipeline::Pipeline в качестве ресурса.

  3. Используйте выходные данные также для ресурсов без функции экспорта для те ресурсы, которые, как вы думаете, вам понадобятся. Как например, вы может потребоваться конечная точка DNS балансировщика нагрузки, если она у вас есть.

Вот Эталонный конвейерный стек , который использует s3 в качестве источника для сохраненного кода.

0 голосов
/ 19 мая 2019

Вы действительно не дали достаточно информации. Если вы используете CICD, например, jenkins.

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

Так что вы можете иметь что-то вроде.

Outputs:
  VpcId:
    Value: !Ref VPC
    Export:
      Name: Unique-VpcId

и затем импортируйте его в другой стек, например

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