

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

# 支援模組化和程式碼重複使用
<a name="reuse"></a>

您可以從許多不同的 AWS 資源，甚至從其他產品組合產品。理想情況下，您會以模組化方式定義資源，以便在多個產品中重複使用這些資源。資源層級重複使用可讓您在某個位置進行任何未來的變更，而不是使用該資源類型的每個產品。

Service Catalog 提供稱為*鏈結*的功能，以支援產品層級的可重複使用性。您可以將產品連結到一或多個其他產品。例如，您可能想要將 S3 記錄儲存貯體產品鏈結至更高層級的監控產品。雖然鏈結支援模組化，但它會產生一些操作複雜性，因為您必須管理相依性。Service Catalog 不會在鏈結產品之間自動維護版本控制，因此無法確保對某個產品的變更不會破壞依賴它的其他產品。請謹慎使用鏈結，並開發自己的機制，以確保版本控制和維護相依性。

Service Catalog 原生使用 CloudFormation 將產品佈建範本部署為 CloudFormation 堆疊。不過，Service Catalog 會對產品堆疊的 CloudFormation 部署施加一些限制。特別是，Service Catalog 佈建不支援 CloudFormation `include`巨集來插入可重複使用的指令碼區段，或參考巢狀 CloudFormation 指令碼 （或堆疊） 到多個層級。這些 Service Catalog 限制會限制從可重複使用的 CloudFormation 範本或元件定義產品的能力，這是當您在 CloudFormation 中原生定義堆疊時的標準最佳實務。

**注意**  
Service Catalog 可讓您成功定義具有使用這些 CloudFormation 建構的佈建範本的產品。不過，如果您在 Service Catalog CloudFormation 範本中使用`include`巨集或巢狀多個層級的指令碼，將會遇到佈建時間錯誤。

這些限制可能會使得在 Service Catalog 中實作模組化和可重複使用的產品變得困難。如果模組化是必要項目，您可以探索[使用 AWS CDK](options.md#cdk) 實作您的產品及其佈建範本，或在 [AWS Labs Service Catalog Tools 專案](service-catalog-tools.md)中使用佈建工作流程和引擎。本指南稍後將說明這兩種替代方案。