これは 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 デプロイを実行します。
-
リファレンスの解決: 孤立したリソースへのクロスリソースリファレンス (
Ref、Fn::GetAtt、Fn::Sub) を解決し、孤立したリソースが削除された後も、それらに依存するスタック内の他のリソースが引き続き機能するようにします。 -
デカップリング: すべてのクロスリソース参照を解決されたリテラル値に置き換え、
DeletionPolicyを に設定しRetain、DependsOnエントリを削除して、スタックの残りの部分からリソースを分離します。 -
削除: CloudFormation テンプレートからリソースを削除します。物理リソースは AWS アカウント内に引き続き存在します。
孤立したら、CDK コードを更新して新しいコンストラクトタイプを使用し、cdk インポートを使用してリソースを管理に戻します。
- リソースを孤立させ、新しいコンストラクトタイプで再インポートするには
-
-
スタックをデプロイし、リソースが存在することを確認します。
-
リソースのコンストラクトパス
cdk orphanを使用して を実行します。$ cdk orphan MyStack/MyTable --unstable=orphan -
コマンドはリソースマッピングを出力します。これをインポートステップに保存します。
-
新しいコンストラクトタイプを使用するように CDK コードを更新します (例:
Tableを に変更)TableV2。 -
孤立出力からリソースマッピング
cdk importを使用して を実行します。$ cdk import MyStack --resource-mapping-inline '{"MyTable":{"TableName":"my-table"}}' -
インポートが完了すると、 はドリフト
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