View a markdown version of this page

cdk orphan - AWS クラウド開発キット (AWS CDK) v2

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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

cdk orphan

重要

cdk orphan コマンドはプレビューリリースであり、変更される可能性があります。

このコマンドを使用するときは、--unstable=orphan オプションを指定する必要があります。

1 つ以上のリソースを削除せずに AWS CloudFormation スタックから安全にデタッチします。これは、ダウンタイムやデータ損失なしで、あるコンストラクトタイプから別のコンストラクトタイプにリソースを移行する必要がある場合に便利です (DynamoDB Tableを に移行するなどTableV2)。

CDK コードでコンストラクトタイプを変更すると、CloudFormation はこれをリソース置換として解釈し、既存のリソースを削除して新しいリソースを作成します。データベースやストレージなどのステートフルリソースの場合、これによりデータが失われます。cdk orphan コマンドは、最初にスタックからリソースをデタッチしてこれを解決するため、 を使用して新しいコンストラクトタイプで再インポートできますcdk import

cdk orphan を使用すると、次のことが可能になります。

  • コンストラクトタイプを変更する前に、スタックからステートフルリソースをデタッチします。

  • データ損失なしでコンストラクトバージョン間 (DynamoDB などTableV2) を移行Tableします。

  • 物理リソースを置き換えることなく、コンストラクトをバッキングする CloudFormation リソースタイプを変更します。

孤立コマンドは、3 つの CloudFormation デプロイを実行します。

  1. リファレンスの解決: 孤立したリソースへのクロスリソースリファレンス (RefFn::GetAttFn::Sub) を解決し、孤立したリソースが削除された後も、それらに依存するスタック内の他のリソースが引き続き機能するようにします。

  2. デカップリング: すべてのクロスリソース参照を解決されたリテラル値に置き換え、 DeletionPolicyを に設定しRetainDependsOnエントリを削除して、スタックの残りの部分からリソースを分離します。

  3. 削除: CloudFormation テンプレートからリソースを削除します。物理リソースは AWS アカウント内に引き続き存在します。

孤立したら、CDK コードを更新して新しいコンストラクトタイプを使用し、cdk インポートを使用してリソースを管理に戻します。

リソースを孤立させ、新しいコンストラクトタイプで再インポートするには
  1. スタックをデプロイし、リソースが存在することを確認します。

  2. リソースのコンストラクトパスcdk orphanを使用して を実行します。

    $ cdk orphan MyStack/MyTable --unstable=orphan
  3. コマンドはリソースマッピングを出力します。これをインポートステップに保存します。

  4. 新しいコンストラクトタイプを使用するように CDK コードを更新します (例: Tableを に変更)TableV2

  5. 孤立出力からリソースマッピングcdk importを使用して を実行します。

    $ cdk import MyStack --resource-mapping-inline '{"MyTable":{"TableName":"my-table"}}'
  6. インポートが完了すると、 はドリフトcdk importを検出し、デプロイするよう求めます。スタックを調整するプロンプトを受け入れます。

この機能には現在、以下の制限があります。

  • すべてのコンストラクトパスは、同じスタックを参照する必要があります。1 つのコマンドで複数のスタック間でリソースを孤立させることはサポートされていません。

  • ワイルドカードパターンはサポートされていません。パスは正確なプレフィックスとして一致します。

  • このコマンドには、デプロイロールに必要な IAM アクセス許可を含むブートストラップテンプレートのバージョン 32 が必要です。

使用方法

$ cdk orphan <PATHS> <options>

引数

パス

孤立する 1 つ以上のコンストラクトパス。形式は ですStackName/ConstructPath。例えば、MyStack/MyTable。複数のパスを指定して、1 つのコマンドで複数のリソースを孤立させることができます。

すべてのパスは同じスタックを参照する必要があります。

タイプ: 文字列

必須: はい

オプション

すべての CDK CLI コマンドで動作するグローバルオプションのリストについては、「グローバルオプション」を参照してください。

--help, -h <BOOLEAN>

cdk orphan コマンドのコマンドリファレンス情報を表示します。

1 つのリソースを孤立させる

$ cdk orphan MyStack/MyTable --unstable=orphan

複数のリソースを孤立させる

$ cdk orphan MyStack/MyTable MyStack/MyBucket --unstable=orphan

確認プロンプトをスキップする

$ cdk orphan MyStack/MyTable --unstable=orphan --yes