繁体   English   中英

cdk diff 注释实际上是否从 AWS 读取以与 cdk.out 中生成的文件进行比较?

[英]Does cdk diff comment actually read from AWS to compare with file generated in cdk.out?

我已经阅读了 CDK diff Compares the specified stack and its dependencies with the deployed stacks or a local CloudFormation templateAWS 文档,我可以看到我的本地 CFN 模板是在 cdk.out 文件夹下生成的,但是它的“已部署堆栈”在哪里比较以显示差异? 它实际上是从云中读取以获取它还是在某处有最新部署的 CFN 的本地副本?

如果它从云中读取数据来做差异,是否意味着如果我通过 aws 控制台手动更改任何内容,那么每次差异都会不同?

谢谢

根据命令文档cdk diff可以将您的 cdk.out 与实际的 CloudFormation 堆栈或与本地存储的另一个模板进行比较。

它实际上是从云中读取以获取它还是在某处有最新部署的 CFN 的本地副本?

如果您针对实际的 CloudFormation 堆栈运行cdk diff ,则 yes 命令将从云 (AWS CloudFormation) 中获取模板并比较两个模板。

如果您正在针对本地存储的模板运行cdk diff (例如,如果您对之前的 cdk.out 结果进行了备份),那么它不会从云端获取任何内容,只会进行本地比较。

如果它从云中读取数据来做差异,是否意味着如果我通过 aws 控制台手动更改任何内容,那么每次差异都会不同?

取决于您所说的手动更改是什么意思。 如果您对 CloudFormation 模板进行手动更改,则cdk diff将看到并相应地调整差异。 但是,如果您手动更改实际的 AWS 资源(例如:S3 存储桶),那么cdk diff将看不到它,因为您的实际 CloudFormation 模板不会更改。 要查找 CloudFormation 模板与实际 AWS 资源之间的差异,您可以使用CloudFormation 漂移检测功能

本地模板 <-- cdk diff --> ☁️ 部署模板 <-- 漂移--> ☁️ AWS 资源

cdk diff比较两个模板。 默认情况下,它将您本地合成的模板与 CloudFormation 中当前部署的云端模板进行比较。 您可以通过传递--template标志来比较两个本地模板。

它实际上是从云中读取的吗?

是的。 当您运行cdk diff时,CDK CLI 调用 CloudFormation DescribeStacks API 来检索云端模板。

如果我通过 aws 控制台手动更改任何内容,那么每次差异都会不同?

cdk diff比较两个模板。 如果通过控制台或 API 对堆栈的资源进行更改,则预期配置(部署的模板)和实际配置(实际存在的资源)之间可能会出现差异。 这些差异称为漂移 CloudFormation 可以使用DescribeStackResourceDrifts API 检测其中的一些偏差。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM