AWS порядок размещения стека cdk - PullRequest
1 голос
/ 22 января 2020

Я ищу способ указать порядок размещения моих стеков в моем проекте. Я знаю, что могу добавить зависимости, однако эти стеки не зависят друг от друга, и я мог бы захотеть удалить некоторые из них позже.

У меня есть структура служб, которые необходимы глобально для каждого другого стека (например, выстр). Они развертываются с самого начала.

  • Сеть приложений
  • 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.

1 Ответ

0 голосов
/ 16 февраля 2020

Вы можете просто вызвать cdk deploy [stack_name] несколько раз, чтобы сначала развернуть «необходимые» стеки (например, тот, который развертывает компоненты RDS или Networking) и, наконец, вызвать cdk deploy *, чтобы подготовить все оставшиеся стеки.

...