Вы не можете «включать» существующие ресурсы в новые стеки CloudFormation.Если вы перемещаете ресурсы во вложенный стек и добавляете вложенный стек в свой корневой шаблон, он сначала попытается создать новые ресурсы во вложенном стеке, а затем удалить старые ресурсы в корневом стеке как часть процесса очистки.Таким образом, если новые ресурсы имеют одинаковые имена (и повторяющиеся имена не допускаются), обновление не будет выполнено.
Решение этого состоит в том, чтобы развернуть стек в два этапа, сначала удалив ресурсы из корневого стека, а затем добавив их во вложенный стек.Это приведет к тому, что эти ресурсы будут отсутствовать в вашей среде в течение короткого времени, но если вы сохраните малые миграции, это займет всего несколько минут.
Ресурсы, содержащие состояние (например, DynamoDB, KMS, S3,и т. д.) гораздо сложнее выполнить миграцию таким образом, поскольку данные, очевидно, теряются при их удалении.Вам либо нужно выполнить полный процесс миграции, создать новый ресурс с другим именем во вложенном стеке, перенастроить данные, обновить приложение для использования нового ресурса и, наконец, удалить старый ресурс, либо принять, что это, вероятно, слишкоммного работы для внутреннего рефакторинга и оставить эти ресурсы в корневом шаблоне.