

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

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

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

使用 [AWS CloudFormation 資源匯入](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)將現有 AWS 資源匯入 CDK 堆疊。

使用此命令，您可以採用使用其他方法建立的現有資源，並使用 AWS CDK 開始管理這些資源。

考慮將資源移至 CDK 管理時，有時可以建立新的資源，例如使用 IAM 角色、Lambda 函數和事件規則。對於其他資源，例如 Amazon S3 儲存貯體和 DynamoDB 資料表等具狀態資源，建立新資源可能會對您的服務造成影響。您可以使用 `cdk import`匯入現有資源，將服務中斷降至最低。如需支援 AWS 的資源清單，請參閱《* AWS CloudFormation 使用者指南*》中的[資源類型支援](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)。

 **將現有資源匯入 CDK 堆疊**   

1. 執行 `cdk diff`以確保您的 CDK 堆疊沒有待處理的變更。執行 時`cdk import`，匯入操作中允許的唯一變更是新增要匯入的資源。

1. 為您要匯入堆疊的資源新增建構。例如，為 Amazon S3 儲存貯體新增下列項目：

   ```
   new s3.Bucket(this, 'ImportedS3Bucket', {});
   ```

   請勿新增任何其他變更。您也必須確保 確切建立資源目前狀態的模型。對於儲存貯體範例，請務必包含 AWS KMS 金鑰、生命週期政策，以及與儲存貯體相關的任何其他項目。否則，後續的更新操作可能無法如預期般執行。

1. 執行 `cdk import`。如果 CDK 應用程式中有多個堆疊，請傳遞特定堆疊名稱做為引數。

1. CDK CLI 會提示您傳入要匯入之資源的實際名稱。在您提供此資訊後，匯入將會開始。

1. 當 `cdk import`報告成功時，資源將由 CDK 管理。建構組態中的任何後續變更都會反映在資源上。

這項功能目前具有下列限制：
+ 無法將資源匯入巢狀堆疊。
+ 對於匯入的資源，不會檢查您指定的屬性是否正確且完整。在匯入後嘗試啟動偏離偵測操作。
+ 依賴其他資源的資源都必須以正確的順序一起匯入或個別匯入。否則，CloudFormation 部署將使用未解析的參考失敗。
+ 此命令使用部署角色登入資料，這是讀取加密預備儲存貯體的必要項目。這需要引導範本的第 12 版，其中包含部署角色所需的 IAM 許可。

## 用量
<a name="ref-cli-cmd-import-usage"></a>

```
$ cdk import <arguments> <options>
```

## 引數
<a name="ref-cli-cmd-import-args"></a><a name="ref-cli-cmd-import-args-stack-name"></a>

 **CDK 堆疊 ID**   
要匯入資源之應用程式中 CDK 堆疊的建構 ID。此引數可在單一命令中提供多次。  
 *類型：*字串  
 *必要*：否

## 選項
<a name="ref-cli-cmd-import-options"></a>

如需適用於所有 CDK CLI 命令的全域選項清單，請參閱[全域選項](ref-cli-cmd.md#ref-cli-cmd-options)。<a name="ref-cli-cmd-import-options-change-set-name"></a>

 `--change-set-name <STRING>`   
要建立的 CloudFormation 變更集名稱。<a name="ref-cli-cmd-import-options-execute"></a>

 `--execute <BOOLEAN>`   
指定是否執行變更集。  
 *預設值*：`true`<a name="ref-cli-cmd-import-options-force"></a>

 `--force, -f <BOOLEAN>`   
根據預設，如果範本差異包含更新或刪除，CDK CLI 會結束程序。指定 `true`覆寫此行為，並一律繼續匯入。<a name="ref-cli-cmd-import-options-help"></a>

 `--help, -h <BOOLEAN>`   
顯示命令的`cdk import`命令參考資訊。<a name="ref-cli-cmd-import-options-record-resource-mapping"></a>

 `--record-resource-mapping, -r <STRING>`   
使用此選項可產生現有實體資源與要匯入之 CDK 資源的映射。映射將寫入您提供的檔案路徑。不會執行實際匯入操作。<a name="ref-cli-cmd-import-options-resource-mapping"></a>

 `--resource-mapping, -m <STRING>`   
使用此選項可指定定義資源映射的檔案。CDK CLI 將使用此檔案將實體資源映射至資源以進行匯入，而不是以互動方式詢問您。  
此選項可以從指令碼執行。<a name="ref-cli-cmd-import-options-rollback"></a>

 `--rollback <BOOLEAN>`   
在失敗時將堆疊復原至穩定狀態。  
若要指定 `false`，您可以使用 `--no-rollback`或 `-R`。  
指定 `false`以更快速地反覆運算。包含資源替換的部署一律會失敗。  
 *預設值*：`true`<a name="ref-cli-cmd-import-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
要建立的 CDK Toolkit 堆疊名稱。  
根據預設， 會將名為 `cdk bootstrap` 的堆疊部署`CDKToolkit`到指定的 AWS 環境中。使用此選項為您的引導堆疊提供不同的名稱。  
CDK CLI 使用此值來驗證您的引導堆疊版本。