匯入 AWS 資源到具有資源導入的 CloudFormation 堆棧中 - AWS CloudFormation

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

匯入 AWS 資源到具有資源導入的 CloudFormation 堆棧中

資源匯入功能可讓您匯入現有的 AWS 資源到一個新的或現有的 CloudFormation 堆棧。如果您想要開始使用 CloudFormation 來管理在外部建立的資源,而不必刪除並重新建立這些資源 CloudFormation,則此功能非常有用。

CloudFormation 提供兩種將現有資源匯入堆疊的選項:

  • IaC 生成器是一種工具,可以自動掃描您現有的資源,並根據其當前狀態生成 CloudFormation 模板。然後,可以使用此模板將這些資源導入堆棧中。

  • 資源匯入是一種手動程序,您可以在其中描述 CloudFormation 範本中的現有資源,然後將它們匯入堆疊中。這種方法需要您在模板中手動指定資源屬性和配置。

除了將現有資源納入 CloudFormation 管理之外,資源匯入功能在下列案例中也很有用:

  • 堆疊之間移動資源 — 您可以將資源從一個堆疊匯入另一個堆疊,讓您視需要重新組織基礎結構。

  • 巢狀現有堆疊 — 您可以將現有堆疊匯入為另一個堆疊中的巢狀堆疊,以啟用模組化且可重複使用的基礎架構設計。

CloudFormation 支持導入廣泛的資源。如需詳細資訊,請參閱資源類型支援

概觀

在匯入操作期間,您會建立一個變更集合,將您的現有資源匯入堆疊,或是從您現有的資源建立新堆疊。您可以在匯入期間提供以下資訊。

  • 描述整個堆疊的範本,包括原始堆疊資源和您正在匯入的資源。要匯入的每個資源都必須有一個DeletionPolicy 屬性.

  • 您正在匯入的資源的識別碼, CloudFormation 可用來將範本IDs中的邏輯與現有資源對應。

注意

CloudFormation 僅支持使用資源導入的一個嵌套級別。這表示您無法將堆疊匯入子堆疊,或是匯入具有子系的堆疊。

資源識別碼

您提供兩個值來識別您要匯入的每個資源。

  • 識別碼屬性。這是可用來識別每個資源類型的資源屬性。例如,您可以使用 AWS::S3::Bucket 資源的 BucketName 來識別該資源。

    您用來識別要匯入之資源的資源屬性會隨資源類型而有所不同。您可以在 CloudFormation 控制台中找到資源屬性。建立包含要匯入之資源的範本之後,您可以啟動匯入程序,您可以在其中找到要匯入之資源的識別碼屬性。對於某些資源類型,可能有多種方法可以識別它們,您可以在下拉式清單中選取要使用的屬性。

    或者,您可以呼叫get-template-summaryCLI命令並將堆疊範本的 S3 指定為--template-url選項的值,以取得要匯入URL之資源的識別碼屬性。

  • 識別碼的值。這是資源的實際屬性值。例如,BucketName 屬性的實際值可能是 MyS3Bucket

    您可以從資源的服務主控台取得 ID 屬性的值。

資源匯入驗證

在匯入作業期間, CloudFormation 會執行下列驗證。

  • 存在要匯入的資源。

  • 每個要匯入資源的屬性和組態值都符合資源類型結構描述,該結構描述定義了其接受的屬性、必要屬性,以及支援的屬性值。

  • 必要屬性會在範本中指定。中會列出每個資源類型的必要屬性AWS 資源和屬性類型參考

  • 要匯入的資源不屬於相同區域中的另一個堆疊。

CloudFormation 不檢查模板配置是否與資源屬性的實際配置匹配。

重要

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

資源匯入狀態碼

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

匯入作業狀態 描述

IMPORT_IN_PROGRESS

匯入操作正在進行。

IMPORT_COMPLETE

已針對堆疊中的所有資源完成匯入操作。

IMPORT_ROLLBACK_IN_PROGRESS

復原匯入操作正在復原先前的範本組態。

IMPORT_ROLLBACK_FAILED

匯入復原操作失敗。

IMPORT_ROLLBACK_COMPLETE

匯入已復原先前的範本組態。

匯入操作期間的考量

  • 在匯入完成且在執行後續的堆疊操作前,我們建議在匯入的資源上執行漂移偵測。漂移偵測可確保範本組態與實際組態相符。如需詳細資訊,請參閱偵測整個 CloudFormation 堆疊上的漂移

  • 匯入操作不允許建立新資源、刪除資源,或是對屬性組態進行變更。

  • 要匯入的每個資源都必須具備 DeletionPolicy 屬性,匯入操作才能成功。DeletionPolicy 可設為任何可能值。只有您要匯入的資源需要DeletionPolicy. 已經是堆疊一部分的資源不需要 DeletionPolicy

  • 您無法將相同的資源匯入多個堆疊。

  • 您可以使用cloudformation:ImportResourceTypesIAM策略條件來控制使用者可以在匯入作業期間使用的資源類型。如需詳細資訊,請參閱CloudFormation 條件

  • 匯入資源時會套用 CloudFormation 堆疊限制。如需限制的詳細資訊,請參閱瞭解 CloudFormation 配額

其他資源

若要透過資源匯入來解決堆疊偏移問題,請參閱透過匯入作業解決漂移