

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

# 複数の入力ソースと出力アーティファクトのサンプル
<a name="sample-multi-in-out"></a>

複数の入力ソースと複数の出力アーティファクトのセットを持つ AWS CodeBuild ビルドプロジェクトを作成できます。このサンプルは、ビルドプロジェクトをセットアップする方法を示しています。
+ さまざまなタイプの複数のソースとリポジトリを使用します。
+ ビルドアーティファクトを複数の S3 バケットに 1 つのビルドで発行します。

 次のサンプルでは、ビルドプロジェクトを作成し、それを使用してビルドを実行します。このサンプルでは、ビルドプロジェクトの buildspec ファイルを使用して、複数のソースを組み込み、複数のアーティファクトセットを作成する方法を示します。

CodeBuild への複数のソース入力を使用して複数の出力アーティファクトを作成するパイプラインの作成方法については、「[複数の入力ソースおよび出力アーティファクトを持つ CodePipeline/CodeBuild の統合のサンプル](sample-codepipeline.md#sample-pipeline-multi-input-output)」を参照してください。

**Topics**
+ [複数の入力と出力を持つビルドプロジェクトを作成](sample-multi-in-out-create.md)
+ [ソースなしでビルドプロジェクトを作成](no-source.md)

# 複数の入力と出力を持つビルドプロジェクトを作成
<a name="sample-multi-in-out-create"></a>

次の手順を使用して、複数の入力と出力を持つビルドプロジェクトを作成します。

**複数の入力と出力を持つビルドプロジェクトを作成するには**

1.  ソースを 1 つ以上の S3 バケットにアップロードするか、1 つ以上の CodeCommit、GitHub、GitHub Enterprise Server、または Bitbucket リポジトリにアップロードします。

1.  プライマリソースを選択します。これは、CodeBuild が buildspec ファイルを探して実行するソースです。

1.  ビルドプロジェクトを作成します。詳細については、「[でのビルドプロジェクトの作成AWS CodeBuild](create-project.md)」を参照してください。

1.  ビルドプロジェクトを作成し、ビルドを実行して、ビルドに関する情報を取得します。

1.  AWS CLI を使用してビルドプロジェクトを作成する場合、`create-project` コマンドへの JSON 形式の入力は次のようになります。

   ```
   {
     "name": "sample-project",
     "source": {
       "type": "S3",
       "location": "<bucket/sample.zip>"
     },
     "secondarySources": [
       {
         "type": "CODECOMMIT",
         "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo",
         "sourceIdentifier": "source1"
       },
       {
         "type": "GITHUB",
         "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin",
         "sourceIdentifier": "source2"
       }
     ],
     "secondaryArtifacts": [ss
       {
         "type": "S3",
         "location": "<output-bucket>",
         "artifactIdentifier": "artifact1"
       },
       {
         "type": "S3",
         "location": "<other-output-bucket>",
         "artifactIdentifier": "artifact2"
       }
     ],
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "aws/codebuild/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name",
     "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
   }
   ```

 プライマリソースは、`source` 属性で定義されます。他のすべてのソースはセカンダリソースと呼ばれ、`secondarySources` の下に表示されます。すべてのセカンダリソースは、独自のディレクトリにインストールされます。このディレクトリは、組み込みの環境変数 `CODEBUILD_SRC_DIR_sourceIdentifer` に保存されます。詳細については、「[ビルド環境の環境変数](build-env-ref-env-vars.md)」を参照してください。

 `secondaryArtifacts` 属性には、アーティファクトの定義のリストが含まれます。これらのアーティファクトは、`secondary-artifacts` ブロック内にネストされている buildspec ファイルの `artifacts` ブロックを使用します。

 buildspec ファイル内のセカンダリアーティファクトは、アーティファクトと同じ構造を持ち、アーティファクト識別子で区切られます。

**注記**  
 [CodeBuild API](https://docs.aws.amazon.com/codebuild/latest/APIReference/) で、セカンダリアーティファクトの `artifactIdentifier` は、`CreateProject` および `UpdateProject` で必須の属性です。セカンダリアーティファクトを参照するために使用される必要があります。

 前述の JSON 形式の入力を使用すると、プロジェクトの buildspec ファイルは次のようになります。

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: openjdk11
  build:
    commands:
      - cd $CODEBUILD_SRC_DIR_source1
      - touch file1
      - cd $CODEBUILD_SRC_DIR_source2
      - touch file2

artifacts:
  files:
    - '**.*'
  secondary-artifacts:
    artifact1:
      base-directory: $CODEBUILD_SRC_DIR_source1
      files:
        - file1
    artifact2:
      base-directory: $CODEBUILD_SRC_DIR_source2
      files:
        - file2
```

 `sourceVersion` の `StartBuild` 属性で API を使用して、プライマリソースのバージョンを上書きすることができます。1 つまたは複数のセカンダリソースバージョンを上書きするには、`secondarySourceVersionOverride` 属性を使用します。

 `start-build` の AWS CLI コマンドへの JSON 形式の入力は次のようになります。

```
{
   "projectName": "sample-project",
   "secondarySourcesVersionOverride": [
      {
        "sourceIdentifier": "source1",
        "sourceVersion": "codecommit-branch"
      },
      {
        "sourceIdentifier": "source2",
        "sourceVersion": "github-branch"
      },
   ]
}
```

# ソースなしでビルドプロジェクトを作成
<a name="no-source"></a>

 ソースを設定するときに、「**NO\$1SOURCE**」ソースタイプを選択することによって CodeBuild プロジェクトを構成できます。ソースタイプが **NO\$1SOURCE** である場合、プロジェクトにはソースがないため、buildspec ファイルを指定することはできません。代わりに、CLI の `buildspec` コマンドに対する JSON 形式の入力の `create-project` 属性で、YAML 形式の buildspec 文字列を指定する必要があります。次のように指定します。

```
{
  "name": "project-name",
  "source": {
    "type": "NO_SOURCE",
    "buildspec": "version: 0.2\n\nphases:\n  build:\n    commands:\n      - command"
   },
  "environment": {
    "type": "LINUX_CONTAINER",
    "image": "aws/codebuild/standard:5.0",
    "computeType": "BUILD_GENERAL1_SMALL",    
  },
  "serviceRole": "arn:aws:iam::account-ID:role/role-name",
  "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
}
```

詳細については、「[ビルドプロジェクトの作成 (AWS CLI)](create-project.md#create-project-cli)」を参照してください。