在 Service Catalog 中定義產品的程式設計選項 - AWS 方案指引

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

在 Service Catalog 中定義產品的程式設計選項

使用 Service Catalog 佈建 AWS 基礎設施的兩個程式設計選項是 CloudFormation 範本或 AWS CDK。目前沒有用於定義 Service Catalog 產品的宣告式或無程式碼機制。

CloudFormation 指令碼

AWS CloudFormation 是已嘗試且真實的 IaC 原生指令碼語言,用於佈建 AWS 基礎設施。您可以在 中或使用 Visual Studio Code (或簡單文字編輯器) 和 () 等開發工具 AWS Management Console 來開發 CloudFormation AWS Command Line Interface 指令碼AWS CLI。

如需詳細資訊,請參閱 CloudFormation 文件。如需使用 CloudFormation 範本指定 Service Catalog 產品的詳細資訊,請參閱 AWS::ServiceCatalog::CloudFormationProduct 資源。 CloudFormation

使用 的程式設計方法 AWS CDK

AWS CDK 提供優雅且功能強大的物件導向程式設計架構,可讓您使用多種程式設計語言來定義和維護 AWS 基礎設施。您可以使用 AWS CDK 來開發物件導向的精細自訂和 AWS 類別架構延伸。 AWS CDK 適用於想要 AWS 服務 自訂更複雜基礎設施需求的使用者,以及具有必要程式設計技能和經驗的使用者。

若要使用 實作 Service Catalog 解決方案 AWS CDK,您可以使用內建的 Service Catalog 類別來定義產品和產品組合。這些類別由 AWS CDK aws-cdk-lib.aws_servicecatalog 模組提供。

您可以使用 以多種方式 AWS CDK 實作 產品。為了避免在 CloudFormation 中為產品撰寫佈建範本並維持可重複使用性,我們建議您使用 AWS CDK ProductStack 類別來代表佈建範本。ProductStack 執行個體是您以程式設計方式新增資源的 AWS CDK 堆疊。例如,您可以新增 S3 儲存貯體、IAM 角色或 Amazon CloudWatch 日誌。當您透過呼叫 將ProductStack執行個體新增至定義的servicecatalog.CloudFormationProduct執行個體作為其佈建範本時servicecatalog.CloudFormationTemplate.fromProductStack (<ProductStack instance>), AWS CDK 會自動產生 CloudFormation 範本。

以下是 Amazon S3 產品的 Java ProductStack實作範例。

import * as s3 from 'aws-cdk-lib/aws-s3'; import * as cdk from 'aws-cdk-lib'; class S3BucketProduct extends servicecatalog.ProductStack { constructor(scope: Construct, id: string) { super(scope, id); new s3.Bucket(this, 'BucketProduct'); } } const product = new servicecatalog.CloudFormationProduct(this, 'Product', { productName: "My Product", owner: "Product Owner", productVersions: [ { productVersionName: "v1", cloudFormationTemplate: servicecatalog.CloudFormationTemplate.fromProductStack(new S3BucketProduct(this, 'S3BucketProduct')), }, ], });

AWS CDK 提供內建的持續整合和持續部署 (CI/CD) 管道。您可以自訂這些內建管道和軟體開發生命週期 (SDLC) 程序,以符合您自己的程序標準和目標。

自訂 AWS CDK 類別可以從其他類別繼承,以提供專門的函數,而且類別可以由其他類別的執行個體組成。如果您使用共用 AWS CDK 類別架構來實作多個 Service Catalog 產品,請考慮任何版本控制或相容性影響,尤其是跨多個開發團隊。您必須確保變更向後相容,或者您有遵循的版本控制機制,以便您對某個產品的類別變更不會破壞另一個產品。

如需詳細資訊,請參閱 AWS CDK 文件