#amazon-web-services #aws-cdk #aws-code-deploy #aws-codebuild
#amazon-веб-сервисы #aws-cdk #aws-code-deploy #aws-codebuild
Вопрос:
У меня есть 2 созданных мною стека cdk, которые я использую для развертывания моей лямбда-функции. Одним из стеков является стек CodePipeline, который запускается при фиксации на Github, создает тесты и развертывает с помощью «CloudFormationDeployAction» в CodeDeploy. Поскольку я развертываю свой lambda через CodePipelines, я не хочу, чтобы он развертывался через терминал.
Но на терминале, когда я выполняю «cdk diff» или «cdk deploy *» для остальной части моего стека, cdk попытается разделить оба стека и вывести потенциальные изменения с помощью стека лямбда, даже если он уже развернут. И выполнение «cdk deploy *» приведет к тому, что cdk попытается развернуть и завершится неудачей (из-за отсутствия параметров, которые предоставляются через CodePipelines).
Есть ли способ заставить команды терминала игнорировать этот лямбдастак?
Комментарии:
1. Если у вас разные стеки, скажем, один для создания вашего CI / CD (CodeBuild и т. Д.) И один для создания вашего хостинга (инициализация lambda), вы должны иметь возможность запускать
cdk deploy
без развертывания кода. Кроме того, вы можете указать, какой стек вы хотите обновить, с помощью параметра командной строки:cdk deploy BuildStack
2. Я развертываю с определенными стеками с тех пор, как представил LambdaStack, который зависит от параметров, переданных из CodeBuild. Но каждый раз, когда я вношу изменения в другой стек и хочу проверить свои изменения с помощью «cdk diff», LambdaStack также печатает свои ресурсы и загромождает мой терминал.
Ответ №1:
Способ, который я использую для достижения аналогичного результата, заключается в следующем:
- В package.json я добавил в scripts
"cdk-diff": "tsc amp;amp; cdk diff YourStackYouWantToDiff"
- Я запускаю
npm run cdk-diff
Это будет выполняться только cdk diff
для указанных вами стеков, здесь YourStackYouWantToDiff .
В случае объявленных зависимостей между стеками, таких как aStack.addDependency(bStack)
, cdk diff
выполняется как в aStack, так и в bStack.