选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

cdk diff

聚焦模式
cdk diff - AWS Cloud Development Kit (AWS CDK) v2

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

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

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

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

执行差异以查看 AWS CDK 堆栈之间的基础架构变化。

此命令通常用于比较本地 CDK 应用程序中堆栈的当前状态与已部署堆栈之间的差异。但是,您也可以将已部署的堆栈与任何本地 AWS CloudFormation 模板进行比较。

使用量

$ cdk diff <arguments> <options>

参数

CDK 堆栈 ID

应用程序中执行 diff 的 CDK 堆栈的构造 ID。

类型:字符串

必需:否

选项

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

--change-set BOOLEAN

指定是否创建更改集来分析资源替换。

什么时候true,CDK CLI 将创建一个 AWS CloudFormation 更改集以显示将对堆栈进行的确切更改。此输出包括是否更新或替换资源。CDK CLI 使用部署角色而不是查找角色来执行此操作。

何时false,通过比较模板来执行更快但不太准确的差异。 CloudFormation 检测到的任何需要资源替换的属性更改都将显示为资源替换,即使纯粹是表面更改,例如用硬编码的 ARN 替换资源引用。

默认值true

--context-lines NUMBER

任意 JSON diff 渲染中包含的上下文行数。

默认值3

--exclusively, -e BOOLEAN

仅对请求的堆栈执行 diff,不包括依赖项。

--fail BOOLEAN

如果检测到差异,则失败并退出,显示代码 1

--help, -h BOOLEAN

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

--processed BOOLEAN

指定是否与已处理 CloudFormation 变换的模板进行比较。

默认值false

--quiet, -q BOOLEAN

当未检测到任何更改时,请勿将 CDK 堆栈名称和默认 cdk diff 消息打印到 stdout

默认值false

--security-only BOOLEAN

仅在安全更改范围扩大时才执行 diff。

默认值false

--strict BOOLEAN

修改 cdk diff 行为,使其更加精确或严格。如果属实,CDK CLI 不会过滤掉AWS::CDK::Metadata资源或不可读的非 ASCII 字符。

默认值false

--template STRING

要与 CDK 堆栈进行比较的 CloudFormation 模板路径。

示例

与当前部署的名为的堆栈进行比较 MyStackName

CDK CLI 在差异输出中使用以下符号:

  • [+]— 标识在部署更改时将添加的代码或资源。

  • [-]— 标识在您部署更改后将被删除的代码或资源。

  • [~]— 标识在部署更改时将要修改的资源或属性。

以下示例显示了 Lambda 函数的局部更改差异:

$ cdk diff MyStackName start: Building asset-hash:account-Region success: Built asset-hash:account-Region start: Publishing asset-hash:account-Region success: Published asset-hash:account-Region Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Stack MyStackName Resources [~] AWS::Lambda::Function HelloWorldFunction resource-logical-ID └─ [~] Code └─ [~] .ZipFile: ├─ [-] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; └─ [+] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello from CDK!'), }; }; ✨ Number of stacks with differences: 1

将要修改的资源[~]指标并不总是意味着资源完全替换:

  • 某些资源属性(Code例如)将更新资源。

  • 某些资源属性(例如FunctionName)可能会导致资源完全替换。

与特定 CloudFormation 模板进行比较

$ cdk diff MyStackName --app='node bin/main.js' --template-path='./MyStackNameTemplate.yaml'

将本地堆栈与其部署的堆栈执行 diff。如果未检测到任何更改,请勿打印到 stdout

$ cdk diff MyStackName --app='node bin/main.js' --quiet

下一主题:

cdk docs

上一主题:

cdk destroy

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。