这是 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" }
有效值:
bar
、events
默认值:
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/*" } }