

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

# 社群模組的最佳做法
<a name="community"></a>

有效使用模組是管理複雜 Terraform 組態和促進重複使用的關鍵。本節提供有關社區模塊，依賴關係，源，抽象和貢獻的最佳實踐。

**Topics**
+ [探索社群模組](#discovery)
+ [瞭解相依性](#dependencies)
+ [使用信任的來源](#trusted-sources)
+ [為社區模塊做出貢獻](#contribute-community)

## 探索社群模組
<a name="discovery"></a>

在構建新模塊之前 [GitHub](https://github.com/terraform-aws-modules)，請在 [Terraform 註冊表](https://registry.terraform.io/namespaces/terraform-aws-modules)和其他源中搜索可能解決您的用例的現有 AWS 模塊。尋找具有最新更新並積極維護的熱門選項。

### 使用變數進行自訂
<a name="customization"></a>

當您使用社區模塊時，請通過變量傳遞輸入，而不是分叉或直接修改源代碼。在需要時覆蓋默認值，而不是更改模塊的內部。

分叉應僅限於為原始模塊提供修復程序或功能，以使更廣泛的社區受益。

## 瞭解相依性
<a name="dependencies"></a>

在您使用模組之前，請先檢閱其原始程式碼和說明文件，以識別相依性：
+ **必要提供者**：請注意模組需要的 AWS、Kubernetes 或其他提供者的版本。
+ **嵌套模塊**：檢查內部使用的其他引入級聯依賴關係的模塊。
+ **外部資料來源**：記下模組所依賴的 API、自訂外掛程式或基礎結構相依性。

通過映射出直接和間接依賴關係的完整樹，可以避免在使用模塊時出現意外。

## 使用信任的來源
<a name="trusted-sources"></a>

來自未經驗證或未知的發布商採購 Terraform 模塊會帶來重大風險。僅使用來自信任來源的模組。
+ 喜歡由經過驗證的創建者（例如 AWS 或 HashiCorp 合作夥伴）發布的 [Terraform 註冊表](https://registry.terraform.io/namespaces/terraform-aws-modules)中的認證模塊。
+ 對於自訂模組，請檢閱發行者歷史記錄、支援等級和使用信譽，即使該模組來自您自己的組織也一樣。

透過不允許來自未知或已公開來源的模組，您可以降低將弱點或維護問題注入程式碼的風險。

### 訂閱 通知
<a name="subscribe"></a>

訂閱來自受信任的發行者之新模組版本的通知：
+ 觀看 GitHub 模塊存儲庫以獲取有關模塊新版本的警報。
+ 監控發布者博客和更新日誌以獲取更新。
+ 從經過驗證的高度評價來源獲取新版本的主動通知，而不是隱式提取更新。

僅使用來自信任來源的模組並監控變更，可提供穩定性和安全性。經過審核的模組可提高生產力，同時將供應鏈風險降

## 為社區模塊做出貢獻
<a name="contribute-community"></a>

針對以下位置託管的社群模組提交修正和增強功能 GitHub：
+ 在模塊上打開提取請求，以解決您在使用中遇到的缺陷或限制。
+ 建立問題，請求將新的最佳作法組態新增至現有的 OSS 模組。

為社區模塊做出貢獻，可為所有 Terraform 從業者增強可重複使用，編纂模式。