Можно развернуть приложение CDK в существующем стеке CloudFormation, хотя это будет очень трудно сделать для нетривиальных стеков, поскольку приложения CDK обычно требуют много ресурсов.
Команда cdk diff
будь твоим лучшим другом Вы можете назвать свой стек в приложении CDK, используя то же имя, что и существующий стек:
MyExistingStack(app, 'my-existing-stack')
Затем вы можете итеративно добавлять / удалять ресурсы и запускать cdk diff
, чтобы проверить ваш успех в соответствии с текущим развертыванием. CDK дополнительно создаст ресурсы метаданных, которые будут добавлены в стек в дополнение к существующим в настоящее время ресурсам.
Сопоставление имен ресурсов может быть затруднено. CDK автоматически присваивает имена многим ресурсам способом, который не будет соответствовать вашему существующему стеку. Следуя инструкциям CDK Escape Hatches , вы можете получить прямой доступ к ресурсам CFN более низкого уровня и изменить имя.
Если в Construct отсутствует функция или вы пытаетесь ее обойти проблема, вы можете изменить ресурс CFN, который инкапсулирован в Construct.
Все Constructs содержат в себе соответствующий ресурс CFN. Например, высокоуровневая конструкция Bucket оборачивает низкоуровневую конструкцию CfnBucket. Поскольку CfnBucket напрямую соответствует ресурсу AWS CloudFormation, он предоставляет все функции, доступные через AWS CloudFormation.
Базовый подход c для получения доступа к классу ресурсов CFN заключается в использовании конструкции .node.defaultChild (Python: default_child), приведите его к нужному типу (при необходимости) и измените его свойства.