Service Catalog で製品を定義するためのプログラミングオプション - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Service Catalog で製品を定義するためのプログラミングオプション

Service Catalog を使用して AWS インフラストラクチャをプロビジョニングするための 2 つのプログラミングオプションは、CloudFormation テンプレートまたは です AWS CDK。現在、Service Catalog 製品を定義するための宣言型またはノーコードのメカニズムはありません。

CloudFormation スクリプト

AWS CloudFormation は、インフラストラクチャをプロビジョニングするための実証済みの IaC ネイティブスクリプト言語です AWS 。CloudFormation スクリプトは、 で、 AWS Management Console または Visual Studio Code (またはシンプルなテキストエディタ) や AWS Command Line Interface () などの開発ツールを使用して開発できますAWS CLI。

詳細については、CloudFormation のドキュメントを参照してください。CloudFormation テンプレートを使用して Service Catalog 製品を指定する方法の詳細については、CloudFormation AWS::ServiceCatalog::CloudFormationProduct」リソースを参照してください。 CloudFormation

を使用したプログラムによるアプローチ AWS CDK

AWS CDK は、さまざまなプログラミング言語を使用して AWS インフラストラクチャを定義および維持するための、洗練された強力なオブジェクト指向プログラミングフレームワークを提供します。を使用して、オブジェクト指向のきめ細かなカスタマイズと AWS クラスフレームワークの拡張 AWS CDK を開発できます。 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>)、 によって CloudFormation テンプレート AWS CDK が自動的に生成されます。

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 のドキュメントを参照してください。