cdk watch - AWS Cloud Development Kit (AWS CDK) v2

这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

cdk watch

持续关注本地 AWS CDK 项目是否有变更以执行部署和热交换。

此命令与类似cdk deploy,不同之处在于它可以通过单个命令执行连续部署和热交换。

此命令是的快捷方式cdk deploy --watch

要结束会cdk watch话,请按下中断进程Ctrl+C

观察到的文件由cdk.json文件中的"watch"设置决定。它有两个子键,"include""exclude",接受单个字符串或字符串数组。每个条目都被解释为相对于cdk.json文件位置的路径。***都被接受。

如果您使用cdk init命令创建项目,则会在项目cdk.json文件cdk watch中配置以下默认行为:

  • "include"设置为"**/*",其中包括项目根目录中的所有文件和目录。

  • "exclude"是可选的,但默认情况下已忽略的文件和文件夹除外。它由以开头的文件和目录.、CDK输出目录和node_modules目录组成。

要配置的最低设置watch"watch": {}

如果您的CDK代码或应用程序代码需要在部署之前执行构建步骤cdk watch,请使用cdk.json文件中的"build"密钥。

注意

此命令被认为是实验性的,将来可能会有重大更改。

的相同限制cdk deploy --hotswap也适用于cdk watch。有关更多信息,请参阅 cdk deploy --hotswap

使用量

$ cdk watch <arguments> <options>

参数

CDK堆栈 ID

您的应用中要监视的CDK堆栈的构造 ID。

类型:字符串

必需:否

Options

查看适用于所有选项的全局选项列表 CDK CLI 命令,请参阅全球期权

--build-exclude, -E ARRAY

请勿使用给定 ID 重建资产。

可以在单个命令中多次指定此选项。

默认值[]

--change-set-name STRING

要创建的 CloudFormation 更改集的名称。

--concurrency NUMBER

并行部署和热交换多个堆栈,同时考虑堆栈间的依赖关系。使用此选项可以加快部署速度。您仍然必须考虑 CloudFormation 和其他 AWS 账户 速率限制。

提供一个数字以指定要执行的最大并发部署数(允许依赖关系)。

默认值1

--exclusively, -e BOOLEAN

仅部署请求的堆栈,不包括依赖关系。

--force, -f BOOLEAN

即使模板相同,也要始终部署堆栈。

默认值false

--help, -h BOOLEAN

显示命令的cdk watch命令参考信息。

--hotswap BOOLEAN

默认情况下,尽可能cdk watch使用热交换部署来更新您的资源。的 CDK CLI 将尝试执行 hotswap 部署,如果不成功,则不会回退到完全 CloudFormation 部署。检测到的任何无法通过 hotswap 更新的更改都将被忽略。

默认值true

--hotswap-fallback BOOLEAN

默认情况下,cdk watch会尝试执行 hotswap 部署并忽略需要部署的更改。 CloudFormation 如果 hotswap CloudFormation 部署不成功,则提供--hotswap-fallback回退并执行完整部署。

--logs BOOLEAN

默认情况下,cdk watch监视应用程序中的所有 CloudWatch 日志组,并将日志事件流式传输到本地stdout

默认值true

--progress STRING

配置如何 CDK CLI 显示部署进度。

  • bar— 将堆栈部署事件显示为进度条,以及当前正在部署的资源的事件。

  • events— 提供完整的历史记录,包括所有 CloudFormation 事件。

您也可以在项目cdk.json文件中或本地开发计算机~/.cdk.json上配置此选项:

{ "progress": "events" }

有效值barevents

默认值bar

--rollback BOOLEAN

在部署期间,如果资源创建或更新失败,则部署将回滚到之前的最新稳定状态 CDK CLI 返回。在此之前所做的所有更改都将被撤消。已创建的资源将被删除,所做的更新将被回滚。

使用--no-rollback或停-R用此行为。如果资源创建或更新失败,CDKCLI 将保留在此之前所做的更改并返回。在快速迭代的开发环境中,这可能会有所帮助。

注意

何时false,导致资源替换的部署将始终失败。此值只能用于更新或创建新资源的部署。

默认值true

--toolkit-stack-name STRING

现有CDK工具包堆栈的名称。

默认情况下,CDKToolkit将名为的堆栈cdk bootstrap部署到指定 AWS 环境中。使用此选项为您的引导堆栈提供不同的名称。

的 CDK CLI 使用此值来验证您的引导堆栈版本。

示例

观察带有逻辑 ID 的CDK堆栈 DevelopmentStack 是否有更改

$ cdk watch DevelopmentStack Detected change to 'lambda-code/index.js' (type: change). Triggering 'cdk deploy' DevelopmentStack: deploying... ✅ DevelopmentStack

配置 cdk.json 文件,以确定要包含哪些内容和不在监视更改范围之外的内容

{ "app": "mvn -e -q compile exec:java", "watch": { "include": "src/main/**", "exclude": "target/*" } }

使用生成CDK项目 Java 在部署之前通过配置 cdk.json 文件进行部署

{ "app": "mvn -e -q exec:java", "build": "mvn package", "watch": { "include": "src/main/**", "exclude": "target/*" } }