

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

# チュートリアル: Service Catalog にデプロイするパイプラインを作成する
<a name="tutorials-S3-servicecatalog"></a>

Service Catalog を使用すると、 AWS CloudFormation テンプレートに基づいて製品を作成およびプロビジョニングできます。

**重要**  
パイプライン作成の一環として、CodePipeline は、ユーザーが指定した S3 アーティファクトバケットをアーティファクトとして使用します (これは S3 ソースアクションで使用するバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

このチュートリアルでは、製品テンプレートを Service Catalog にデプロイするパイプラインを作成して設定し、(GitHub、CodeCommit、Amazon S3 で作成済みの) ソースリポジトリで行った変更を送信する方法を示します。

**注記**  
Amazon S3 がパイプラインのソースプロバイダーである場合、すべてのソースファイルを 1 つの .zip ファイルとしてパッケージ化してバケットにアップロードする必要があります。それ以外の場合、ソースアクションは失敗します。

まず Service Catalog で製品を作成し、次に AWS CodePipelineでパイプラインを作成します。このチュートリアルでは、デプロイ設定を指定するための 2 つのオプションを取り上げます。
+ Service Catalog で製品を作成し、テンプレートファイルをソースリポジトリにアップロードします。(個別の設定ファイルではなく) CodePipeline コンソールで製品バージョンとデプロイ設定を指定します。「[オプション 1: 設定ファイルを使用しないで Service Catalog にデプロイする](#tutorials-S3-servicecatalog-ex1-configure)」を参照してください。
**注記**  
テンプレートファイルは YAML または JSON 形式で作成できます。
+ Service Catalog で製品を作成し、テンプレートファイルをソースリポジトリにアップロードします。個別の設定ファイルを使用して製品バージョンとデプロイ設定を指定します。「[オプション 2: 設定ファイルを使用して Service Catalog にデプロイする](#tutorials-S3-servicecatalog-ex2-configure)」を参照してください。

## オプション 1: 設定ファイルを使用しないで Service Catalog にデプロイする
<a name="tutorials-S3-servicecatalog-ex1-configure"></a>

この例では、S3 バケットのサンプル AWS CloudFormation テンプレートファイルをアップロードし、Service Catalog で製品を作成します。次に、CodePipeline コンソールで、パイプラインを作成し、デプロイ設定を指定します。

### ステップ 1: サンプルテンプレートファイルをソースリポジトリにアップロードする
<a name="tutorials-S3-servicecatalog-configure"></a>

1. テキストエディタを開きます。以下のコードをファイルに貼り付けて、サンプルテンプレートを作成します。`S3_template.json` という名前でファイルを保存します。

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   このテンプレートにより AWS CloudFormation 、 は Service Catalog で使用できる S3 バケットを作成できます。

1. `S3_template.json` ファイルを AWS CodeCommit リポジトリにアップロードします。

### ステップ 2: Service Catalog で製品を作成する
<a name="tutorials-S3-servicecatalog-product"></a>

1. IT 管理者として、Service Catalog コンソールにサインインし、[**製品**] ページに移動して、[**新しい製品のアップロード**] を選択します。

1. [**新しい製品のアップロード**] ページで、以下の手順を実行します。

   1. [**製品名**] に、新しい製品に使用する名前を入力します。

   1. [**Description (説明)**] に製品カタログの説明を入力します。この説明は、製品リストでユーザーが正しい製品を選択できるように表示されます。

   1. [**提供元**] に IT 部門または管理者の名前を入力します。

   1. [**次へ**] を選択します。

1. (オプション) [**サポート詳細の入力**] に製品サポートの連絡先情報を入力し、[**次へ**] を選択します。

1. [**バージョンの詳細**] に以下の情報を入力します。

   1. [**Upload a template file（テンプレートファイルをアップロード）**] を選択します。`S3_template.json` ファイルを見つけ、アップロードします。

   1. [**バージョンタイトル**] に、製品バージョンの名前 (**devops S3 v2** など) を入力します。

   1. [**Description (説明)**] に、このバージョンと他のバージョンを区別するための詳細を入力します。

   1. [**次へ**] を選択します。

1. [**確認**] ページで、情報が正しいことを確認し、[**作成**] を選択します。

1. ブラウザの [**製品**] ページで、新しい製品の URL をコピーします。これには製品 ID が含まれています。この製品 ID をコピーして保持します。CodePipeline でパイプラインを作成するときに、それを使用します。

   以下に示しているのは、`my-product` という製品の URL です。製品 ID を抽出するには、等号 (`=`) とアンパサンド (`&`) との間の値をコピーします。この例では、製品 ID は `prod-example123456` です。

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**注記**  
ページから移動する前に、製品の URL をコピーします。このページから移動したら、CLI を使用して製品 ID を取得する必要があります。

   数秒後、製品が [**製品**] ページに表示されます。製品をリストに表示するには、ブラウザの更新が必要になる場合があります。

### ステップ 3: パイプラインを作成する
<a name="tutorials-S3-servicecatalog-pipeline"></a>

1. パイプラインに名前を付け、パイプラインのパラメータを選択するには、以下の手順を実行します。

   1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) で CodePipeline コンソールを開きます。

   1. [**ようこそ**] ページ、[**開始方法**] ページ、または [**パイプライン**] ページで、[**パイプラインの作成**] を選択します。

   1. **[ステップ 1: 作成オプションを選択する]** ページの **[作成オプション]** で、**[カスタムパイプラインを構築する]** オプションを選択します。[**次へ**] を選択します。

   1. **[ステップ 2: パイプラインの設定を選択する]** ページで、**[パイプライン名]** にパイプラインの名前を入力します。

   1. CodePipeline は、特徴と料金が異なる V1 タイプと V2 タイプのパイプラインを提供しています。V2 タイプは、コンソールで選択できる唯一のタイプです。詳細については、「[パイプラインタイプ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel)」を参照してください。CodePipeline の料金については、[料金](https://aws.amazon.com/codepipeline/pricing/)を参照してください。

   1. **サービスロール** で、**新しいサービスロール** を選択して、CodePipeline が IAM でサービスロールを作成できるようにします。

   1. [**詳細設定**] をデフォルト設定のままにし、[**次へ**] を選択します。

1. **[ステップ 3: ソースステージの追加]** ページにソースステージを追加するには、以下を行います。

   1. [**ソースプロバイダ**] で、**AWS CodeCommit** を選択します。

   1. [**リポジトリ名**] と [**ブランチ名**] に、ソースアクションに使用するリポジトリとブランチを入力します。

   1. [**次へ**] を選択します。

1. **[ステップ 4: ビルドステージの追加]** で、**[ビルドステージをスキップ]** を選択し、もう一度 **[スキップ]** を選択して警告メッセージを受け入れます。

1. **[ステップ 5: テストステージの追加]** で、**[テストステージをスキップ]** を選択し、もう一度 **[スキップ]** を選択して警告メッセージを受け入れます。

   [**次へ**] を選択します。

1. **[ステップ 6: デプロイステージの追加]** で、以下の手順を実行します。

   1. [**デプロイプロバイダ**] で、[**AWS Service Catalog**] を選択します。

   1. デプロイ設定で、[**Enter deployment configuration (デプロイ設定の入力)**] を選択します。

   1. [**プロダクト ID**] に、Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

   1. [**Template file path (テンプレートファイルパス)**] に、テンプレートファイルが保存されている相対パスを入力します。

   1. [**製品タイプ**] で、[**CloudFormation テンプレート**] を選択します。

   1. [**製品バージョン名**] に、Service Catalog で指定した製品バージョンの名前を入力します。テンプレートの変更を新しい製品バージョンにデプロイする場合は、同じ製品の以前の製品バージョンで使用されていない製品バージョン名を入力します。

   1. [**Input artifact (入力アーティファクト)**] で、ソース入力アーティファクトを選択します。

   1. [**次へ**] を選択します。

1. **[ステップ 7: レビュー]** で、パイプライン設定を確認し、**[作成]** を選択します。

1. パイプラインが正常に実行されたら、デプロイステージで [**Details (詳細)**] を選択します。これにより、Service Catalog で製品が開きます。  
![\[\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. 製品情報で、バージョン名を選択して製品テンプレートを開きます。テンプレートのデプロイを表示します。

### ステップ 4: 変更をプッシュして Service Catalog で製品を確認する
<a name="tutorials-S3-servicecatalog-change"></a>

1. CodePipeline コンソールでパイプラインを表示し、ソースステージで **[詳細]** を選択します。コンソールでソース AWS CodeCommit リポジトリが開きます。[**Edit (編集)**] を選択し、ファイルの内容 (説明など) を変更します。

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. 変更をコミットし、プッシュします。変更をプッシュした後、パイプラインが開始されます。パイプラインの実行が完了したら、デプロイステージで [**詳細**] を選択して、製品を Service Catalog で開きます。

1. 製品情報で、新しいバージョン名を選択して製品テンプレートを開きます。デプロイされたテンプレートの変更を表示します。

## オプション 2: 設定ファイルを使用して Service Catalog にデプロイする
<a name="tutorials-S3-servicecatalog-ex2-configure"></a>

この例では、S3 バケットのサンプル AWS CloudFormation テンプレートファイルをアップロードし、Service Catalog で製品を作成します。デプロイ設定を指定する個別の設定ファイルもアップロードします。次に、パイプラインを作成し、設定ファイルの場所を指定します。

### ステップ 1: サンプルテンプレートファイルをソースリポジトリにアップロードする
<a name="tutorials-S3-servicecatalog-upload2"></a>

1. テキストエディタを開きます。以下のコードをファイルに貼り付けて、サンプルテンプレートを作成します。`S3_template.json` という名前でファイルを保存します。

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   このテンプレートにより AWS CloudFormation 、 は Service Catalog で使用できる S3 バケットを作成できます。

1. `S3_template.json` ファイルを AWS CodeCommit リポジトリにアップロードします。

### ステップ 2: 製品デプロイ設定ファイルを作成する
<a name="tutorials-S3-servicecatalog-configure2"></a>

1. テキストエディタを開きます。製品の設定ファイルを作成します。設定ファイルは、Service Catalog デプロイパラメータ/設定を定義するために使用されます。パイプラインを作成するときに、このファイルを使用します。

   このサンプルでは、`ProductVersionName` を「devops S3 v2」、`ProductVersionDescription` を `MyProductVersionDescription` としています。テンプレートの変更を新しい製品バージョンにデプロイする場合は、同じ製品の以前の製品バージョンで使用されていない製品バージョン名を入力するだけです。

    `sample_config.json` という名前でファイルを保存します。

   ```
   {
       "SchemaVersion": "1.0",
       "ProductVersionName": "devops S3 v2",
       "ProductVersionDescription": "MyProductVersionDescription",
       "ProductType": "CLOUD_FORMATION_TEMPLATE",
       "Properties": {
           "TemplateFilePath": "/S3_template.json"
       }
   }
   ```

   このファイルにより、パイプラインが実行されるたびに製品バージョン情報が作成されます。

1. `sample_config.json` ファイルを AWS CodeCommit リポジトリにアップロードします。必ずこのファイルはソースリポジトリにアップロードしてください。

### ステップ 3: Service Catalog で製品を作成する
<a name="tutorials-S3-servicecatalog-product2"></a>

1. IT 管理者として、Service Catalog コンソールにサインインし、[**製品**] ページに移動して、[**新しい製品のアップロード**] を選択します。

1. [**新しい製品のアップロード**] ページで、以下の手順を実行します。

   1. [**製品名**] に、新しい製品に使用する名前を入力します。

   1. [**Description (説明)**] に製品カタログの説明を入力します。この説明は製品リストに表示されて、ユーザーが正しい製品を選択するのに役立ちます。

   1. [**提供元**] に IT 部門または管理者の名前を入力します。

   1. [**次へ**] を選択します。

1. (オプション) [**サポート詳細の入力**] に、製品サポートの連絡先情報を入力し、[**次へ**] を選択します。

1. [**バージョンの詳細**] に以下の情報を入力します。

   1. [**Upload a template file（テンプレートファイルをアップロード）**] を選択します。`S3_template.json` ファイルを見つけ、アップロードします。

   1. [**バージョンタイトル**] に製品バージョンの名前 (devops S3 v2 など) を入力します。

   1. [**Description (説明)**] に、このバージョンと他のバージョンを区別するための詳細を入力します。

   1. [**次へ**] を選択します。

1. [**Review (確認)**] ページで、情報が正しいことを確認し、[**Confirm and upload (確認してアップロード)**] を選択します。

1. ブラウザの [**製品**] ページで、新しい製品の URL をコピーします。これには製品 ID が含まれています。この製品 ID をコピーして保持します。CodePipeline でパイプラインを作成するときに使用します。

   以下に示しているのは、`my-product` という製品の URL です。製品 ID を抽出するには、等号 (`=`) とアンパサンド (`&`) との間の値をコピーします。この例では、製品 ID は `prod-example123456` です。

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**注記**  
ページから移動する前に、製品の URL をコピーします。このページから移動したら、CLI を使用して製品 ID を取得する必要があります。

   数秒後、製品が [**製品**] ページに表示されます。製品をリストに表示するには、ブラウザの更新が必要になる場合があります。

### ステップ 4: パイプラインを作成する
<a name="tutorials-S3-servicecatalog-pipeline2"></a>

1. パイプラインに名前を付け、パイプラインのパラメータを選択するには、以下の手順を実行します。

   1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) で CodePipeline コンソールを開きます。

   1. [**開始方法**] を選択します。[**パイプラインの作成**] を選択し、パイプラインの名前を入力します。

   1. ** サービスロール ** で、**新しいサービスロール** を選択し、CodePipeline に IAM でのサービスロールの作成を許可します。

   1. [**詳細設定**] をデフォルト設定のままにし、[**次へ**] を選択します。

1. ソースステージを追加するには、以下の手順を実行します。

   1. [**ソースプロバイダ**] で、**AWS CodeCommit** を選択します。

   1. [**リポジトリ名**] と [**ブランチ名**] に、ソースアクションに使用するリポジトリとブランチを入力します。

   1. [**次へ**] を選択します。

1. [**Add build stage (ビルドステージの追加)**] で [**Skip build stage (ビルドステージのスキップ)**] を選択し、もう一度 [**スキップ**] を選択して警告メッセージを受け入れます。

1. [**Add deploy stage (デプロイステージの追加)**] で、以下の手順を実行します。

   1. [**デプロイプロバイダ**] で、[**AWS Service Catalog**] を選択します。

   1. [**設定ファイルの使用**] を選択します。

   1. [**プロダクト ID**] に、Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

   1. [**Configuration file path (設定ファイルのパス)**] に、リポジトリ内の設定ファイルのファイルパスを入力します。

   1. [**次へ**] を選択します。

1. [**確認**] で、パイプライン設定を確認し、[**作成**] を選択します。

1. パイプラインが正常に実行されたら、デプロイステージで [**詳細**] を選択して、製品を Service Catalog で開きます。  
![\[\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. 製品情報で、バージョン名を選択して製品テンプレートを開きます。テンプレートのデプロイを表示します。

### ステップ 5: 変更をプッシュして Service Catalog で製品を確認する
<a name="tutorials-S3-servicecatalog-change2"></a>

1. CodePipeline コンソールでパイプラインを表示し、ソースステージで **[詳細]** を選択します。コンソールでソース AWS CodeCommit リポジトリが開きます。[**Edit (編集)**] を選択して、ファイルの内容 (説明など) を変更します。

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. 変更をコミットし、プッシュします。変更をプッシュした後、パイプラインが開始されます。パイプラインの実行が完了したら、デプロイステージで [**詳細**] を選択して、製品を Service Catalog で開きます。

1. 製品情報で、新しいバージョン名を選択して製品テンプレートを開きます。デプロイされたテンプレートの変更を表示します。