这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
cdk drift
检测您使用 C AWS loud Development Kit (AWS CDK) 定义、管理和部署的资源的配置偏差。当堆栈的实际配置与其预期配置不同时,就会发生偏差,这种情况发生在堆栈之外修改资源时 AWS CloudFormation。
此命令通过将资源的当前状态与预期配置进行比较来识别已修改的资源(例如,通过 AWS 控制台或 AWS CLI)。这些修改可能会导致基础架构出现意外行为。
在偏差检测期间,CDK CLI 将输出进度指示器和结果,显示:
-
已偏离预期配置的资源。
-
有漂移的资源总数。
-
指示堆栈中是否检测到偏差的摘要。
重要
cdk drift
和cdk diff
命令的工作方式不同:
-
cdk drift
调用的 CloudFormation漂移检测操作,用于将 AWS (“现实”)中资源的实际状态与其预期配置进行比较 CloudFormation。并非所有 AWS 资源都支持偏差检测。有关支持的资源列表,请参阅《 AWS CloudFormation 用户指南》中的资源类型支持。 -
cdk diff
将从本地 CDK 代码中合成的 CloudFormation 模板与已部署 CloudFormation 堆栈的模板进行比较。
cdk drift
当您需要验证资源是否在外部进行了修改 CloudFormation (例如,通过 AWS 控制台或 AWS CLI)时使用。如果您想cdk diff
在部署之前预览本地代码更改将如何影响您的基础架构,请使用此选项。
使用量
$ cdk drift <arguments> <options>
参数
- 堆栈名称
-
要检查是否存在偏差的堆栈的名称。必须事先将堆栈部署 CloudFormation 到才能执行偏差检测。
类型:字符串
必需:否
如果未指定堆栈,则将对您的 CDK 应用程序中定义的所有堆栈执行偏移检测。
选项
有关适用于所有 CDK CLI 命令的全局选项列表,请参阅全局选项。
-
--fail <BOOLEAN>
-
如果检测到漂移,则返回退出代码 1。
默认值:
false
-
--help, -h <BOOLEAN>
-
显示
cdk drift
命令的命令参考信息。
示例
检查特定堆栈的偏差
$ cdk drift MyStackName
该命令将输出类似于以下结果:
Stack MyStackName Modified Resources [~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD └─ [~] /Description ├─ [-] My original hello world Lambda function └─ [+] My drifted hello world Lambda function 1 resource has drifted from their expected configuration ✨ Number of resources with drift: 1
删除资源时检查偏差
以下示例显示了修改和删除资源后的输出情况:
Stack MyStackName Modified Resources [~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD └─ [~] /Description ├─ [-] My original hello world Lambda function └─ [+] My drifted hello world Lambda function Deleted Resources [-] AWS::CloudWatch::Alarm MyAlarm MyCWAlarmABCD1234 2 resources have drifted from their expected configuration ✨ Number of resources with drift: 2
使用退出代码检查偏差
要让该命令在检测到漂移时返回非零的退出码,请执行以下操作:
$ cdk drift MyStackName --fail
这在 CI/CD 管道中非常有用,可以自动检测和响应基础设施偏差。