

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

# Beberapa sumber input dan sampel artefak keluaran
<a name="sample-multi-in-out"></a>

Anda dapat membuat proyek AWS CodeBuild build dengan lebih dari satu sumber input dan lebih dari satu set artefak keluaran. Contoh ini menunjukkan cara menyiapkan proyek build yang: 
+ Menggunakan berbagai sumber dan repositori dari berbagai jenis.
+ Menerbitkan artefak build ke beberapa bucket S3 dalam satu build.

 Dalam contoh berikut, Anda membuat proyek build dan menggunakannya untuk menjalankan build. Sampel menggunakan file buildspec proyek build untuk menunjukkan cara menggabungkan lebih dari satu sumber dan membuat lebih dari satu set artefak. 

Untuk mempelajari cara membuat pipeline yang menggunakan beberapa input sumber CodeBuild untuk membuat beberapa artefak keluaran, lihat. [Contoh CodePipeline/CodeBuild integrasi dengan beberapa sumber input dan artefak keluaran](sample-codepipeline.md#sample-pipeline-multi-input-output)

**Topics**
+ [Buat proyek build dengan banyak input dan output](sample-multi-in-out-create.md)
+ [Buat proyek build tanpa sumber](no-source.md)

# 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"
      },
   ]
}
```

# Buat proyek build tanpa sumber
<a name="no-source"></a>

 Anda dapat mengonfigurasi CodeBuild proyek dengan memilih jenis **NO\$1SOURCE** sumber saat Anda mengonfigurasi sumber Anda. Ketika tipe sumber Anda**NO\$1SOURCE**, Anda tidak dapat menentukan file buildspec karena proyek Anda tidak memiliki sumber. Sebagai gantinya, Anda harus menentukan string buildspec berformat Yaml dalam `buildspec` atribut input berformat JSON ke perintah CLI. `create-project` Manajer tersebut mungkin akan terlihat seperti ini: 

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

Untuk informasi selengkapnya, lihat [Buat proyek build (AWS CLI)](create-project.md#create-project-cli).