這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cdk migrate
將部署 AWS 的資源、 AWS CloudFormation 堆疊和 CloudFormation 範本遷移至新的 AWS CDK 專案。
此命令會建立新的 CDK 應用程式,其中包含以您使用 提供的值命名的單一堆疊--stack-name
。您可以使用 --from-scan
、 --from-stack
或 來設定遷移來源--from-path
。
如需使用 的詳細資訊cdk migrate
,請參閱將現有資源和 AWS CloudFormation 範本遷移至 AWS CDK。
注意
cdk migrate
命令是實驗性的,未來可能會有重大變更。
用量
$ cdk migrate <options>
選項
如需適用於所有 CDK CLI 命令的全域選項清單,請參閱全域選項。
必要選項
-
--stack-name <STRING>
-
遷移後將在 CDK 應用程式中建立的 AWS CloudFormation 堆疊名稱。
必要:是
條件式選項
-
--from-path <PATH>
-
要遷移之 AWS CloudFormation 範本的路徑。提供此選項以指定本機範本。
必要:有條件限制。如果從 local AWS CloudFormation 範本遷移,則為必要。
-
--from-scan <STRING>
-
從 AWS 環境遷移已部署的資源時,請使用此選項來指定是否應啟動新的掃描,或 AWS CDK CLI 是否應使用上次成功的掃描。
必要:有條件限制。從部署 AWS 的資源遷移時需要。
接受的值:
most-recent
、new
-
--from-stack <BOOLEAN>
-
提供此選項從部署的 AWS CloudFormation 堆疊遷移。使用
--stack-name
指定 deployed AWS CloudFormation 堆疊的名稱。必要:有條件限制。如果從部署的 AWS CloudFormation 堆疊遷移,則為必要。
選用選項
-
--account <STRING>
-
要從中擷取 AWS CloudFormation 堆疊範本的帳戶。
必要:否
預設: AWS CDK CLI 會從預設來源取得帳戶資訊。
-
--compress <BOOLEAN>
-
提供此選項將產生的 CDK 專案壓縮為
ZIP
檔案。必要:否
-
--filter <ARRAY>
-
從 AWS 帳戶和 AWS 區域遷移部署的資源時使用 。此選項會指定篩選條件,以決定要遷移哪些部署的資源。
此選項接受索引鍵/值對的陣列,其中索引鍵代表篩選條件類型,而值代表要篩選的值。
以下是可接受的金鑰:
-
resource-identifier
– 資源的識別符。值可以是資源邏輯或實體 ID。例如resource-identifier="ClusterName"
。 -
resource-type-prefix
– AWS CloudFormation 資源類型字首。例如,指定resource-type-prefix="AWS::DynamoDB::"
來篩選所有 Amazon DynamoDB 資源。 -
tag-key
– 資源標籤的索引鍵。例如tag-key="myTagKey"
。 -
tag-value
– 資源標籤的值。例如tag-value="myTagValue"
。
為
AND
條件式邏輯提供多個鍵值對。下列範例會篩選任何以 標記為標籤myTagKey
索引鍵的 DynamoDB 資源:--filter resource-type-prefix="AWS::DynamoDB::", tag-key="myTagKey"
。在
OR
條件式邏輯的單一命令中多次提供--filter
選項。下列範例會篩選屬於 DynamoDB 資源或標記為標籤myTagKey
索引鍵的任何資源:--filter resource-type-prefix="AWS::DynamoDB::" --filter tag-key="myTagKey"
。必要:否
-
-
--help, -h <BOOLEAN>
-
顯示命令的
cdk migrate
命令參考資訊。
-
--language <STRING>
-
用於遷移期間建立之 CDK 專案的程式設計語言。
必要:否
有效值:
typescript
、python
、java
、csharp
、go
。預設:
typescript
-
--output-path <PATH>
-
已遷移 CDK 專案的輸出路徑。
必要:否
預設: AWS CDK CLI 預設將使用您目前的工作目錄。
-
--region <STRING>
-
要從中擷取 AWS CloudFormation 堆疊範本 AWS 的區域。
必要:否
預設: AWS CDK CLI 會從預設來源取得 AWS 區域資訊。
範例
從 CloudFormation 堆疊遷移的簡單範例
使用 從特定 AWS 環境中部署的 CloudFormation 堆疊遷移--from-stack
。提供 --stack-name
以命名新的 CDK 堆疊。以下是遷移myCloudFormationStack
至使用 TypeScript 的新 CDK 應用程式的範例:
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
從本機 CloudFormation 範本遷移的簡單範例
使用 從本機 JSON 或 YAML CloudFormation 範本遷移--from-path
。提供 --stack-name
以命名新的 CDK 堆疊。以下是在 TypeScript 中建立新的 CDK 應用程式的範例,其中包含來自本機template.json
檔案的myCloudFormationStack
堆疊:
$ cdk migrate --stack-name "myCloudFormationStack" --language typescript --from-path "./template.json"
從部署 AWS 的資源遷移的簡單範例
使用 從與 CloudFormation 堆疊沒有關聯的特定 AWS 環境遷移已部署 AWS 的資源--from-scan
。CDK CLI 會利用 IaC generator服務來掃描資源並產生範本。然後,CDK CLI 會參考範本來建立新的 CDK 應用程式。以下是使用包含遷移 AWS 資源的新myCloudFormationStack
堆疊在 TypeScript 中建立新的 CDK 應用程式的範例:
$ cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"