

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

# 透過 CloudFormation 模組建立可跨範本納入的可重複使用資源組態
<a name="modules"></a>

*模組*可讓您以透明、易於管理且可重複的方式，來封裝可包含在堆疊範本之間的資源組態。模組可透過可自訂的模組化建置區塊形式，來封裝通用服務組態和最佳實務，以便您將其納入堆疊範本中。模組可讓您納入資源組態，這些資源組態會將最佳實務、專業領域知識和公認指導方針 (適用於安全性、合規性、控管和產業法規等領域) 納入範本，無須深入了解資源實作的複雜細節。

例如，聯網的領域專家可以建立模組，其中包含內建安全性群組和遵守安全性指導方針的輸入/輸出規則。然後，您可以將該模組納入範本中，以便在堆疊中佈建安全的聯網基礎設施，而不需花時間了解 VPC、子網路、安全性群組和閘道的運作方式。由於模組是由版本控制的，如果安全性指導方針會隨著時間而改變，則模組作者可以建立新版的模組，以納入那些變更。

在範本中使用模組的特性包括：
+ **可預測性** – 模組必須遵守它在 CloudFormation 登錄中註冊的結構描述，以便讓您了解在將模組包含在範本時，該模組可以解析哪些資源。
+ **可重複使用性** - 您可以跨多個範本和帳戶使用相同的模組。
+ **可追蹤性** – CloudFormation 會保留堆疊中哪些資源是透過模組佈建而得的知識，讓您輕鬆了解資源變更的來源。
+ **可管理性** – 在您註冊模組後，就可以透過 CloudFormation 登錄管理模組，包括版本控制、帳戶和區域可用性。

模組可以包含：
+ 要透過模組佈建的一或多個資源，以及輸出或條件等任何相關資料。
+ 任何模組參數，可讓您在使用模組時指定自訂值。

如需開發模組的資訊，請參閱《*CloudFormation CLI 使用者指南*》中的[開發模組](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/modules.html)。

**Topics**
+ [使用模組時的考量](#module-considerations)
+ [了解模組版本控制](module-versioning.md)
+ [使用 CloudFormation 私有登錄檔的模組](modules-using.md)
+ [使用參數來指定模組值](module-using-params.md)
+ [在 CloudFormation 範本中參考模組資源](module-ref-resources.md)

## 使用模組時的考量
<a name="module-considerations"></a>
+ 使用模組無需額外收費。您只需為那些模組在堆疊中解析的資源付費。
+ CloudFormation 配額 (例如堆疊中允許的資源數目上限或範本內文的大小上限) 適用於已處理的範本，無論該範本中包含的資源是否來自模組。如需詳細資訊，請參閱[了解 CloudFormation 配額](cloudformation-limits.md)。
+ 您在堆疊層級指定的標籤會指派給自模組衍生的個別資源。
+ CloudFormation 處理範本時，在模組層級指定的協助程式指令碼不會傳播到模組中包含的個別資源。
+ 模組中指定的輸出會傳播到範本層級的輸出。

  每個輸出將分配到一個邏輯 ID，此 ID 是模組邏輯名稱和在模組中定義之輸出名稱的串連。如需詳細資訊，請參閱[從部署的 CloudFormation 堆疊取得匯出的輸出](using-cfn-stack-exports.md)。
+ 模組中指定的參數不會傳播到範本層級的參數。

  不過，您可以建立參考模組層級參數的範本層級參數。如需詳細資訊，請參閱[使用參數來指定模組值](module-using-params.md)。