翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Enterprise Blueprint Factory の使用
このセクションでは、 環境でブループリントを作成、更新、削除する方法について説明します。ライフサイクル全体でブループリントを管理するための詳細な手順を示します。
カスタムブループリントを作成または更新するには、 AWS CloudFormation テンプレートや AWS Cloud Development Kit (AWS CDK) コンストラクトなどの IaC テンプレートを作成する方法を理解している必要があります。このガイドには、Enterprise Blueprint Factory を通じてリリースするブループリントを定義する方法に関する情報や手順は含まれていません。
前提条件
以下は、 AWS 環境で Enterprise Blueprint Factory を使用するための前提条件です。
ブループリントの作成
Enterprise Blueprint Factory パイプラインは、設定ファイルで定義したブループリントをデプロイします。開発者は、設定ファイルを設定リポジトリにマージして設定パイプラインを開始します。次に、エンタープライズブループリントファクトリーは を使用してServiceCatalogLaunchConstraintRole、ブループリントを Service Catalog の製品としてデプロイします。ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの作成」を参照してください。
設計図を製品リポジトリに追加するには
-
このガイドの「エンタープライズブループリントファクトリーのセットアップ」の指示に従って、エンタープライズブループリントファクトリーをセットアップしていることを確認します。
-
ServiceCataloglogLaunchConstraintRoleロールのポリシーで、ブループリントで定義されたリソースをプロビジョニングできることを確認します。 -
製品リポジトリ (
ServiceCatalog-BlueprintProductRepo) で、新しいブループリントのフォルダを作成します。 -
IaC テンプレート (CloudFormation テンプレートまたは AWS CDK コンストラクト) を、作成したフォルダに貼り付けます。
-
作成したフォルダに product_config.json という名前のファイルを作成します。
-
product_config.json ファイルを開き、ファイルに以下を貼り付けます。
{ "SchemaVersion": "1.0", "ProductVersionName": "1.0.1", "Deprecated_Versions" : [], "ProductVersionDescription": "<description>", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "./<folder name>/<file name>" } }コードの説明は以下のとおりです。
-
<description>は、ブループリントバージョンの簡単な説明です。 -
<folder name>は、製品リポジトリで作成したフォルダの名前です。 -
<file name>は IaC テンプレートの名前です
注記
スキーマバージョンまたは製品バージョン名は、組織のポリシーに合わせて更新できます。
-
-
product_config.json ファイルを保存して閉じます。
-
次のコマンドを入力して、変更を製品リポジトリにマージします。
cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "The first version of <file name> blueprint" git push origin main
設定ファイルを更新するには
-
設定リポジトリ (
ServiceCatalog-ConfigRepo) で、config.yml ファイルを開きます。 -
新しいブループリントに必要な
portfoliosセクションとproductsセクションを編集します。詳細については、このガイドの「設定ファイル」を参照してください。 -
config.yml ファイルを保存して閉じます。
-
次のコマンドを入力して、変更を設定リポジトリにマージします。
cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin mainこのプルリクエストを承認すると、設定パイプラインが開始されます。設定パイプラインは、製品のリリースパイプラインを作成します。
デプロイログを確認するには
-
Enterprise Blueprint Factory 管理アカウントにサインインします。
-
AWS CodePipeline コンソール
を開きます。 -
Name で、製品のリリースパイプラインを選択します。デフォルトでは、パイプライン名は です
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>。 -
[View history (履歴の表示)] を選択します。
-
パイプラインとステージ実行のステータスを表示します。ステータスの詳細については、CodePipeline ドキュメントの「実行ステータスの表示」を参照してください。
-
パイプラインが失敗した場合、失敗の原因を確認します。パイプラインのモニタリングを設定する方法については、CodePipeline ドキュメントの「パイプラインのモニタリング」を参照してください。cfn-lint または cfn_nag チェックが原因でリリースパイプラインが失敗した場合は、テンプレートのエラーを修正します。別のプルリクエストを製品リポジトリに送信します。これにより、リリースパイプラインが再起動されます。テンプレートエラーの修正の詳細については、このガイドの「トラブルシューティング」セクションを参照してください。
-
リリースパイプラインのステータスが になるまで待ちます
Succeeded。
デプロイを検証するには
-
組織内のコンシューマーアカウントにサインインします。
-
IAM
ServiceCatalogEndUserRoleロールを引き受けます。 -
Service Catalog コンソール
を開きます。 -
ナビゲーションペインで、[Products] (製品) を選択します。
-
新製品が製品リストで使用可能であることを確認します。
設計図の更新
ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの更新」を参照してください。
ブループリントを更新するには
-
製品リポジトリで、製品の フォルダに移動します。
-
更新された IaC テンプレートを貼り付けます。ファイル名が以前のバージョンと同じであることを確認します。
-
product_config.json ファイルを開きます。
-
では
ProductVersionName、バージョン番号を更新します。 -
以前の製品バージョンが将来デプロイされないようにするには、 に
Deprecated_Versions以前のバージョン番号をカンマ区切りリストに入力します。 -
次のコマンドを入力して、変更を製品リポジトリにマージします。
cd ServiceCatalog-BlueprintProductRepo git add <folder name>/<file name> <folder name>\product_config.json git commit -m "Version <number> of <file name> blueprint" git push origin mainこのプルリクエストを承認すると、製品のリリースパイプラインが開始されます。
デプロイログを確認するには
-
Enterprise Blueprint Factory 管理アカウントにサインインします。
-
AWS CodePipeline コンソール
を開きます。 -
Name で、リリースパイプラインを選択します。デフォルトでは、パイプライン名は です
BluePrint_<Product-Name>-<CloudFormation-Stack-Name>。 -
[View history (履歴の表示)] を選択します。
-
パイプラインとステージ実行のステータスを表示します。ステータスの詳細については、CodePipeline ドキュメントの「実行ステータスの表示」を参照してください。
-
パイプラインが失敗した場合、失敗の原因を確認します。パイプラインのモニタリングを設定する方法については、CodePipeline ドキュメントの「パイプラインのモニタリング」を参照してください。cfn-lint または cfn_nag チェックが原因でリリースパイプラインが失敗した場合は、テンプレートのエラーを修正します。別のプルリクエストを製品リポジトリに送信します。これにより、リリースパイプラインが再起動されます。テンプレートエラーの修正の詳細については、このガイドの「トラブルシューティング」セクションを参照してください。
-
リリースパイプラインのステータスが になるまで待ちます
Succeeded。
更新を検証するには
-
組織内のコンシューマーアカウントにサインインします。
-
IAM
ServiceCatalogEndUserRoleロールを引き受けます。 -
Service Catalog コンソール
を開きます。 -
ナビゲーションペインで、[Products] (製品) を選択します。
-
新しい製品バージョンが製品リストで使用可能であることを確認します。
ブループリントの削除
製品を削除すると、Service Catalog は製品を含むすべてのポートフォリオからすべての製品バージョンを削除します。詳細については、Service Catalog ドキュメントの「製品の削除」を参照してください。ブループリントの作成時に設定パイプラインとリリースパイプラインが実行するアクションの詳細については、このガイドの「ブループリントの削除」を参照してください。
ブループリントを削除するには
-
設定リポジトリで、config.yml ファイルを開きます。
-
製品セクションを編集し、削除する製品を削除またはコメントアウトします。
-
config.yml ファイルを保存して閉じます。
-
次のコマンドを入力して、変更を設定リポジトリにマージします。
cd ServiceCatalog-ConfigRepo git add config.yml git commit -m "<description of change>" git push origin mainこのプルリクエストを承認すると、設定パイプラインが開始されます。設定パイプラインは、製品とそのリリースパイプラインを削除します。
-
製品リポジトリで、製品の内容を含む製品のフォルダを削除します。
-
次のコマンドを入力して、変更を製品リポジトリにマージします。
cd ServiceCatalog-BlueprintProductRepo git add . git commit -m "Delete <file name> blueprint" git push origin main
削除を検証するには
-
組織内のコンシューマーアカウントにサインインします。
-
IAM
ServiceCatalogEndUserRoleロールを引き受けます。 -
Service Catalog コンソール
を開きます。 -
ナビゲーションペインで、[Products] (製品) を選択します。
-
削除した製品が使用できなくなったことを確認します。
トラブルシューティング
ブループリントを作成または更新すると、cfn-lint ツールと cfn-nag ツールによってブループリントが検証されます。リリースパイプラインの検証の詳細については、このガイドの「リリースパイプライン」を参照してください。報告された構文またはセキュリティエラーにより、パイプラインは失敗します。リリースパイプラインを介してブループリントを正常にデプロイするには、ブループリントのエラーを修正する必要があります。
以下は、障害と警告の 2 つのセキュリティ関連のエラーを示す出力例です。
BP-SNS.yml --------------------------------------------------- BP-SNS.yml --------------------------------------------------- | WARN W47 | | Resource: ["ExampleTopic"] | Line numbers: [5] | | SNS Topic should specify KmsMasterKeyId property --------------------------------------------------- | FAIL F18 | | Resource: ["ExampleTopicPolicy"] | Line numbers: [10] | | SNS topic policy should not allow * principal Failures count: 1 Warnings count: 1
これらのエラーを修正するには、設計図ファイルで、Amazon Simple Notification Service (Amazon SNS) トピックポリシーの*プリンシパルを置き換え、 AWS Key Management Service (AWS KMS) キーをトピックに関連付けます。次のコード例は、これらの更新を示しています。
ExampleTopic: Type: AWS::SNS::Topic Properties: TopicName: ExampleTopic ExampleTopicPolicy: Type: AWS::SNS::TopicPolicy Properties: KmsMasterKeyId: alias/aws/sns # Added KMS key PolicyDocument: Id: Id1 Version: '2012-10-17' Statement: - Sid: Sid2 Effect: Allow Principal: "Service" : "s3.amazonaws.com" # Replaced "AWS": '*' Action: 'sns:Publish' Resource: !Ref ExampleTopic Topics: - !Ref ExampleTopic