

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

# Buat proyek build dengan banyak input dan output
<a name="sample-multi-in-out-create"></a>

Gunakan prosedur berikut untuk membuat proyek build dengan beberapa input dan output.

**Untuk membuat proyek build dengan beberapa input dan output**

1.  Unggah sumber Anda ke satu atau beberapa bucket S3,, Server GitHub Perusahaan CodeCommit GitHub, atau repositori Bitbucket. 

1.  Pilih sumber mana yang menjadi sumber utama. Ini adalah sumber di mana CodeBuild mencari dan menjalankan file buildspec Anda. 

1.  Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build di AWS CodeBuild](create-project.md). 

1.  Buat proyek build Anda, jalankan build, dan dapatkan informasi tentang build. 

1.  Jika Anda menggunakan AWS CLI untuk membuat proyek build, JSON-formatted input ke `create-project` perintah mungkin terlihat mirip dengan yang berikut ini: 

   ```
   {
     "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"
   }
   ```

 Sumber utama Anda didefinisikan di bawah `source` atribut. Semua sumber lain disebut sumber sekunder dan muncul di bawah`secondarySources`. Semua sumber sekunder dipasang di direktori mereka sendiri. Direktori ini disimpan dalam variabel lingkungan bawaan`CODEBUILD_SRC_DIR_{{sourceIdentifer}}`. Untuk informasi selengkapnya, lihat [Variabel lingkungan di lingkungan build](build-env-ref-env-vars.md). 

 `secondaryArtifacts`Atribut berisi daftar definisi artefak. Artefak ini menggunakan `secondary-artifacts` blok file buildspec yang bersarang di dalam blok. `artifacts` 

 Artefak sekunder dalam file buildspec memiliki struktur yang sama dengan artefak dan dipisahkan oleh pengenal artefaknya. 

**catatan**  
 Di [CodeBuild API](https://docs.aws.amazon.com/codebuild/latest/APIReference/), artefak sekunder `artifactIdentifier` pada adalah atribut wajib di `CreateProject` dan`UpdateProject`. Ini harus digunakan untuk referensi artefak sekunder. 

 Menggunakan JSON-formatted input sebelumnya, file buildspec untuk proyek mungkin terlihat seperti: 

```
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
```

 Anda dapat mengganti versi sumber utama menggunakan API dengan `sourceVersion` atribut di`StartBuild`. Untuk mengganti satu atau beberapa versi sumber sekunder, gunakan `secondarySourceVersionOverride` atribut. 

 JSON-formatted Masukan ke `start-build` perintah di AWS CLI mungkin terlihat seperti: 

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