

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

# 了解模組版本控制
<a name="module-versioning"></a>

CloudFormation 登錄檔做為儲存庫，您可以在其中註冊和管理模組，以便在 AWS 帳戶 和 區域中使用。您可以在您的帳戶和區域中註冊來自各種來源的模組 AWS，包括第三方發佈者和您自己的自訂擴充功能。如需詳細資訊，請參閱[使用 CloudFormation 登錄檔管理擴充功能](registry.md)。

模組可以有不同版本，因此您可以指定要使用的模組版本。當您需要更新或修改模組而不中斷依賴它的現有堆疊時，此版本控制功能特別實用。

使用多個版本的模組時，請注意以下考量事項：
+ 在堆疊操作期間，CloudFormation 會使用目前註冊為執行堆疊操作之 AWS 帳戶 和 區域中預設版本的任何模組版本。這包括在其他模組中巢狀堆疊的模組。

  因此，請注意，如果您在不同帳戶或區域中將相同模組的不同版本註冊為預設版本，則使用相同的範本可能會產生不同的結果。
+ 在堆疊操作期間，CloudFormation 會使用目前註冊為執行堆疊操作之 AWS 帳戶 和 區域中預設版本的任何資源版本。其中包括內含模組所產生的資源。
+ 變更模組的預設版本不會起始任何堆疊更新操作。不過，在您下次使用任何包含該模組的範本 (例如堆疊更新) 執行堆疊操作時，CloudFormation 將在操作中使用新的預設版本。

  如下所述，唯一的例外是，使用指定的 **use previous template (使用先前範本)** 選項執行堆疊更新時。
+ 對於堆疊更新操作，如果您指定 **use previous template (使用先前範本)** 選項，CloudFormation 會使用先前處理的範本進行堆疊更新，而且不會針對您可能對其所做的任何變更重新處理模組。
+ 為了保證結果一致，如果您將模組包含在堆疊範本中以供堆疊集使用，則應確保在您計劃部署堆疊執行個體的所有帳戶和區域中，將相同的模組版本設定為預設版本。這包括在其他模組巢狀堆疊中的模組。如需詳細資訊，請參閱[透過 StackSets 跨帳戶和區域管理堆疊](what-is-cfnstacksets.md)。

## 啟用第三方公有模組的需求
<a name="requirements-for-modules"></a>

若要成功啟用帳戶和區域中的第三方公有模組，模組中包含的每個第三方公有擴充功能 (資源或模組) 必須符合下列條件：
+ **擴充功能啟用** – 擴充功能必須在您要使用它的帳戶及區域中啟用。如需詳細資訊，請參閱[從 CloudFormation 登錄檔使用第三方公有擴充功能](registry-public.md)。
+ **別名註冊** - 如果模組中的擴充功能使用類型名稱別名，則必須使用相同類型名稱別名在帳戶和區域中註冊擴充功能。如需詳細資訊，請參閱[使用別名來稱呼擴充功能](registry-public.md#registry-public-enable-alias)。
+ **版本相容性** - 目前已啟用擴充功能版本必須是模組中指定之該擴充功能的主要支援版本之一。

如果您沒有啟用正確的第三方公有擴充功能和擴充功能版本，CloudFormation 將導致操作失敗並顯示錯誤，此錯誤會列出成功啟用模組之前需要啟用的擴充功能和版本。