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選項。

安全地從 an AWS CloudFormation 堆疊分離一或多個資源,而不將其刪除。當您需要將資源從一種建構類型遷移至另一種建構類型 (例如,將 DynamoDB 遷移TableTableV2) 而不會發生停機時間或資料遺失時,這會很有用。

當您在 CDK 程式碼中變更建構類型時,CloudFormation 會將此解譯為資源取代,這會刪除現有資源並建立新的資源。對於資料庫和儲存體等具狀態的資源,這會導致資料遺失。cdk orphan 命令會先從堆疊分離資源來解決此問題,因此您可以使用 在新的建構類型下重新匯入cdk import

cdk orphan 可讓您:

  • 變更其建構類型之前,請先從堆疊分離具狀態的資源。

  • 在建構版本之間遷移 (例如,DynamoDB TableTableV2),而不會遺失資料。

  • 變更支援建構的 CloudFormation 資源類型,而不取代實體資源。

孤立命令會執行三個 CloudFormation 部署:

  1. 解決參考:解決對孤立資源的跨資源參考 (RefFn::GetAttFn::Sub),讓堆疊中依賴它們的其他資源在移除孤立資源後繼續運作。

  2. 解耦:將所有跨資源參考取代為解析的常值、DeletionPolicy設定為 Retain,並移除DependsOn項目以隔離資源與堆疊的其餘部分。

  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會偵測偏離並提示您部署。接受提示以協調堆疊。

這項功能目前具有下列限制:

  • 所有建構路徑都必須參考相同的堆疊。不支援在單一命令中跨多個堆疊孤立資源。

  • 不支援萬用字元模式。路徑會比對為確切的字首。

  • 此命令需要引導範本的第 32 版,其中包含部署角色所需的 IAM 許可。

Usage

$ cdk orphan <PATHS> <options>

引數

路徑

一或多個孤立的建構路徑,格式為 StackName/ConstructPath。例如 MyStack/MyTable。可在單一命令中提供多個路徑來孤立多個資源。

所有路徑都必須參考相同的堆疊。

類型:字串

必要:是

選項

如需適用於所有 CDK CLI 命令的全域選項清單,請參閱全域選項

--help, -h <BOOLEAN>

顯示命令的cdk orphan命令參考資訊。

範例

孤立單一資源

$ cdk orphan MyStack/MyTable --unstable=orphan

孤立多個資源

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

略過確認提示

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