AWS-CDK 管道从本地终端触发部署
AWS-CDK Pipelines trigger deployment from local terminal
目前我正在使用 @aws-cdk/pipelines
包来快速轻松地为我的服务设置 CI/CD。
但是在 experimentation/development 阶段,我想手动调用 cdk deploy
为我的业务逻辑组件堆栈,这样部署循环会快很多,因为我不需要管道自突变步骤,而且我不想每次都将所有内容推送到存储库。
很遗憾,我无法做到这一点。尝试在存储库根文件夹中手动调用 npx cdk deploy
命令后,它只是部署包含管道资源的堆栈。
我也试图通过直接调用堆栈名称来实现这一点:
npx cdk deploy -c config=dev <full-stack-name>
它失败并显示 No stacks match the name(s) [...]
消息。
这可能吗?我认为这是非常重要的用例,因为通过适当的 CI/CD 管道进行部署至少需要 2-3 分钟,这会破坏我的注意力。
创建一个新的 plain vanilla app 来处理独立的 non-pipeline 部署方案:
// bin/dev-app.ts
const app = new cdk.App();
new MyBusinessLogicStack(app, 'DevStack', props)
告诉 CLI 使用显式 app command 部署 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 作为您的管道源,您可以将它指向您选择的存储库中的特定分支。然后只需将您的代码提交到所述分支,这将触发您的管道。
然而,我确实推荐其他答案,并将您的管道堆栈和您的应用程序堆栈分开 - 如果您愿意,您可以使用 cdk-pipelines 自动更新您的堆栈(自变异),但为了快速将您的应用程序作为自己的堆栈进行开发是最好的。 - 不仅更安全,您现在可以使用 cdk watch 自动部署更改,完全跳过管道。
目前我正在使用 @aws-cdk/pipelines
包来快速轻松地为我的服务设置 CI/CD。
但是在 experimentation/development 阶段,我想手动调用 cdk deploy
为我的业务逻辑组件堆栈,这样部署循环会快很多,因为我不需要管道自突变步骤,而且我不想每次都将所有内容推送到存储库。
很遗憾,我无法做到这一点。尝试在存储库根文件夹中手动调用 npx cdk deploy
命令后,它只是部署包含管道资源的堆栈。
我也试图通过直接调用堆栈名称来实现这一点:
npx cdk deploy -c config=dev <full-stack-name>
它失败并显示 No stacks match the name(s) [...]
消息。
这可能吗?我认为这是非常重要的用例,因为通过适当的 CI/CD 管道进行部署至少需要 2-3 分钟,这会破坏我的注意力。
创建一个新的 plain vanilla app 来处理独立的 non-pipeline 部署方案:
// bin/dev-app.ts
const app = new cdk.App();
new MyBusinessLogicStack(app, 'DevStack', props)
告诉 CLI 使用显式 app command 部署 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 作为您的管道源,您可以将它指向您选择的存储库中的特定分支。然后只需将您的代码提交到所述分支,这将触发您的管道。
然而,我确实推荐其他答案,并将您的管道堆栈和您的应用程序堆栈分开 - 如果您愿意,您可以使用 cdk-pipelines 自动更新您的堆栈(自变异),但为了快速将您的应用程序作为自己的堆栈进行开发是最好的。 - 不仅更安全,您现在可以使用 cdk watch 自动部署更改,完全跳过管道。