本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解處理過的範本
使用巨集時,可在 CloudFormation 主控台中找到處理過的範本。
範本的階段會標示其處理狀態:
-
Original:使用者最初提交以建立或更新堆疊或堆疊集的範本。 -
Processed:由 CloudFormation 在處理任何參考的巨集後用來建立或更新堆疊或堆疊集的範本。即使原始範本是 YAML 格式,處理過的範本會變成 JSON 格式。
疑難排解時,請使用處理過的範本。如果範本未參考巨集,則原始範本和處理過的範本會相同。
如需更多詳細資訊,請參閱 在 CloudFormation 主控台中檢視堆疊資訊。
要透過 AWS CLI 取得經處理的範本,請使用 get-template 命令。
大小限制
已處理堆疊範本直接傳遞到 CreateStack、UpdateStack 或 ValidateTemplate 請求時的大小上限是 51,200 位元組,當使用 Amazon S3 範本的 URL 作為 S3 物件傳遞時的大小上限是 1 MB。不過,CloudFormation 在處理期間會更新範本的臨時狀態,因為它會按順序處理範本中包含的巨集。因此,處理期間的範本大小可能暫時超過完全處理範本允許的大小。CloudFormation 允許為這些處理中範本提供一些緩衝區。不過,您在設計範本和巨集時應謹記處理堆疊範本的允許大小上限。
如果 CloudFormation 傳回 Transformation data limit exceeded 錯誤,同時處理您的範本,則範本超過 CloudFormation 在處理期間允許的範本大小上限。
若要解決這個問題,請考量下列解決方案:
-
將範本重建為多個範本,以避免超過處理中範本的大小上限。例如:
-
使用巢狀堆疊範本,來封裝部分範本。如需更多詳細資訊,請參閱 運用巢狀堆疊,將範本分割成可重複使用的部分。
-
建立多個堆疊,並使用跨堆疊參考來在這些堆疊之間交換資訊。如需更多詳細資訊,請參閱 參考在另一個 CloudFormation 堆疊中的資源輸出。
-
-
減少特定巨集傳回的範本片段大小。CloudFormation 不會竄改巨集傳回的片段內容。