

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

# 手動將 AWS 資源匯入 CloudFormation 堆疊
<a name="import-resources-manually"></a>

透過資源匯入，您可以將現有 AWS 資源匯入新的或現有的 CloudFormation 堆疊。在匯入操作期間，您會建立一個變更集合，將您的現有資源匯入堆疊，或是從您現有的資源建立新堆疊。您可以在匯入期間提供以下資訊。
+ 描述整個堆疊的範本，包括原始堆疊資源和您正在匯入的資源。每個要匯入的資源都必須具備 [DeletionPolicy 屬性](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)。
+ 您要匯入的 CloudFormation 可用於映射範本中邏輯 ID 與現有資源的資源識別碼。

**注意**  
CloudFormation 只支援使用資源匯入進行一個層級的巢狀。這表示您無法將堆疊匯入子堆疊，或是匯入具有子系的堆疊。

**Topics**
+ [資源識別碼](#resource-import-identifiers-unique-ids)
+ [驗證](#resource-import-validation)
+ [狀態碼](#resource-import-status-codes)
+ [考量事項](#resource-import-considerations)
+ [其他資源](#resource-import-additional-resources)
+ [從現有資源建立堆疊](resource-import-new-stack.md)
+ [將現有資源匯入堆疊](resource-import-existing-stack.md)
+ [在堆疊之間移動資源](refactor-stacks.md)
+ [巢狀現有堆疊](resource-import-nested-stacks.md)

## 資源識別碼
<a name="resource-import-identifiers-unique-ids"></a>

您可以提供兩個值來識別您匯入的每個資源。
+ 識別碼屬性。這是可用來識別每個資源類型的資源屬性。例如，您可以使用 `AWS::S3::Bucket` 資源的 `BucketName` 來識別該資源。

  您用於識別要匯入資源的資源屬性，會因資源類型而異。您可以在 CloudFormation 主控台中找到該資源屬性。建立包含要匯入資源的範本後，即可啟動匯入程序，並在其中找到要匯入資源的識別碼屬性。對於部分資源類型，可能有多種識別方式，您可在下拉清單中選取要使用的屬性。

  或者，您可以呼叫 [get-template-summary](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-template-summary.html) CLI 命令，並指定堆疊範本的 S3 URL 做為 `--template-url` 選項的值，以取得要匯入資源的識別碼屬性。
+ 識別碼的值。這是資源的實際屬性值。例如，`BucketName` 屬性的實際值可能是 `MyS3Bucket`。

  您可以從該資源的服務主控台中，取得識別碼屬性的數值。

## 資源匯入驗證
<a name="resource-import-validation"></a>

在匯入操作期間，CloudFormation 會執行下列驗證。
+ 存在要匯入的資源。
+ 每個要匯入資源的屬性和組態值都符合資源類型結構描述，該結構描述定義了其接受的屬性、必要屬性，以及支援的屬性值。
+ 必要屬性會在範本中指定。每個資源類型的必要屬性都會在 [AWS 資源和屬性類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html)中說明。
+ 要匯入的資源不屬於相同區域中的另一個堆疊。

CloudFormation 不會檢查範本組態是否與資源屬性的實際組態相符。

**重要**  
驗證範本中定義的資源及其屬性是否符合資源匯入的預期組態，以避免發生未預期的變更。

## 資源匯入狀態碼
<a name="resource-import-status-codes"></a>

此表格說明搭配資源匯入功能使用的各種狀態類型。


| 匯入作業狀態 | Description | 
| --- | --- | 
| `IMPORT_IN_PROGRESS` | 匯入操作正在進行。 | 
| `IMPORT_COMPLETE` | 已針對堆疊中的所有資源完成匯入操作。 | 
| `IMPORT_ROLLBACK_IN_PROGRESS` | 復原匯入操作正在復原先前的範本組態。 | 
| `IMPORT_ROLLBACK_FAILED` | 匯入復原操作失敗。 | 
| `IMPORT_ROLLBACK_COMPLETE` | 匯入已復原先前的範本組態。 | 

## 匯入操作期間的考量
<a name="resource-import-considerations"></a>
+ 在匯入完成且在執行後續的堆疊操作前，我們建議在匯入的資源上執行漂移偵測。漂移偵測可確保範本組態與實際組態相符。如需詳細資訊，請參閱[在整個 CloudFormation 堆疊上偵測偏離](detect-drift-stack.md)。
+ 匯入操作不允許建立新資源、刪除資源，或是對屬性組態進行變更。
+ 要匯入的每個資源都必須具備 `DeletionPolicy` 屬性，匯入操作才能成功。`DeletionPolicy` 可設為任何可能值。僅有您要匯入的資源需要 `DeletionPolicy`。已經是堆疊一部分的資源不需要 `DeletionPolicy`。
+ 您無法將相同的資源匯入多個堆疊。
+ 您可以使用 `cloudformation:ImportResourceTypes` IAM 政策條件來控制使用者在匯入操作期間可使用的資源類型。如需詳細資訊，請參閱[CloudFormation 的政策條件索引鍵](control-access-with-iam.md#using-iam-conditions)。
+ 匯入資源時會套用 CloudFormation 堆疊限制。如需限制的詳細資訊，請參閱 [了解 CloudFormation 配額](cloudformation-limits.md)。

## 其他資源
<a name="resource-import-additional-resources"></a>

如需透過資源匯入解決堆疊漂移問題，請參閱 [透過匯入作業解決漂移](resource-import-resolve-drift.md)。