這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk refactor
重要
cdk refactor
命令處於預覽版本中,可能會有所變更。
使用此命令時,您必須提供 --unstable=refactor
選項。
在 AWS 雲端開發套件 (AWS CDK) 應用程式中重構程式碼時保留已部署的資源。
當您重新命名建構模組或將其移動到 CDK 程式碼中的堆疊時,CloudFormation 通常會將這些資源視為新資源,導致可能導致服務中斷或資料遺失的替換。cdk refactor
命令會以智慧方式偵測這些變更,並使用 CloudFormation 的重構 API 來保留您的資源,同時更新其邏輯 IDs。
cdk refactor
可讓您:
-
重新命名建構以更清楚說明程式碼基底,而不會造成資源替換。
-
在堆疊之間移動資源,以改善組織和分離問題。
-
重新組織建構階層 (例如在新的 L3 建構下將 AWS 資源分組),同時保留基礎雲端資源。
-
安全地升級或切換建構程式庫,包括第三方相依性,而不會在版本之間變更邏輯 IDs 時觸發資源替換。
此命令會分析您的變更、顯示將變更位置 (堆疊和邏輯 ID) 的資源清單,並處理更新 CloudFormation 資源的複雜程序,同時維護其身分和狀態。
執行時, 命令會比較您目前的程式碼與部署狀態,以自動運算映射。它會驗證您的 CDK 應用程式是否包含與部署狀態完全相同的一組資源,僅在其在建構樹狀結構中的位置中有所不同。如果命令偵測到任何資源新增、刪除或修改,重構操作將被拒絕,並顯示錯誤訊息。
映射運算之後,命令會顯示提議的變更,並在使用者確認後套用重構。如果偵測到模棱兩可的情況 (其中可能有多個有效映射),您可以提供具有明確映射的覆寫檔案來解決這些案例。
如需簡介,請參閱在重構 CDK 程式碼時保留已部署的資源。
使用方式
$ cdk refactor <arguments> <options>
引數
- CDK 堆疊 ID
-
要重構之應用程式中 CDK 堆疊的建構 ID。
您可以指定多個堆疊 IDs,將重構操作集中在這些堆疊上。如果資源正在堆疊之間移動,且未明確包含其中一個堆疊,Refactor 命令會自動在 操作中包含額外的堆疊。
如果您未提供任何堆疊 IDs,應用程式中的所有堆疊都會考慮進行重構。
類型:字串
必要:否
選項
如需適用於所有 CDK CLI 命令的全域選項清單,請參閱全域選項。
-
--dry-run
-
將映射列印到主控台而不套用。
此選項有助於在實際執行重構之前驗證變更,特別是在使用複雜應用程式時。它確切顯示將要進行哪些變更,而不會修改任何資源。
-
--force
-
繼續重構,而不提示使用者進行確認。
當您對變更有信心時,這在互動式環境中非常有用。在非互動式環境中,例如 CI/CD 管道,CDK CLI 會自動繼續而不提示,因此不需要此選項。
-
--help, -h <BOOLEAN>
-
顯示命令的
cdk refactor
命令參考資訊。
-
--override-file <FILE>
-
當 CDK CLI 無法判斷資源的重構解析時,提供覆寫。此檔案包含 JSON 格式的資源映射。以下是範例:
{ "environments": [ { "account": "123456789012", "region": "us-east-2", "resources": { "StackA.OldName": "StackB.NewName", "StackC.Foo": "StackC.Bar" } } ] }
-
--revert <FILE>
-
還原先前的重構。您必須提供具有資源映射的覆寫檔案。
這不會完全復原先前的重構操作。若要完全還原重構,您需要將應用程式復原至先前的狀態,然後再次執行重構程序。