本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于在 Service Catalog 中定义产品的编程选项
使用 Service Catalog 配置 AWS 基础架构的两个编程选项是 CloudFormation模板或 AWS CDK。当前,没有用于定义 Service Catalog 产品的声明式或无代码机制。
CloudFormation 脚本
AWS CloudFormation 是一种久经考验的 IaC 原生脚本语言,用于配置 AWS 基础架构。您可以使用诸如 Visual Studio Code( AWS Management Console 或简单的文本编辑器)和 () 之类的开发工具在或中 AWS Command Line Interface 开发 CloudFormation 脚本。AWS CLI
有关更多信息,请参阅 CloudFormation 文档。有关使用 CloudFormation 模板指定 Service Catalog 产品的更多信息,请参阅 CloudFormation 文档中的AWS::ServiceCatalog::CloudFormationProduct 资源。
采用编程方法 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模板。
以下是亚马逊 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 文档。