cdk drift - AWS Cloud Development Kit (AWS CDK) v2

これは AWS CDK v2 開発者ガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

cdk drift

AWS Cloud 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 スタックのテンプレートと比較します。

リソースが CloudFormation の外部で (例えば、AWS コンソールや AWS CLI を介して) 変更されたかどうかを確認する必要がある場合は、cdk drift を使用します。ローカルコードの変更がデプロイ前にインフラストラクチャにどのように影響するかをプレビューする場合は、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 パイプラインでインフラストラクチャのドリフトを自動的に検出して対応するのに役立ちます。