

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, input berformat JSON ke `create-project` perintah mungkin terlihat mirip dengan yang berikut: 

   ```
   {
     "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 input berformat JSON 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. 

 Input berformat JSON ke `start-build` perintah di mungkin terlihat seperti: AWS CLI 

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