Я ищу способ указать порядок размещения моих стеков в моем проекте. Я знаю, что могу добавить зависимости, однако эти стеки не зависят друг от друга, и я мог бы захотеть удалить некоторые из них позже.
У меня есть структура служб, которые необходимы глобально для каждого другого стека (например, выстр). Они развертываются с самого начала.
- Сеть приложений
- App-GlobalResources
Теперь я хочу добавить стеки для новых клиентов, эти стеки будут зависеть от 2 глобальных стеков и друг от друга, но не от стеков других клиентов.
Например,
- App-Customer-A-EC2 (зависит от Сеть приложений)
- App-Customer-A-Lambdas (зависит от App-Customer-A-EC2)
- App-Customer-A-Settings (зависит от App-GlobalResources, App- Customer-A-Lambdas)
и
- App-Customer-B-EC2 (зависит от сети приложений)
- App-Customer-B -Lambdas (зависит от App-Customer-B-EC2)
- App-Customer-B-Settings (зависит от App-GlobalResources, App-Customer-B-Lambdas)
Я хотел бы, чтобы все эти стеки были развернуты в этом порядке. Сначала глобальные стеки, затем все клиенты a, затем все клиенты b.
Однако вот что делает cdk:
- App-Networking
- App -GlobalResources
- App-Customer-A-EC2
- App-Customer-B-EC2
- App-Customer-A-Lambdas
- App-Customer -B-Lambdas
- App-Customer-A-Settings
- App-Customer-B-Settings
Это означает, что клиент A должен ждать до всех остальных клиентов ресурсы были сгенерированы прежде, чем он сможет использовать систему и так далее. Поскольку между стеками клиентов нет перекрестных зависимостей, их не нужно развертывать в том порядке, в котором это делает cdk.
Итак, какие у меня варианты здесь? Помимо добавления зависимостей? Сначала я думал, что это будет в алфавитном порядке по имени стека или, может быть, по пути cunstruct, но это не так.
Спасибо!
Редактировать: я просмотрел код приложения cdk и нашел код сортировки. Там в настоящее время нет пути в моем случае. Тип сортировки, используемый CDK, всегда приводит к наблюдаемой схеме.
Сейчас я работаю, добавляя зависимости. При удалении стеков, которые находятся «посередине» и имеют зависимости, я должен уничтожить их с помощью аргумента -e
.