

這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護，並於 2023 年 6 月 1 日結束支援。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `cdk migrate`
<a name="ref-cli-cdk-migrate"></a>

將部署 AWS 的資源、 AWS CloudFormation 堆疊和 CloudFormation 範本遷移至新的 AWS CDK 專案。

此命令會建立新的 CDK 應用程式，其中包含以您使用 提供的值命名的單一堆疊`--stack-name`。您可以使用 `--from-scan`、 `--from-stack`或 來設定遷移來源`--from-path`。

如需使用 的詳細資訊`cdk migrate`，請參閱[將現有資源和 AWS CloudFormation 範本遷移至 AWS CDK](migrate.md)。

**注意**  
`cdk migrate` 命令是實驗性的，未來可能會有重大變更。

## 用量
<a name="ref-cli-cdk-migrate-usage"></a>

```
$ cdk migrate <options>
```

## 選項
<a name="ref-cli-cdk-migrate-options"></a>

如需適用於所有 CDK CLI 命令的全域選項清單，請參閱[全域選項](ref-cli-cmd.md#ref-cli-cmd-options)。

### 必要選項
<a name="ref-cli-cdk-migrate-options-required"></a><a name="ref-cli-cdk-migrate-options-stack-name"></a>

 `--stack-name <STRING>`   
遷移後將在 CDK 應用程式中建立的 AWS CloudFormation 堆疊名稱。  
 *必要*：是

### 條件式選項
<a name="ref-cli-cdk-migrate-options-conditional"></a><a name="ref-cli-cdk-migrate-options-from-path"></a>

 `--from-path <PATH>`   
要遷移之 AWS CloudFormation 範本的路徑。提供此選項以指定本機範本。  
 *必要*：有條件限制。如果從 local AWS CloudFormation 範本遷移，則為必要。<a name="ref-cli-cdk-migrate-options-from-scan"></a>

 `--from-scan <STRING>`   
從 AWS 環境遷移已部署的資源時，請使用此選項來指定是否應啟動新的掃描，或 AWS CDK CLI 是否應使用上次成功的掃描。  
 *必要*：有條件限制。從部署 AWS 的資源遷移時需要。  
 *接受的值*：`most-recent`、 `new`<a name="ref-cli-cdk-migrate-options-from-stack"></a>

 `--from-stack <BOOLEAN>`   
提供此選項從部署的 AWS CloudFormation 堆疊遷移。使用 `--stack-name`指定 deployed AWS CloudFormation 堆疊的名稱。  
 *必要*：有條件限制。如果從部署的 AWS CloudFormation 堆疊遷移，則為必要。

### 選用選項
<a name="ref-cli-cdk-migrate-options-optional"></a><a name="ref-cli-cdk-migrate-options-account"></a>

 `--account <STRING>`   
要從中擷取 AWS CloudFormation 堆疊範本的帳戶。  
 *必要*：否  
 *預設*： AWS CDK CLI 會從預設來源取得帳戶資訊。<a name="ref-cli-cdk-migrate-options-compress"></a>

 `--compress <BOOLEAN>`   
提供此選項將產生的 CDK 專案壓縮為 `ZIP` 檔案。  
 *必要*：否<a name="ref-cli-cdk-migrate-options-filter"></a>

 `--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"`。  
 *必要*：否<a name="ref-cli-cdk-migrate-options-help"></a>

 `--help, -h <BOOLEAN>`   
顯示命令的`cdk migrate`命令參考資訊。<a name="ref-cli-cdk-migrate-options-language"></a>

 `--language <STRING>`   
用於遷移期間建立之 CDK 專案的程式設計語言。  
 *必要*：否  
 *有效值*：`typescript`、`python`、`java`、`csharp`、`go`。  
 *預設*：`typescript`<a name="ref-cli-cdk-migrate-options-output-path"></a>

 `--output-path <PATH>`   
已遷移 CDK 專案的輸出路徑。  
 *必要*：否  
 *預設*： AWS CDK CLI 預設將使用您目前的工作目錄。<a name="ref-cli-cdk-migrate-options-region"></a>

 `--region <STRING>`   
要從中擷取 AWS CloudFormation 堆疊範本 AWS 的區域。  
 *必要*：否  
 *預設*： AWS CDK CLI 會從預設來源取得 AWS 區域資訊。

## 範例
<a name="ref-cli-cdk-migrate-examples"></a>

### 從 CloudFormation 堆疊遷移的簡單範例
<a name="ref-cli-cdk-migrate-examples-1"></a>

使用 從特定 AWS 環境中部署的 CloudFormation 堆疊遷移`--from-stack`。提供 `--stack-name`以命名新的 CDK 堆疊。以下是遷移`myCloudFormationStack`至使用 TypeScript 的新 CDK 應用程式的範例：

```
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
```

### 從本機 CloudFormation 範本遷移的簡單範例
<a name="ref-cli-cdk-migrate-examples-2"></a>

使用 從本機 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 的資源遷移的簡單範例
<a name="ref-cli-cdk-migrate-examples-3"></a>

使用 從與 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"
```