Краткий ответ
Вам необходимо следовать практике вывода ARN / имен любых ресурсов AWS, которые вы создаете, поэтому, если они понадобятся вам позже, вы можете легко сделать это с помощью простой ссылки, выполнив импорт в новый шаблон.
Как объясняется в ответе Nimo выше, для этого вам нужно будет использовать функцию Export
в разделе Outputs
для всех шаблонов для любых ресурсов, которые, как вы ожидаете, могут быть повторно использованы. И затем позже вы можете легко использовать Fn::ImportValue
для использования ранее созданного ресурса, не зная фактического физического идентификатора ресурса. Это называется перекрестными ссылками.
Пояснение к части автоматизации
Похоже, вам нужна непрерывная интеграция и непрерывное развертывание (CICD) для вашей инфраструктуры, поэтому изменения в вашем коде будут автоматически / автоматически развернуты в AWS. Для этого вам нужно будет настроить конвейеры, и последующий - самый простой, но не единственный способ:
Используйте Github / AWS codecommit и т. Д. Для хранения кода CloudFormation
и установите его триггер на ветку, например ваша master
ветка так любая
изменения в нем вызовут конвейер, и он будет развертывать те,
изменяется автоматически.
Используйте для этой цели нативный сервис AWS CodePipeline. Это
где вы можете определить полный конвейер с различными этапами, в то время как каждый этап может иметь много действий, каждый из которых создает стек. Все стеки могут использовать выходные данные из ранее созданных стеков, и некоторые вещи также могут быть переданы в параметры. Для этого вам нужно будет создать новый стек с AWS::CodePipeline::Pipeline
в качестве ресурса.
Используйте выходные данные также для ресурсов без функции экспорта для
те ресурсы, которые, как вы думаете, вам понадобятся. Как например, вы
может потребоваться конечная точка DNS балансировщика нагрузки, если она у вас есть.
Вот Эталонный конвейерный стек , который использует s3 в качестве источника для сохраненного кода.