AWS-CDK Pipelines 从本地终端触发部署

问题描述 投票:0回答:4

目前我正在使用

@aws-cdk/pipelines
软件包来快速轻松地为我的服务设置 CI/CD。

但是在实验/开发阶段,我想使用业务逻辑组件手动调用我的堆栈

cdk deploy
,因此部署循环会快得多,因为我不需要管道自我突变步骤,而且我不想每次都将所有内容推送到存储库。

不幸的是我无法实现这一目标。尝试在存储库根文件夹中手动调用

npx cdk deploy
命令后,它只是部署包含管道资源的堆栈。

我也试图通过直接调用堆栈名称来实现这一点:

npx cdk deploy -c config=dev <full-stack-name>

失败并显示

No stacks match the name(s) [...]
消息。

这可能吗?我相信这是非常重要的用例,因为通过正确的 CI/CD 管道进行部署至少需要 2-3 分钟,而且它破坏了我的注意力。

amazon-web-services continuous-integration aws-cdk
4个回答
2
投票

作为创建单独应用程序的替代方法,您还可以直接部署堆栈。要获取堆栈名称,请使用

cdk ls
。将会是
<Pipeline Name>/<Stage Name>/<Stack name>

此外,您可以使用

手动部署整个阶段
cdk deploy "<Pipeline Name>/<Stage Name>"

0
投票

创建一个新的普通应用程序来处理独立的非管道部署场景:

// bin/dev-app.ts
const app = new cdk.App();
new MyBusinessLogicStack(app, 'DevStack', props)

告诉 CLI 使用显式

app 命令部署 
dev-app:

cdk deploy --app 'npx ts-node bin/dev-app.ts'

您现在有两个“应用程序”:一个用于部署管道,另一个用于部署独立的“业务逻辑堆栈”。


0
投票

如果您使用 Codestar 作为管道源,您可以将其指向您选择的存储库中的特定分支。然后只需将您的代码提交到所述分支,这将触发您的管道。

我确实建议作为其他答案,并将您的管道堆栈和应用程序堆栈分开 - 如果您愿意,您可以使用 cdk-pipelines 自动更新您的堆栈(自我变异),但为了快速开发,将您的应用程序作为其自己的堆栈是最好的。 - 不仅更安全,您现在还可以使用 cdk watch 来自动部署更改,完全跳过管道。


0
投票

CODEBUILD_BUILD_ID=1 npx cdk 合成器

© www.soinside.com 2019 - 2024. All rights reserved.