

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS CodePipeline sampel untuk CodeBuild
<a name="sample-codepipeline"></a>

Bagian ini menjelaskan integrasi sampel antara CodePipeline dan CodeBuild.


| Sampel | Deskripsi | 
| --- | --- | 
|  [Sampel CodePipeline/CodeBuild integrasi dan pembuatan batch](#sample-pipeline-batch)  |  Sampel ini mendemonstrasikan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan build batch.  | 
|  [Contoh CodePipeline/CodeBuild integrasi dengan beberapa sumber input dan artefak keluaran](#sample-pipeline-multi-input-output)  |  Contoh ini menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan beberapa sumber input untuk membuat beberapa artefak keluaran.  | 

## Sampel CodePipeline/CodeBuild integrasi dan pembuatan batch
<a name="sample-pipeline-batch"></a>

AWS CodeBuild mendukung pembuatan batch. Contoh berikut menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan build batch.

Anda dapat menggunakan file berformat JSON yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan file untuk membuat pipeline. AWS CLI Untuk informasi selengkapnya, lihat [Referensi struktur AWS CodePipeline pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) di *Panduan AWS CodePipeline Pengguna*.

### Batch build dengan artefak individual
<a name="sample-pipeline-batch.separate-artifacts"></a>

Gunakan file JSON berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak terpisah. Untuk mengaktifkan batch build in CodePipeline, atur `BatchEnabled` parameter `configuration` objek ke`true`.

```
{
  "pipeline": {
    "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
    "stages": [
      {
        "name": "Source",
        "actions": [
          {
            "inputArtifacts": [],
            "name": "Source1",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source1"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-input-bucket-name>",
              "S3ObjectKey": "my-source-code-file-name.zip"
            },
            "runOrder": 1
          },
          {
            "inputArtifacts": [],
            "name": "Source2",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source2"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-other-input-bucket-name>",
              "S3ObjectKey": "my-other-source-code-file-name.zip"
            },
            "runOrder": 1
          }
        ]
      },
      {
        "name": "Build",
        "actions": [
          {
            "inputArtifacts": [
              {
                "name": "source1"
              },
              {
                "name": "source2"
              }
            ],
            "name": "Build",
            "actionTypeId": {
              "category": "Build",
              "owner": "AWS",
              "version": "1",
              "provider": "CodeBuild"
            },
            "outputArtifacts": [
              {
                "name": "build1"
              },
              {
                "name": "build1_artifact1"
              },
              {
                "name": "build1_artifact2"
              },
              {
                "name": "build2_artifact1"
              },
              {
                "name": "build2_artifact2"
              }
            ],
            "configuration": {
              "ProjectName": "my-build-project-name",
              "PrimarySource": "source1",
              "BatchEnabled": "true"
            },
            "runOrder": 1
          }
        ]
      }
    ],
    "artifactStore": {
      "type": "S3",
      "location": "<AWS-CodePipeline-internal-bucket-name>"
    },
    "name": "my-pipeline-name",
    "version": 1
  }
}
```

Berikut ini adalah contoh file CodeBuild buildspec yang akan bekerja dengan konfigurasi pipeline ini.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
  secondary-artifacts:
    artifact1:
      files:
        - output_file
    artifact2:
      files:
        - output_file
```

Nama artefak keluaran yang ditentukan dalam file JSON pipeline harus cocok dengan pengenal build dan artefak yang ditentukan dalam file buildspec Anda. Sintaksnya adalah *buildIdentifier* untuk artefak primer, dan *buildIdentifier* \$1 *artifactIdentifier* untuk artefak sekunder.

Misalnya, untuk nama artefak keluaran`build1`, CodeBuild akan mengunggah artefak utama `build1` ke lokasi. `build1` Untuk nama output`build1_artifact1`, CodeBuild akan mengunggah `artifact1` artefak sekunder `build1` ke lokasi`build1_artifact1`, dan sebagainya. Jika hanya satu lokasi output yang ditentukan, nama seharusnya *buildIdentifier* hanya.

Setelah Anda membuat file JSON, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah **create-pipeline** dan meneruskan file ke parameter. `--cli-input-json` Untuk informasi selengkapnya, lihat [Membuat pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) di *AWS CodePipeline Panduan Pengguna*. 

### Batch build dengan artefak gabungan
<a name="sample-pipeline-batch.combined-artifacts"></a>

Gunakan file JSON berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak gabungan. Untuk mengaktifkan batch build in CodePipeline, atur `BatchEnabled` parameter `configuration` objek ke`true`. Untuk menggabungkan artefak build ke lokasi yang sama, atur `CombineArtifacts` parameter `configuration` objek ke`true`.

```
{
 "pipeline": {
  "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
  "stages": [
    {
      "name": "Source",
      "actions": [
        {
          "inputArtifacts": [],
          "name": "Source1",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source1"
            }
          ],
          "configuration": {
            "S3Bucket": "<my-input-bucket-name>",
            "S3ObjectKey": "my-source-code-file-name.zip"
          },
          "runOrder": 1
        },
        {
          "inputArtifacts": [],
          "name": "Source2",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source2"
            }
          ],
          "configuration": {
            "S3Bucket": "<my-other-input-bucket-name>",
            "S3ObjectKey": "my-other-source-code-file-name.zip"
          },
          "runOrder": 1
        }
      ]
    },
    {
      "name": "Build",
      "actions": [
        {
          "inputArtifacts": [
            {
              "name": "source1"
            },
            {
              "name": "source2"
            }
          ],
          "name": "Build",
          "actionTypeId": {
            "category": "Build",
            "owner": "AWS",
            "version": "1",
            "provider": "CodeBuild"
          },
          "outputArtifacts": [
            {
              "name": "output1 "
            }
          ],
          "configuration": {
            "ProjectName": "my-build-project-name",
            "PrimarySource": "source1",
             "BatchEnabled": "true",
             "CombineArtifacts": "true"
          },
          "runOrder": 1
        }
      ]
    }
  ],
  "artifactStore": {
    "type": "S3",
    "location": "<AWS-CodePipeline-internal-bucket-name>"
  },
  "name": "my-pipeline-name",
  "version": 1
 }
}
```

Berikut ini adalah contoh file CodeBuild buildspec yang akan bekerja dengan konfigurasi pipeline ini.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
```

Jika artefak gabungan diaktifkan untuk pembuatan batch, hanya ada satu output yang diizinkan. CodeBuild akan menggabungkan artefak utama dari semua build menjadi satu file ZIP tunggal.

Setelah Anda membuat file JSON, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah **create-pipeline** dan meneruskan file ke parameter. `--cli-input-json` Untuk informasi selengkapnya, lihat [Membuat pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) di *AWS CodePipeline Panduan Pengguna*. 

## Contoh CodePipeline/CodeBuild integrasi dengan beberapa sumber input dan artefak keluaran
<a name="sample-pipeline-multi-input-output"></a>

Sebuah AWS CodeBuild proyek dapat mengambil lebih dari satu sumber input. Itu juga dapat membuat lebih dari satu artefak keluaran. Contoh ini menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan beberapa sumber input untuk membuat beberapa artefak keluaran. Untuk informasi selengkapnya, lihat [Beberapa sumber input dan sampel artefak keluaran](sample-multi-in-out.md).

Anda dapat menggunakan file berformat JSON yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan file untuk membuat pipeline. AWS CLI Gunakan file JSON berikut sebagai contoh struktur pipa yang membuat build dengan lebih dari satu sumber input dan lebih dari satu artefak keluaran. Kemudian dalam contoh ini Anda melihat bagaimana file ini menentukan beberapa input dan output. Untuk informasi selengkapnya, lihat [referensi struktur CodePipeline pipa](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) di *Panduan AWS CodePipeline Pengguna*.

```
{
 "pipeline": {
  "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
  "stages": [
    {
      "name": "Source",
      "actions": [
        {
          "inputArtifacts": [],
          "name": "Source1",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source1"
            }
          ],
          "configuration": {
            "S3Bucket": "my-input-bucket-name",
            "S3ObjectKey": "my-source-code-file-name.zip"
          },
          "runOrder": 1
        },
        {
          "inputArtifacts": [],
          "name": "Source2",
          "actionTypeId": {
            "category": "Source",
            "owner": "AWS",
            "version": "1",
            "provider": "S3"
          },
          "outputArtifacts": [
            {
              "name": "source2"
            }
          ],
          "configuration": {
            "S3Bucket": "my-other-input-bucket-name",
            "S3ObjectKey": "my-other-source-code-file-name.zip"
          },
          "runOrder": 1
        }
      ]
    },
    {
      "name": "Build",
      "actions": [
        {
          "inputArtifacts": [
            {
              "name": "source1"
            },
            {
              "name": "source2"
            }
          ],
          "name": "Build",
          "actionTypeId": {
            "category": "Build",
            "owner": "AWS",
            "version": "1",
            "provider": "AWS CodeBuild"
          },
          "outputArtifacts": [
            {
              "name": "artifact1"
            },
            {
              "name": "artifact2"
            }
          ],
          "configuration": {
            "ProjectName": "my-build-project-name",
            "PrimarySource": "source1"
          },
          "runOrder": 1
        }
      ]
    }
  ],
  "artifactStore": {
    "type": "S3",
    "location": "AWS-CodePipeline-internal-bucket-name"
  },
  "name": "my-pipeline-name",
  "version": 1
 }
}
```

 Dalam file JSON ini: 
+ Salah satu sumber input Anda harus ditunjuk`PrimarySource`. Sumber ini adalah direktori tempat CodeBuild mencari dan menjalankan file buildspec Anda. Kata kunci `PrimarySource` digunakan untuk menentukan sumber utama di `configuration` bagian CodeBuild tahap dalam file JSON. 
+ Setiap sumber input dipasang di direktorinya sendiri. Direktori ini disimpan dalam variabel lingkungan bawaan `$CODEBUILD_SRC_DIR` untuk sumber utama dan `$CODEBUILD_SRC_DIR_yourInputArtifactName` untuk semua sumber lainnya. Untuk pipeline dalam sampel ini, dua direktori sumber input adalah `$CODEBUILD_SRC_DIR` dan`$CODEBUILD_SRC_DIR_source2`. Untuk informasi selengkapnya, lihat [Variabel lingkungan di lingkungan build](build-env-ref-env-vars.md). 
+ Nama artefak keluaran yang ditentukan dalam file JSON pipeline harus cocok dengan nama artefak sekunder yang ditentukan dalam file buildspec Anda. Pipeline ini menggunakan file buildspec berikut. Untuk informasi selengkapnya, lihat [Sintaks Buildspec](build-spec-ref.md#build-spec-ref-syntax). 

  ```
  version: 0.2
  
  phases:
    build:
      commands:
        - touch source1_file
        - cd $CODEBUILD_SRC_DIR_source2
        - touch source2_file
  
  artifacts:
    files:
      - '**/*'
    secondary-artifacts:
      artifact1:
        base-directory: $CODEBUILD_SRC_DIR
        files:
          - source1_file
      artifact2:
        base-directory: $CODEBUILD_SRC_DIR_source2
        files:
          - source2_file
  ```

 Setelah Anda membuat file JSON, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah **create-pipeline** dan meneruskan file ke parameter. `--cli-input-json` Untuk informasi selengkapnya, lihat [Membuat pipeline (CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli) di *AWS CodePipeline Panduan Pengguna*. 