這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk orphan
重要
cdk orphan 命令處於預覽版本中,可能會有所變更。
使用此命令時,您必須提供 --unstable=orphan選項。
安全地從 an AWS CloudFormation 堆疊分離一或多個資源,而不將其刪除。當您需要將資源從一種建構類型遷移至另一種建構類型 (例如,將 DynamoDB 遷移Table至 TableV2) 而不會發生停機時間或資料遺失時,這會很有用。
當您在 CDK 程式碼中變更建構類型時,CloudFormation 會將此解譯為資源取代,這會刪除現有資源並建立新的資源。對於資料庫和儲存體等具狀態的資源,這會導致資料遺失。cdk orphan 命令會先從堆疊分離資源來解決此問題,因此您可以使用 在新的建構類型下重新匯入cdk import。
cdk orphan 可讓您:
-
變更其建構類型之前,請先從堆疊分離具狀態的資源。
-
在建構版本之間遷移 (例如,DynamoDB
Table到TableV2),而不會遺失資料。 -
變更支援建構的 CloudFormation 資源類型,而不取代實體資源。
孤立命令會執行三個 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會偵測偏離並提示您部署。接受提示以協調堆疊。
-
這項功能目前具有下列限制:
-
所有建構路徑都必須參考相同的堆疊。不支援在單一命令中跨多個堆疊孤立資源。
-
不支援萬用字元模式。路徑會比對為確切的字首。
-
此命令需要引導範本的第 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