自動將 AWS 資源匯入 CloudFormation 堆疊
現在建立或更新 CloudFormation 堆疊時,您可以自動匯入具名資源。具名資源指具有自訂名稱的資源。如需詳細資訊,請參閱 CloudFormation 範本參考中的名稱類型。
啟動自動匯入後,CloudFormation 會檢查與您的範本匹配的現有資源,並在部署期間將其匯入。對於巢狀堆疊,請從根堆疊建立變更集。
在匯入完成且在執行後續的堆疊操作前,我們建議在匯入的資源上執行漂移偵測。漂移偵測可確保範本組態與實際組態相符。如需更多詳細資訊,請參閱 在整個 CloudFormation 堆疊上偵測偏離。
若要匯入資源,需符合下列要求:
-
資源必須在您的範本中定義靜態自訂名稱。目前不支援動態名稱 (使用 !Ref 或其他函數建立)。
-
資源必須具有
Retain或RetainExceptOnCreate的DeletionPolicy。 -
資源不得已屬於另一個 CloudFormation 堆疊。
-
該資源類型必須支援 CloudFormation 匯入操作。如需更多詳細資訊,請參閱 資源類型支援。
-
資源類型的主要 ID 必須包含在範本中。具有唯讀屬性的主要 ID 不受支援。若要查詢某類型的主要 ID,請在資源結構描述中查找
primaryIdentifier屬性。如需該屬性的詳細資訊,請參閱 primaryIdentifier。
範例 自動匯入範例
下列範例使用變更集 CreateChangeSet,根據範本檔案 template.yaml 建立名為 my-stack 的堆疊,並會自動匯入相符的資源。
aws cloudformation create-change-set \ --stack-namemy-stack\ --change-set-nameCreateChangeSet\ --change-set-type CREATE \ --template-bodyfile://template.yaml\ --import-existing-resources
疑難排解
若自動匯入失敗,請執行下列步驟進行疑難排解:
確認範本中的資源名稱與實際資源名稱是否完全一致
確認該資源未被另一個堆疊管理
確定資源類型支援匯入操作
確認您的範本包含資源類型所需的全部必要屬性