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 watchcdk.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" }

有效值barevents

默认值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/*" } }