這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk drift
使用 AWS 雲端開發套件 (AWS CDK) 偵測您定義、管理和部署之資源的組態偏離。當堆疊的實際組態與其預期組態不同時,就會發生漂移,當資源在 AWS CloudFormation 外部修改時就會發生。
此命令會比較資源目前的狀態與預期的組態,以識別已修改的資源 (例如,透過 AWS 主控台或 AWS CLI)。這些修改可能會在您的基礎設施中造成非預期的行為。
在偏離偵測期間,CDK CLI 會輸出進度指標和結果,顯示:
-
偏離預期組態的資源。
-
具有漂移的資源總數。
-
指出堆疊中是否偵測到偏離的摘要。
重要
cdk drift
和 cdk diff
命令的運作方式不同:
-
cdk drift
會呼叫 CloudFormation 的偏離偵測操作,將 AWS ("reality") 中的資源實際狀態與 CloudFormation 中的預期組態進行比較。並非所有 AWS 資源都支援偏離偵測。如需支援的資源清單,請參閱《 AWS CloudFormation 使用者指南》中的資源類型支援。 -
cdk diff
會將從本機 CDK 程式碼合成的 CloudFormation 範本與已部署 CloudFormation 堆疊的範本進行比較。
當您需要驗證資源是否已在 CloudFormation 外部修改cdk drift
時 (例如,透過 AWS 主控台或 AWS CLI),請使用 。當您想要預覽本機程式碼變更在部署之前如何影響您的基礎設施cdk diff
時,請使用 。
用量
$ cdk drift <arguments> <options>
引數
- Stack name (堆疊名稱)
-
您要檢查漂移的堆疊名稱。堆疊先前必須部署到 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 管道自動偵測和回應基礎設施偏離。