支援模組化和程式碼重複使用 - AWS 方案指引

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

支援模組化和程式碼重複使用

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

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

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

注意

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

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