這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將部署 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 範本的路徑。提供此選項以指定本機範本。
必要:有條件限制。如果從本機 AWS CloudFormation 範本遷移,則為必要。
--from-scan
STRING
-
從 AWS 環境遷移部署的資源時,請使用此選項指定是否應啟動新的掃描, AWS CDK CLI還是應該使用上次成功的掃描。
必要:有條件限制。從部署 AWS 的資源遷移時為必要。
接受的值:
most-recent
、new
--from-stack
BOOLEAN
-
提供此選項從部署的 AWS CloudFormation 堆疊遷移。使用
--stack-name
指定部署堆疊的名稱 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 區域 要從中擷取 AWS CloudFormation 堆疊範本的 。
必要:否
預設: AWS CDK CLI 從預設來源取得 AWS 區域 資訊。
範例
從 CloudFormation 堆疊遷移的簡單範例
使用 從特定 AWS 環境中部署的 CloudFormation 堆疊遷移--from-stack
。提供 --stack-name
以命名新的 CDK 堆疊。以下是遷移myCloudFormationStack
至使用 的新 CDK 應用程式的範例TypeScript:
$
cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
從本機 CloudFormation 範本遷移的簡單範例
使用 從本機 JSON 或 YAML CloudFormation 範本遷移--from-path
。提供 --stack-name
以命名新的 CDK 堆疊。以下是在 中建立新的 CDK 應用程式的範例TypeScript,其中包含來自本機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 資源TypeScript的新myCloudFormationStack
堆疊在 中建立新的 CDK 應用程式的範例:
$
cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"