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



目前我正在使用@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分钟,这破坏了我的注意力。

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

// 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'

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

除了创建一个单独的应用程序,你还可以直接部署堆栈。要获取堆栈名称,请使用cdk ls。它将是<Pipeline Name>/<Stage Name>/<Stack name>

同样,您可以使用

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

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

我建议作为其他的答案,但是,保持你的管道堆栈和你的应用程序堆栈分开-你可以使用cdk- Pipeline自动更新你的堆栈(自突变),如果你愿意,但为了快速开发,让你的应用程序作为自己的堆栈是最好的。-它不仅更安全,你现在可以使用CDK手表让它自动部署更改,完全跳过管道。

最新更新