这是 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。
类型:字符串
必需:否
选项
有关适用于所有 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 将尝试执行热交换部署,如果不成功,将不会回退到完整的 CloudFormation 部署。检测到的任何无法通过热交换更新的更改都将被忽略。默认值:
true
--hotswap-fallback
BOOLEAN
-
默认情况下,
cdk watch
会尝试执行热交换部署,并会忽略需要部署 CloudFormation 的更改。如果热交换部署不成功,则提供--hotswap-fallback
以回退并执行完整的 CloudFormation 部署。 --logs
BOOLEAN
-
默认情况下,
cdk watch
会监控应用程序中的所有 CloudWatch 日志组,并将日志事件本地流式传输到stdout
。默认值:
true
--progress
STRING
-
配置 CDK CLI 显示部署进度的方式。
-
bar
:以进度条的形式显示堆栈部署事件,其中包含当前正在部署的资源的事件。 -
events
:提供完整的历史记录,包括所有 CloudFormation 事件。
您也可以在项目的
cdk.json
文件中或本地开发计算机上的~/.cdk.json
中配置此选项:{ "progress": "events" }
有效值:
bar
、events
默认值:
bar
-
--rollback
BOOLEAN
-
在部署期间,如果资源创建或更新失败,则部署将在 CDK CLI 返回之前回滚到最新的稳定状态。在此之前所做的所有更改都将被撤消。将删除已创建的资源,并且将回滚所做的更新。
使用
--no-rollback
或-R
停用此行为。如果资源创建或更新失败,CDK CLI 将保留在此之前所做的更改并返回。在快速迭代的开发环境中,这可能会有所帮助。注意
当为
false
时,引起资源替换的部署将始终失败。您只能将此值用于更新或创建新资源的部署。默认值:
true
--toolkit-stack-name
STRING
-
现有 CDK Toolkit 堆栈的名称。
默认情况下,
cdk bootstrap
会将名为CDKToolkit
的堆栈部署到指定的 AWS 环境中。使用此选项可为引导堆栈提供不同的名称。CDK CLI 使用此值来验证引导堆栈版本。
示例
监视逻辑 ID 为 DevelopmentStack 的 CDK 堆栈,以查看更改
$
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.json 文件,在部署之前使用 Java 构建 CDK 项目
{ "app": "mvn -e -q exec:java", "build": "mvn package", "watch": { "include": "src/main/**", "exclude": "target/*" } }