这是 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> -
并行部署和热交换多个堆栈,同时考虑堆栈间的依赖项。使用此选项可以加快部署速度。您仍必须 AWS 考虑 CloudFormation 和其他账户费率限制。
提供一个数字来指定要执行的最大同时部署数(依赖项允许)。
默认值:
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会尝试执行 hotswap 部署并忽略需要部署的更改。 CloudFormation 如果热交换 CloudFormation 部署--hotswap-fallback不成功,则提供回退并执行完整部署。
-
--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 堆栈的名称。
默认情况下,
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.json 文件,在部署之前使用 Java 构建 CDK 项目
{ "app": "mvn -e -q exec:java", "build": "mvn package", "watch": { "include": "src/main/**", "exclude": "target/*" } }