

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

# Membangun di AWS CodeBuild
<a name="builds-working"></a>

*Build* mewakili serangkaian tindakan yang dilakukan oleh AWS CodeBuild untuk membuat artefak keluaran (misalnya, file JAR) berdasarkan sekumpulan artefak masukan (misalnya, kumpulan file kelas Java).

Aturan berikut berlaku saat Anda menjalankan beberapa build:
+ Jika memungkinkan, build berjalan secara bersamaan. Jumlah maksimum build yang berjalan secara bersamaan dapat bervariasi. Untuk informasi selengkapnya, lihat [Kuota untuk AWS CodeBuild](limits.md). 
+ Jika proyek build memiliki set batas build bersamaan, build akan menampilkan error jika jumlah build yang berjalan mencapai batas build bersamaan untuk project tersebut. Untuk informasi selengkapnya, lihat [Mengaktifkan batas build bersamaan](create-project.md#enable-concurrent-build-limit.console).
+ Jika proyek build tidak memiliki set batas build bersamaan, build akan diantrian jika jumlah build yang berjalan mencapai batas build bersamaan untuk platform dan tipe komputasi. Jumlah maksimum build dalam antrian adalah lima kali batas build bersamaan. Untuk informasi selengkapnya, lihat [Kuota untuk AWS CodeBuild](limits.md).

  Build dalam antrian yang tidak dimulai setelah jumlah menit yang ditentukan dalam nilai waktu habis dihapus dari antrian. Nilai batas waktu default adalah delapan jam. Anda dapat mengganti batas waktu antrean build dengan nilai antara lima menit dan delapan jam saat menjalankan build. Untuk informasi selengkapnya, lihat [Jalankan AWS CodeBuild build secara manual](run-build.md).

  Tidak mungkin memprediksi urutan pembuatan antrian dimulai. 

**catatan**  
Anda dapat mengakses sejarah bangunan selama satu tahun.

Anda dapat melakukan tugas-tugas ini saat bekerja dengan build:

**Topics**
+ [Jalankan AWS CodeBuild build secara manual](run-build.md)
+ [Jalankan build pada komputasi AWS Lambda](lambda.md)
+ [Jalankan build di atas armada kapasitas cadangan](fleets.md)
+ [Jalankan build dalam batch](batch-build.md)
+ [Jalankan tes paralel dalam build batch](parallel-test.md)
+ [Cache dibangun untuk meningkatkan kinerja](build-caching.md)
+ [Debug dibangun di AWS CodeBuild](debug-builds.md)
+ [Hapus build di AWS CodeBuild](delete-builds.md)
+ [Coba lagi buat secara manual di AWS CodeBuild](retry-build.md)
+ [Coba lagi membangun secara otomatis di AWS CodeBuild](auto-retry-build.md)
+ [Berhenti membangun di AWS CodeBuild](stop-build.md)
+ [Hentikan pembuatan batch AWS CodeBuild](stop-batch-build.md)
+ [Pemicu AWS CodeBuild dibangun secara otomatis](build-triggers.md)
+ [Lihat detail build di AWS CodeBuild](view-build-details.md)
+ [Lihat daftar build IDs in AWS CodeBuild](view-build-list.md)
+ [Lihat daftar build IDs untuk proyek build di AWS CodeBuild](view-builds-for-project.md)

# Jalankan AWS CodeBuild build secara manual
<a name="run-build"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs menjalankan build in CodeBuild.

**Topics**
+ [Jalankan build secara lokal dengan agen AWS CodeBuild](use-codebuild-agent.md)
+ [Jalankan build (konsol)](run-build-console.md)
+ [Jalankan build (AWS CLI)](run-build-cli.md)
+ [Jalankan batch build (AWS CLI)](run-batch-build-cli.md)
+ [Mulai menjalankan build secara otomatis ()AWS CLI](run-build-cli-auto-start.md)
+ [Berhenti menjalankan build secara otomatis ()AWS CLI](run-build-cli-auto-stop.md)
+ [Jalankan build (AWS SDKs)](run-build-sdks.md)

# Jalankan build secara lokal dengan agen AWS CodeBuild
<a name="use-codebuild-agent"></a>

Anda dapat menggunakan AWS CodeBuild agen untuk menjalankan CodeBuild build di mesin lokal. Ada agen yang tersedia untuk platform x86\$164 dan ARM.

Anda juga dapat berlangganan untuk menerima pemberitahuan ketika versi baru agen diterbitkan. 

## Prasyarat
<a name="use-codebuild-agent.prerequisites"></a>

Sebelum Anda mulai, Anda perlu melakukan hal berikut:
+ Instal Git di mesin lokal Anda.
+ Instal dan atur [Docker](https://www.docker.com/) di mesin lokal Anda.

## Siapkan image build
<a name="use-codebuild-agent.setup-image"></a>

Anda hanya perlu menyiapkan image build saat pertama kali menjalankan agen, atau saat gambar telah berubah.

**Untuk mengatur image build**

1. [Jika Anda ingin menggunakan image Amazon Linux 2 yang dikurasi, Anda dapat menariknya dari repositori Amazon ECR CodeBuild publik di https://gallery.ecr. aws/codebuild/amazonlinux-x86\$164-standard](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard) dengan perintah berikut:

   ```
   $ docker pull public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0
   ```

   Atau, jika Anda ingin menggunakan image Linux lain, lakukan langkah-langkah berikut:

   1. Kloning repo CodeBuild gambar:

      ```
      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
      ```

   1. Ubah ke direktori gambar. Untuk contoh ini, gunakan `aws/codebuild/standard:5.0` gambar:

      ```
      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
      ```

   1. Bangun gambar. Ini akan memakan waktu beberapa menit. 

      ```
      $ docker build -t aws/codebuild/standard:5.0 .
      ```

1. Unduh CodeBuild agennya.

   Untuk mengunduh agen versi x86\$164, jalankan perintah berikut:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:latest
   ```

   Untuk mengunduh versi ARM agen, jalankan perintah berikut:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
   ```

1. <a name="codebuild-agent-sha"></a> CodeBuild Agen tersedia dari [https://gallery.ecr. aws/codebuild/local-membangun](https://gallery.ecr.aws/codebuild/local-builds). 

   Tanda tangan Secure Hash Algorithm (SHA) untuk agen versi x86\$164 adalah:

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   Tanda tangan SHA untuk versi ARM agen adalah:

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   Anda dapat menggunakan SHA untuk mengidentifikasi versi agen. Untuk melihat tanda tangan SHA agen, jalankan perintah berikut dan cari SHA di bawah`RepoDigests`: 

   ```
   $ docker inspect public.ecr.aws/codebuild/local-builds:latest
   ```

## Jalankan CodeBuild agen
<a name="use-codebuild-agent.run-agent"></a>

**Untuk menjalankan CodeBuild agen**

1. Ubah ke direktori yang berisi sumber proyek build Anda.

1. Unduh skrip [codebuild\$1build.sh](https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh):

   ```
   $ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
   $ chmod +x codebuild_build.sh
   ```

1. Jalankan `codebuild_build.sh` skrip dan tentukan gambar kontainer Anda dan direktori output.

   Untuk menjalankan build x86\$164, jalankan perintah berikut:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory>
   ```

   Untuk menjalankan ARM build, jalankan perintah berikut:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64
   ```

   Ganti *<container-image>* dengan nama gambar kontainer, seperti `aws/codebuild/standard:5.0` atau`public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0`.

   Skrip meluncurkan image build dan menjalankan build pada proyek di direktori saat ini. Untuk menentukan lokasi proyek build, tambahkan `-s <build project directory>` opsi ke perintah skrip.

## Menerima pemberitahuan untuk versi CodeBuild agen baru
<a name="receive-codebuild-agent-notifications"></a>

Anda dapat berlangganan notifikasi Amazon SNS sehingga Anda akan diberi tahu saat versi baru AWS CodeBuild agen dirilis. 

**Untuk berlangganan pemberitahuan CodeBuild agen**

1. [Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home) 

1. Di bilah navigasi, jika belum dipilih, ubah AWS Region ke **US East (Virginia N.)**. Anda harus memilih AWS Wilayah ini karena notifikasi Amazon SNS yang Anda berlangganan dibuat di Wilayah ini. 

1. Di panel navigasi, pilih **Langganan**. 

1. Pilih **Buat langganan**. 

1. Di **Buat langganan**, lakukan hal berikut: 

   1. Untuk **ARN Topik**, salin Amazon Resource Name (ARN) berikut: 

      ```
      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
      ```

   1. Untuk **Protokol**, pilih **Email** atau **SMS**. 

   1. Untuk **Endpoint**, pilih tempat (email atau SMS) untuk menerima notifikasi. Masukkan email atau alamat atau nomor telepon, termasuk kode area. 

   1. Pilih **Buat langganan**. 

   1. Pilih **Email** untuk menerima email yang meminta Anda mengonfirmasi langganan Anda. Ikuti petunjuk di email untuk menyelesaikan langganan Anda. 

      Jika Anda tidak ingin lagi menerima notifikasi ini, gunakan prosedur berikut untuk berhenti berlangganan. 

**Untuk berhenti berlangganan pemberitahuan CodeBuild agen**

1. [Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home) 

1. Di panel navigasi, pilih **Langganan**. 

1. Pilih langganan dan dari **Tindakan**, pilih **Hapus langganan**. Ketika diminta untuk mengonfirmasi, pilih **Hapus**. 

# Jalankan build (konsol)
<a name="run-build-console"></a>

Untuk menggunakan AWS CodePipeline untuk menjalankan build dengan CodeBuild, lewati langkah-langkah ini dan ikuti instruksi di[Gunakan CodeBuild dengan CodePipeline](how-to-create-pipeline.md).

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**.

1. Dalam daftar proyek build, pilih proyek build.

1. Anda dapat menjalankan build dengan setelan proyek build default, atau mengganti setelan build hanya untuk build ini.

   1. Jika Anda ingin menjalankan build dengan pengaturan proyek build default, pilih **Start build**. Membangun segera dimulai.

   1. Jika Anda ingin mengganti setelan proyek build default, pilih **Start build with overrides**. Di halaman **Mulai build**, Anda dapat mengganti yang berikut ini:
      + **Membangun konfigurasi**
      + **Sumber**
      + **Pengganti variabel lingkungan**

      Jika Anda perlu memilih penggantian lanjutan lainnya, pilih Pengganti **build lanjutan**. Di halaman ini, Anda dapat mengganti yang berikut ini:
      + **Membangun konfigurasi**
      + **Sumber**
      + **Lingkungan**
      + **Buildspec**
      + **Artefak**
      + **Log**

      Ketika Anda telah membuat pilihan penggantian, pilih **Mulai** build.

Untuk informasi rinci tentang build ini, lihat[Lihat detail build (konsol)](view-build-details.md#view-build-details-console).

# Jalankan build (AWS CLI)
<a name="run-build-cli"></a>

**catatan**  
Untuk menggunakan CodePipeline untuk menjalankan build dengan AWS CodeBuild, lewati langkah-langkah ini dan ikuti instruksi di[Buat pipeline yang menggunakan CodeBuild (AWS CLI)](how-to-create-pipeline-cli.md).  
Untuk informasi lebih lanjut tentang menggunakan AWS CLI with CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).

1. Jalankan `start-build` perintah dengan salah satu cara berikut:

   ```
   aws codebuild start-build --project-name <project-name>
   ```

   Gunakan ini jika Anda ingin menjalankan build yang menggunakan artefak input build versi terbaru dan setelan proyek build yang ada.

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   Gunakan ini jika Anda ingin menjalankan build dengan artefak input build versi sebelumnya atau jika Anda ingin mengganti pengaturan untuk artefak keluaran build, variabel lingkungan, buildspec, atau periode batas waktu build default.

1. Jika Anda menjalankan **start-build** perintah dengan `--project-name` opsi, ganti *<project-name>* dengan nama proyek build, lalu lewati ke langkah 6 dari prosedur ini. Untuk mendapatkan daftar proyek pembangunan, lihat[Lihat nama proyek build](view-project-list.md).

1. Jika Anda menjalankan **start-build** perintah dengan `--idempotency-token` opsi, pengidentifikasi atau token peka huruf besar/kecil yang unik, disertakan dengan permintaan. `start-build` Token berlaku selama 5 menit setelah permintaan. Jika Anda mengulangi `start-build` permintaan dengan token yang sama, tetapi mengubah parameter, CodeBuild mengembalikan kesalahan ketidakcocokan parameter.

1. Jika Anda menjalankan **start-build** perintah dengan `--generate-cli-skeleton` opsi, data berformat JSON muncul di output. Salin data ke file (misalnya,`start-build.json`) di lokasi di komputer lokal atau contoh di AWS CLI mana diinstal. Ubah data yang disalin agar sesuai dengan format berikut, dan simpan hasil Anda:

   ```
   {
     "projectName": "projectName",
     "sourceVersion": "sourceVersion",
     "artifactsOverride": {
       "type": "type",
       "location": "location",
       "path": "path",
       "namespaceType": "namespaceType",
       "name": "artifactsOverride-name",
       "packaging": "packaging"
     },
     "buildspecOverride": "buildspecOverride",
     "cacheOverride": {
       "location": "cacheOverride-location",
       "type": "cacheOverride-type"
     },
     "certificateOverride": "certificateOverride",
     "computeTypeOverride": "computeTypeOverride",
     "environmentTypeOverride": "environmentTypeOverride",
     "environmentVariablesOverride": {
       "name": "environmentVariablesOverride-name",
       "value": "environmentVariablesValue",
       "type": "environmentVariablesOverride-type"
     },
     "gitCloneDepthOverride": "gitCloneDepthOverride",
     "imageOverride": "imageOverride",
     "idempotencyToken": "idempotencyToken",
     "insecureSslOverride": "insecureSslOverride",
     "privilegedModeOverride": "privilegedModeOverride",
     "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride",
     "reportBuildStatusOverride": "reportBuildStatusOverride",
     "timeoutInMinutesOverride": "timeoutInMinutesOverride",
     "sourceAuthOverride": "sourceAuthOverride",
     "sourceLocationOverride": "sourceLocationOverride",
     "serviceRoleOverride": "serviceRoleOverride",
     "sourceTypeOverride": "sourceTypeOverride"
   }
   ```

   Ganti placeholder berikut:
   + *projectName*: String yang dibutuhkan. Nama proyek build yang akan digunakan untuk build ini. 
   + *sourceVersion*: String opsional. Versi kode sumber yang akan dibangun, sebagai berikut:
     + Untuk Amazon S3, ID versi yang sesuai dengan versi file ZIP input yang ingin Anda buat. Jika tidak *sourceVersion* ditentukan, maka versi terbaru digunakan.
     + Untuk CodeCommit, ID komit yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika tidak *sourceVersion* ditentukan, ID komit HEAD cabang default digunakan. (Anda tidak dapat menentukan nama tag untuk*sourceVersion*, tetapi Anda dapat menentukan ID komit tag.)
     + Untuk GitHub, ID komit, ID permintaan tarik, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika ID permintaan tarik ditentukan, ia harus menggunakan format `pr/pull-request-ID` (misalnya `pr/25`). Jika nama cabang ditentukan, ID melakukan HEAD cabang digunakan. Jika tidak *sourceVersion* ditentukan, ID komit HEAD cabang default digunakan. 
     + Untuk Bitbucket, ID komit, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika nama cabang ditentukan, ID melakukan HEAD cabang digunakan. Jika tidak *sourceVersion* ditentukan, ID komit HEAD cabang default digunakan. 
   + Placeholder berikut adalah untuk. `artifactsOverride`
     + *type*: Opsional. Jenis artefak keluaran build yang menggantikan build ini adalah yang ditentukan dalam proyek build.
     + *location*: Opsional. Lokasi artefak keluaran build yang menggantikan build ini adalah lokasi yang ditentukan dalam proyek build.
     + *path*: Opsional. Jalur artefak keluaran build yang menggantikan build ini adalah yang ditentukan dalam proyek build.
     + *namespaceType*: Opsional. Jenis jalur artefak keluaran build yang menggantikan build ini adalah yang ditentukan dalam proyek build.
     + *name*: Opsional. Nama artefak keluaran build yang menggantikan build ini adalah nama yang ditentukan dalam proyek build.
     + *packaging*: Opsional. Jenis kemasan artefak keluaran build yang menggantikan build ini adalah yang ditentukan dalam proyek build.
   + *buildspecOverride*: Opsional. Deklarasi buildspec yang mengganti build ini yang ditentukan dalam proyek build. Jika nilai ini disetel, itu bisa berupa definisi buildspec sebaris, jalur ke file buildspec alternatif relatif terhadap nilai variabel `CODEBUILD_SRC_DIR` lingkungan bawaan, atau jalur ke bucket S3. Bucket S3 harus berada di AWS Wilayah yang sama dengan proyek pembangunan. Tentukan file buildspec menggunakan ARN (misalnya,). `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml` Jika nilai ini tidak disediakan atau diatur ke string kosong, kode sumber harus berisi `buildspec.yml` file dalam direktori root nya. Untuk informasi selengkapnya, lihat [Nama file Buildspec dan lokasi penyimpanan](build-spec-ref.md#build-spec-ref-name-storage).
   + Placeholder berikut adalah untuk. `cacheOverride`
     + *cacheOverride-location*: Opsional. Lokasi `ProjectCache` objek untuk build ini yang mengganti `ProjectCache` objek yang ditentukan dalam proyek build. `cacheOverride`bersifat opsional dan mengambil `ProjectCache` objek. `location`diperlukan dalam suatu `ProjectCache` objek.
     + *cacheOverride-type*: Opsional. Jenis `ProjectCache` objek untuk build ini yang mengganti `ProjectCache` objek yang ditentukan dalam proyek build. `cacheOverride`bersifat opsional dan mengambil `ProjectCache` objek. `type`diperlukan dalam suatu `ProjectCache` objek.
   + *certificateOverride*: Opsional. Nama sertifikat untuk build ini yang menggantikan sertifikat yang ditentukan dalam proyek build.
   + *environmentTypeOverride*: Opsional. Jenis kontainer untuk build ini yang mengganti yang ditentukan dalam proyek build. String valid saat ini adalah`LINUX_CONTAINER`.
   + Placeholder berikut adalah untuk. `environmentVariablesOverride`
     + *environmentVariablesOverride-name*: Opsional. Nama variabel lingkungan dalam proyek build yang nilainya ingin Anda timpa untuk build ini.
     + *environmentVariablesOverride-type*: Opsional. Jenis variabel lingkungan dalam proyek build yang nilainya ingin Anda timpa untuk build ini.
     + *environmentVariablesValue*: Opsional. Nilai variabel lingkungan yang ditentukan dalam proyek build yang ingin Anda timpa untuk build ini.
   + *gitCloneDepthOverride*: Opsional. Nilai **kedalaman klon Git** dalam proyek build yang nilainya ingin Anda timpa untuk build ini. Jika jenis sumber Anda adalah Amazon S3, nilai ini tidak didukung.
   + *imageOverride*: Opsional. Nama gambar untuk build ini yang menggantikan yang ditentukan dalam proyek build.
   + *idempotencyToken*: Opsional. String yang berfungsi sebagai token untuk menentukan bahwa permintaan build adalah idempoten. Anda dapat memilih string yang 64 karakter atau kurang. Token berlaku selama 5 menit setelah permintaan start-build. Jika Anda mengulangi permintaan start-build dengan token yang sama, tetapi mengubah parameter, CodeBuild mengembalikan kesalahan ketidakcocokan parameter. 
   + *insecureSslOverride*: Boolean opsional yang menentukan apakah akan mengganti setelan TLS tidak aman yang ditentukan dalam proyek build. Pengaturan TLS yang tidak aman menentukan apakah akan mengabaikan peringatan TLS saat menghubungkan ke kode sumber proyek. Penggantian ini hanya berlaku jika sumber build adalah GitHub Enterprise Server.
   + *privilegedModeOverride*: Boolean opsional. Jika disetel ke true, build akan mengganti mode istimewa dalam proyek build.
   +  *queuedTimeoutInMinutesOverride*: Integer opsional yang menentukan jumlah menit build diizinkan untuk antri sebelum waktu habis. Nilai minimumnya adalah lima menit dan nilai maksimumnya adalah 480 menit (delapan jam). 
   + *reportBuildStatusOverride*: Boolean opsional yang menentukan apakah akan mengirim status awal dan penyelesaian build kepada penyedia sumber Anda. Jika Anda mengatur ini dengan penyedia sumber selain GitHub, GitHub Enterprise Server, atau Bitbucket, akan invalidInputException dilemparkan.
   + *sourceAuthOverride*: String opsional. Jenis otorisasi untuk build ini yang mengganti yang ditentukan dalam proyek build. Penggantian ini hanya berlaku jika sumber proyek build adalah Bitbucket atau. GitHub
   + *sourceLocationOverride*: String opsional. Lokasi yang mengganti lokasi sumber ini akan membangun lokasi sumber untuk lokasi yang ditentukan dalam proyek build.
   + *serviceRoleOverride*: String opsional. Nama peran layanan untuk build ini yang menggantikan peran yang ditentukan dalam proyek build.
   + *sourceTypeOverride*: String opsional. Tipe input sumber untuk build ini yang mengganti input sumber yang ditentukan dalam proyek build. String yang valid adalah`NO_SOURCE`,`CODECOMMIT`,`CODEPIPELINE`,`GITHUB`,, `S3``BITBUCKET`, dan`GITHUB_ENTERPRISE`.
   + *timeoutInMinutesOverride*: Nomor opsional. Jumlah menit batas waktu build yang menggantikan build ini adalah yang ditentukan dalam proyek build. 

   Kami menyarankan Anda menyimpan variabel lingkungan dengan nilai sensitif, seperti ID kunci AWS akses, kunci akses AWS rahasia, atau kata sandi sebagai parameter di Amazon EC2 Systems Manager Parameter Store. CodeBuild dapat menggunakan parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store hanya jika nama parameter itu dimulai dengan `/CodeBuild/` (misalnya,`/CodeBuild/dockerLoginPassword`). Anda dapat menggunakan CodeBuild konsol untuk membuat parameter di Amazon EC2 Systems Manager. Pilih **Buat parameter**, lalu ikuti instruksi. (Di kotak dialog itu, untuk **kunci KMS**, Anda dapat secara opsional menentukan ARN AWS KMS kunci di akun Anda. Amazon EC2 Systems Manager menggunakan kunci ini untuk mengenkripsi nilai parameter selama penyimpanan dan mendekripsi selama pengambilan.) Jika Anda menggunakan CodeBuild konsol untuk membuat parameter, konsol memulai parameter dengan `/CodeBuild/` saat sedang disimpan. Namun, jika Anda menggunakan konsol Amazon EC2 Systems Manager Parameter Store untuk membuat parameter, Anda harus memulai nama parameter dengan`/CodeBuild/`, dan Anda harus menyetel **Type** to **Secure String**. Untuk informasi selengkapnya, lihat [penyimpanan AWS Systems Manager parameter](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dan [Panduan: Membuat dan menguji parameter String (konsol)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) di Panduan *Pengguna Amazon EC2 Systems Manager*.

   Jika project build Anda mengacu pada parameter yang disimpan di Amazon EC2 Systems Manager Parameter Store, peran layanan project build harus mengizinkan `ssm:GetParameters` tindakan tersebut. Jika Anda memilih **Buat peran layanan baru di akun Anda** sebelumnya, CodeBuild sertakan tindakan ini dalam peran layanan default untuk proyek build Anda secara otomatis. Namun, jika Anda memilih **Pilih peran layanan yang ada dari akun Anda**, maka Anda harus menyertakan tindakan ini dalam peran layanan Anda secara terpisah.

   Variabel lingkungan yang Anda tetapkan menggantikan variabel lingkungan yang ada. Misalnya, jika image Docker sudah berisi variabel lingkungan bernama `MY_VAR` dengan nilai`my_value`, dan Anda menetapkan variabel lingkungan bernama `MY_VAR` dengan nilai`other_value`, `my_value` maka diganti dengan`other_value`. Demikian pula, jika image Docker sudah berisi variabel lingkungan bernama `PATH` dengan nilai`/usr/local/sbin:/usr/local/bin`, dan Anda menetapkan variabel lingkungan bernama `PATH` dengan nilai`$PATH:/usr/share/ant/bin`, `/usr/local/sbin:/usr/local/bin` maka digantikan oleh nilai `$PATH:/usr/share/ant/bin` literal. 

   Jangan mengatur variabel lingkungan apa pun dengan nama yang dimulai dengan`CODEBUILD_`. Awalan ini dicadangkan untuk penggunaan internal .

   Jika variabel lingkungan dengan nama yang sama didefinisikan di beberapa tempat, nilai variabel lingkungan ditentukan sebagai berikut:
   + Nilai dalam panggilan operasi start build lebih diutamakan.
   + Nilai dalam definisi proyek build akan diutamakan berikutnya.
   + Nilai dalam deklarasi file buildspec diutamakan paling rendah.

   Untuk informasi tentang nilai valid untuk placeholder ini, lihat. [Buat proyek build (AWS CLI)](create-project.md#create-project-cli) Untuk daftar setelan terbaru untuk proyek build, lihat[Lihat detail proyek build](view-project-details.md).

1. Beralih ke direktori yang berisi file yang baru saja Anda simpan, dan jalankan `start-build` perintah lagi.

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. Jika berhasil, data yang mirip dengan yang dijelaskan dalam [Untuk menjalankan build](getting-started-overview.md#getting-started-run-build-cli) prosedur muncul di output.

Untuk bekerja dengan informasi terperinci tentang build ini, catat `id` nilai dalam output, lalu lihat[Lihat detail build (AWS CLI)](view-build-details.md#view-build-details-cli).

# Jalankan batch build (AWS CLI)
<a name="run-batch-build-cli"></a>

1. Jalankan `start-build-batch` perintah dengan salah satu cara berikut:

   ```
   aws codebuild start-build-batch --project-name <project-name>
   ```

   Gunakan ini jika Anda ingin menjalankan build yang menggunakan artefak input build versi terbaru dan setelan proyek build yang ada.

   ```
   aws codebuild start-build-batch --generate-cli-skeleton > <json-file>
   ```

   Gunakan ini jika Anda ingin menjalankan build dengan artefak input build versi sebelumnya atau jika Anda ingin mengganti pengaturan untuk artefak keluaran build, variabel lingkungan, buildspec, atau periode batas waktu build default.

1. Jika Anda menjalankan **start-build-batch** perintah dengan `--project-name` opsi, ganti *<project-name>* dengan nama proyek build, lalu lewati ke langkah 6 dari prosedur ini. Untuk mendapatkan daftar proyek pembangunan, lihat[Lihat nama proyek build](view-project-list.md).

1. Jika Anda menjalankan **start-build-batch** perintah dengan `--idempotency-token` opsi, pengidentifikasi case-sensitive yang unik, atau token, disertakan dengan permintaan. `start-build-batch` Token berlaku selama 5 menit setelah permintaan. Jika Anda mengulangi `start-build-batch` permintaan dengan token yang sama, tetapi mengubah parameter, CodeBuild mengembalikan kesalahan ketidakcocokan parameter.

1. Jika Anda menjalankan **start-build-batch** perintah dengan `--generate-cli-skeleton` opsi, data berformat JSON adalah output ke file. *<json-file>* File ini mirip dengan kerangka yang dihasilkan oleh **start-build** perintah, dengan penambahan objek berikut. Untuk informasi lebih lanjut tentang objek umum, lihat[Jalankan build (AWS CLI)](run-build-cli.md).

   Ubah file ini untuk menambahkan penggantian build apa pun, dan simpan hasil Anda.

   ```
     "buildBatchConfigOverride": {
       "combineArtifacts": combineArtifacts,
       "restrictions": {
         "computeTypesAllowed": [
           allowedComputeTypes
         ],
         "maximumBuildsAllowed": maximumBuildsAllowed
       },
       "serviceRole": "batchServiceRole",
       "timeoutInMins": batchTimeout
     }
   ```

   `buildBatchConfigOverride`Objek adalah [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)struktur yang berisi penggantian konfigurasi build batch untuk build ini.  
*combineArtifacts*  
Boolean yang menentukan apakah artefak build untuk build batch harus digabungkan menjadi satu lokasi artefak.  
*allowedComputeTypes*  
Array string yang menentukan jenis komputasi yang diizinkan untuk pembangunan batch. Lihat [Membangun tipe komputasi lingkungan](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) untuk nilai ini.   
*maximumBuildsAllowed*  
Menentukan jumlah maksimum pembangunan yang diizinkan.  
*batchServiceRole*  
Menentukan ARN peran layanan untuk proyek build batch.  
*batchTimeout*  
Menentukan jumlah waktu maksimum, dalam menit, bahwa build batch harus diselesaikan.

1. Beralih ke direktori yang berisi file yang baru saja Anda simpan, dan jalankan `start-build-batch` perintah lagi.

   ```
   aws codebuild start-build-batch --cli-input-json file://start-build.json
   ```

1. Jika berhasil, representasi JSON dari suatu [BuildBatch](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BuildBatch.html)objek muncul di output konsol. Lihat [Sintaks StartBuildBatch Respons](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_ResponseSyntax) untuk contoh data ini.

# Mulai menjalankan build secara otomatis ()AWS CLI
<a name="run-build-cli-auto-start"></a>

Jika kode sumber Anda disimpan dalam GitHub atau repositori Server GitHub Perusahaan, Anda dapat menggunakan GitHub webhook untuk AWS CodeBuild membangun kembali kode sumber Anda setiap kali perubahan kode didorong ke repositori.

Jalankan **create-webhook** perintah sebagai berikut:

```
aws codebuild create-webhook --project-name <project-name>
```

*<project-name>*adalah nama proyek build yang berisi kode sumber yang akan dibangun kembali.

Untuk GitHub, informasi yang mirip dengan berikut ini muncul di output:

```
{
  "webhook": {
    "url": "<url>"
  }
}
```

*<url>*adalah URL ke GitHub webhook.

Untuk GitHub Enterprise Server, informasi yang mirip dengan berikut ini muncul di output:

![\[Contoh informasi keluaran.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. Salin kunci rahasia dan URL payload dari output. Anda membutuhkan mereka untuk menambahkan webhook di GitHub Enterprise Server. 

1. Di GitHub Enterprise Server, pilih repositori tempat CodeBuild proyek Anda disimpan. Pilih **Pengaturan**, pilih **Hooks & services**, lalu pilih **Add webhook**. 

1. **Masukkan URL payload dan kunci rahasia, terima default untuk bidang lain, lalu pilih Tambahkan webhook.**

# Berhenti menjalankan build secara otomatis ()AWS CLI
<a name="run-build-cli-auto-stop"></a>

Jika kode sumber Anda disimpan dalam GitHub atau repositori Server GitHub Perusahaan, Anda dapat mengatur GitHub webhook untuk AWS CodeBuild membangun kembali kode sumber Anda setiap kali perubahan kode didorong ke repositori. Untuk informasi selengkapnya, lihat [Mulai menjalankan build secara otomatis ()AWS CLI](run-build-cli-auto-start.md).

Jika Anda telah mengaktifkan perilaku ini, Anda dapat mematikannya dengan menjalankan `delete-webhook` perintah sebagai berikut:

```
aws codebuild delete-webhook --project-name <project-name>
```
+ di mana *<project-name>* adalah nama proyek build yang berisi kode sumber yang akan dibangun kembali.

Jika perintah ini berhasil, tidak ada informasi dan tidak ada kesalahan yang muncul di output.

**catatan**  
Ini menghapus webhook dari CodeBuild proyek Anda saja. Anda juga harus menghapus webhook dari repositori Server GitHub atau GitHub Enterprise Anda.

# Jalankan build (AWS SDKs)
<a name="run-build-sdks"></a>

Untuk menggunakan CodePipeline untuk menjalankan build dengan AWS CodeBuild, lewati langkah-langkah ini dan ikuti instruksi [Gunakan AWS CodeBuild dengan AWS CodePipeline untuk menguji kode dan menjalankan build](how-to-create-pipeline.md) sebagai gantinya.

Untuk informasi tentang menggunakan CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Jalankan build pada komputasi AWS Lambda
<a name="lambda"></a>

AWS Lambda compute menawarkan kecepatan start-up yang dioptimalkan untuk build Anda. AWS Lambda mendukung build yang lebih cepat karena latensi start-up yang lebih rendah. AWS Lambda juga secara otomatis menskalakan, jadi build tidak menunggu dalam antrian untuk dijalankan. Namun, ada beberapa kasus penggunaan yang AWS Lambda tidak mendukung, dan jika berdampak pada Anda, gunakan komputasi EC2. Untuk informasi selengkapnya, lihat [Keterbatasan AWS Lambda komputasi](#lambda.limitations).

**Topics**
+ [Alat dan runtime mana yang akan disertakan dalam gambar docker lingkungan runtime yang dikuratori yang berjalan? AWS Lambda](#lambda.tools)
+ [Bagaimana jika gambar yang dikuratori tidak menyertakan alat yang saya butuhkan?](#lambda.custom)
+ [Wilayah mana yang mendukung AWS Lambda komputasi? CodeBuild](#lambda.regions)
+ [Keterbatasan AWS Lambda komputasi](#lambda.limitations)
+ [Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java](sample-lambda-sam-gradle.md)
+ [Buat aplikasi React satu halaman dengan CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Perbarui konfigurasi fungsi Lambda dengan CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Alat dan runtime mana yang akan disertakan dalam gambar docker lingkungan runtime yang dikuratori yang berjalan? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda mendukung alat-alat berikut: AWS CLI v2, AWS SAM CLI, git, go, Java, Node.js, Python, pip, Ruby, dan.NET.

## Bagaimana jika gambar yang dikuratori tidak menyertakan alat yang saya butuhkan?
<a name="lambda.custom"></a>

Jika gambar yang dikurasi tidak menyertakan alat yang Anda butuhkan, Anda dapat menyediakan gambar Docker lingkungan khusus yang menyertakan alat yang diperlukan.

**catatan**  
Lambda tidak mendukung fungsi yang menggunakan gambar kontainer multi-arsitektur. Untuk informasi selengkapnya, lihat [Membuat fungsi Lambda menggunakan gambar kontainer](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) di Panduan *AWS Lambda Pengembang*.

Perhatikan bahwa Anda memerlukan izin Amazon ECR berikut untuk menggunakan gambar kustom untuk komputasi Lambda:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Perhatikan juga bahwa `curl` atau `wget` harus diinstal untuk menggunakan gambar khusus.

## Wilayah mana yang mendukung AWS Lambda komputasi? CodeBuild
<a name="lambda.regions"></a>

Pada tahun CodeBuild, AWS Lambda komputasi didukung sebagai berikut Wilayah AWS: AS Timur (Virginia N.), AS Timur (Ohio), AS Barat (Oregon), Asia Pasifik (Mumbai), Asia Pasifik (Singapura), Asia Pasifik (Sydney), Asia Pasifik (Tokyo), Eropa (Frankfurt), Eropa (Irlandia), dan Amerika Selatan (São Paulo). Untuk informasi selengkapnya tentang Wilayah AWS tempat CodeBuild tersedia, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Keterbatasan AWS Lambda komputasi
<a name="lambda.limitations"></a>

Ada beberapa kasus penggunaan yang AWS Lambda tidak mendukung, dan jika memengaruhi Anda, gunakan komputasi EC2:
+ AWS Lambda tidak mendukung alat yang memerlukan izin root. Untuk alat seperti `yum` atau`rpm`, gunakan jenis komputasi EC2 atau alat lain yang tidak memerlukan izin root.
+ AWS Lambda tidak mendukung build atau run Docker.
+ AWS Lambda tidak mendukung penulisan ke file di luar`/tmp`. Manajer paket yang disertakan dikonfigurasi untuk menggunakan `/tmp` direktori secara default untuk mengunduh dan mereferensikan paket.
+ AWS Lambda tidak mendukung jenis lingkungan `LINUX_GPU_CONTAINER` dan tidak didukung pada Windows Server Core 2019.
+ AWS Lambda tidak mendukung caching, batas waktu pembuatan kustom, batas waktu antrian, lencana build, mode istimewa, lingkungan runtime kustom, atau runtime lebih dari 15 menit.
+ AWS Lambda tidak mendukung konektivitas VPC, rentang tetap alamat IP CodeBuild sumber, EFS, menginstal sertifikat, atau akses SSH dengan Session Manager.

# Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle"></a>

The AWS Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka untuk membangun aplikasi tanpa server. Untuk informasi selengkapnya, lihat [AWS Serverless Application Model repositori](https://github.com/aws/serverless-application-model) di. GitHub Contoh Java berikut menggunakan Gradle untuk membangun dan menguji AWS Lambda fungsi. Setelah itu, AWS SAM CLI digunakan untuk menyebarkan CloudFormation template dan bundel penerapan. Dengan menggunakan CodeBuild Lambda, langkah-langkah pembuatan, pengujian, dan penerapan semuanya ditangani secara otomatis, memungkinkan infrastruktur diperbarui dengan cepat tanpa intervensi manual dalam satu build.

## Siapkan AWS SAM repositori Anda
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Buat AWS SAM `Hello World` proyek menggunakan AWS SAM CLI.

**Untuk membuat AWS SAM Proyek Anda**

1. Ikuti petunjuk di *Panduan AWS Serverless Application Model Pengembang* untuk [Menginstal AWS SAM CLI di mesin](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) lokal Anda.

1. Jalankan `sam init` dan pilih konfigurasi proyek berikut.

   ```
   Which template source would you like to use?: 1 - AWS Quick Start Templates
   Choose an AWS Quick Start application template: 1 - Hello World Example
   Use the most popular runtime and package type? (Python and zip) [y/N]: N
   Which runtime would you like to use?: 8 - java21
   What package type would you like to use?: 1 - Zip
   Which dependency manager would you like to use?: 1 - gradle
   Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N
   Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N
   Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:  N
   Project name [sam-app]: <insert project name>
   ```

1. Unggah folder AWS SAM proyek ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle.create-project"></a>

Buat proyek AWS CodeBuild Lambda Java dan siapkan izin IAM yang diperlukan untuk build.

**Untuk membuat proyek CodeBuild Lambda Java Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Java**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:corretto21**.
   + Untuk **peran Layanan**, biarkan **peran Layanan baru** dipilih. Catat **nama Peran**. Ini akan diperlukan saat Anda memperbarui izin IAM proyek nanti dalam sampel ini.

1. Pilih **Buat proyek build**.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. Di panel navigasi, pilih **Peran dan pilih peran** layanan yang terkait dengan proyek Anda. Anda dapat menemukan peran proyek Anda CodeBuild dengan memilih proyek build, memilih **Edit**, **Lingkungan**, dan kemudian **peran Layanan**.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Tambahkan kebijakan inline berikut ke peran IAM Anda. Ini akan digunakan untuk menyebarkan AWS SAM infrastruktur Anda nanti. Untuk informasi lebih lanjut, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:*",
                   "lambda:*",
                   "iam:*",
                   "apigateway:*",
                   "s3:*"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------

## Siapkan proyek buildspec
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

Untuk membangun, menguji, dan menerapkan fungsi Lambda Anda CodeBuild , membaca dan mengeksekusi perintah build dari buildspec.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   env:
     variables:
       GRADLE_DIR: "HelloWorldFunction"
   phases:
     build:
       commands:
         - echo "Running unit tests..."
         - cd $GRADLE_DIR; gradle test; cd ..
         - echo "Running build..."
         - sam build --template-file template.yaml
         - echo "Running deploy..."
         - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml
         - yes | sam deploy
   ```

1. Pilih **Perbarui buildspec**.

## Terapkan infrastruktur AWS SAM Lambda Anda
<a name="sample-lambda-sam-gradle.deploy"></a>

Gunakan CodeBuild Lambda untuk menyebarkan infrastruktur Lambda Anda secara otomatis

**Untuk menyebarkan infrastruktur Lambda Anda**

1. Pilih **Mulai membangun**. Ini akan secara otomatis membangun, menguji, dan menyebarkan AWS SAM aplikasi Anda untuk AWS Lambda digunakan CloudFormation.

1. Setelah build selesai, navigasikan ke AWS Lambda konsol dan cari fungsi Lambda baru Anda di bawah nama AWS SAM proyek.

1. Uji fungsi Lambda Anda dengan memilih **API Gateway** di bawah ikhtisar **Fungsi**, lalu mengklik URL titik **akhir API**. Anda akan melihat halaman terbuka dengan pesan`"message": "hello world"`.

## Bersihkan infrastruktur Anda
<a name="sample-lambda-sam-gradle.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat oleh AWS SAM template Anda dan CodeBuild.

**Untuk membersihkan infrastruktur Anda**

1. Arahkan ke CloudFormation konsol dan pilih`aws-sam-cli-managed-default`.

1. Di **Resources**, kosongkan bucket `SamCliSourceBucket` penerapan.

1. Hapus `aws-sam-cli-managed-default` tumpukan.

1. Hapus CloudFormation tumpukan yang terkait dengan AWS SAM proyek Anda. Tumpukan ini harus memiliki nama yang sama dengan AWS SAM proyek Anda.

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild proyek Anda dengan memilih **Delete build project**.

# Buat aplikasi React satu halaman dengan CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) adalah cara untuk membuat aplikasi React satu halaman. Contoh Node.js berikut menggunakan Node.js untuk membangun artefak sumber dari Create React App dan mengembalikan artefak build.

## Siapkan ember repositori dan artefak sumber Anda
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Buat repositori sumber untuk proyek Anda menggunakan yarn dan Create React App.

**Untuk mengatur repositori sumber dan ember artefak**

1. Di mesin lokal Anda, jalankan `yarn create react-app <app-name>` untuk membuat aplikasi React sederhana.

1. Unggah folder proyek aplikasi React ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs.create-project"></a>

Buat proyek AWS CodeBuild Lambda Node.js.

**Untuk membuat proyek CodeBuild Lambda Node.js Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Node.js**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:nodejs20**.

1. Dalam **Artefak**:
   + Untuk **Jenis**, pilih **Amazon S3**.
   + Untuk **nama Bucket**, pilih bucket artefak proyek yang Anda buat sebelumnya.
   + Untuk **kemasan Artefak**, pilih **Zip**.

1. Pilih **Buat proyek build**.

## Siapkan proyek buildspec
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

Untuk membangun aplikasi React Anda, CodeBuild membaca dan mengeksekusi perintah build dari file buildspec.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Pilih **Perbarui buildspec**.

## Membangun dan menjalankan aplikasi React Anda
<a name="sample-lambda-react-nodejs.build"></a>

Bangun aplikasi React di CodeBuild Lambda, unduh artefak build, dan jalankan aplikasi React secara lokal.

**Untuk membangun dan menjalankan aplikasi React Anda**

1. Pilih **Mulai membangun**.

1. Setelah build selesai, navigasikan ke bucket artefak proyek Amazon S3 Anda dan unduh artefak aplikasi React.

1. Buka zip artefak build React dan `run npm install -g serve && serve -s build` di folder proyek.

1. `serve`Perintah akan melayani situs statis pada port lokal dan mencetak output ke terminal Anda. Anda dapat mengunjungi URL localhost `Local:` di bawah output terminal untuk melihat aplikasi React Anda.

Untuk mempelajari lebih lanjut tentang cara menangani deployment untuk server berbasis React, lihat [Membuat Penerapan Aplikasi React](https://create-react-app.dev/docs/deployment/).

## Bersihkan infrastruktur Anda
<a name="sample-lambda-react-nodejs.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat untuk CodeBuild proyek Anda.

**Untuk membersihkan infrastruktur Anda**

1. Hapus artefak proyek Anda Amazon S3 bucket

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild project Anda dengan memilih **Delete build project**.

# Perbarui konfigurasi fungsi Lambda dengan CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

Contoh Python berikut menggunakan [Boto3](https://aws.amazon.com/sdk-for-python/) dan Lambda Python untuk memperbarui konfigurasi fungsi CodeBuild Lambda. Sampel ini dapat diperluas untuk mengelola AWS sumber daya lain secara terprogram. Untuk informasi selengkapnya, lihat [dokumentasi Boto3](https://aws.amazon.com/sdk-for-python/).

## Prasyarat
<a name="sample-lambda-boto3-python.prerequisites"></a>

Buat atau temukan fungsi Lambda di akun Anda.

Contoh ini mengasumsikan bahwa Anda telah membuat fungsi Lambda di akun Anda dan akan CodeBuild digunakan untuk memperbarui variabel lingkungan fungsi Lambda. Untuk informasi selengkapnya tentang pengaturan fungsi Lambda CodeBuild, lihat [Menyebarkan fungsi Lambda menggunakan AWS SAM dengan CodeBuild Lambda Java](sample-lambda-sam-gradle.md) sampel atau kunjungi. [AWS Lambda](https://aws.amazon.com/lambda/)

## Siapkan repositori sumber Anda
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Buat repositori sumber untuk menyimpan skrip python Boto3 Anda.

**Untuk mengatur repositori sumber**

1. Salin script python berikut ke file baru bernama`update_lambda_environment_variables.py`.

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Unggah file python ke repositori sumber yang didukung. Untuk daftar jenis sumber yang didukung, lihat [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Buat proyek CodeBuild Lambda Python
<a name="sample-lambda-boto3-python.create-project"></a>

Buat proyek CodeBuild Lambda Python.

**Untuk membuat proyek CodeBuild Lambda Java Anda**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Di **Nama proyek**, masukkan nama untuk proyek pembangunan ini. Membangun nama proyek harus unik di setiap AWS akun. Anda juga dapat menyertakan deskripsi opsional proyek build untuk membantu pengguna lain memahami tujuan proyek ini.

1. Di **Sumber**, pilih repositori sumber tempat AWS SAM proyek Anda berada.

1. Di **Lingkungan**:
   + Untuk **Compute**, pilih **Lambda**.
   + Untuk **Runtime**, pilih **Python**.
   + Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-lambda-standard:python3.12**.
   + Untuk **peran Layanan**, biarkan **peran Layanan baru** dipilih. Catat **nama Peran**. Ini akan diperlukan saat Anda memperbarui izin IAM proyek nanti dalam sampel ini.

1. Pilih **Buat proyek build**.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. Di panel navigasi, pilih **Peran dan pilih peran** layanan yang terkait dengan proyek Anda. Anda dapat menemukan peran proyek Anda CodeBuild dengan memilih proyek build, memilih **Edit**, **Lingkungan**, dan kemudian **peran Layanan**.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Tambahkan kebijakan inline berikut ke peran IAM Anda. Ini akan digunakan untuk menyebarkan AWS SAM infrastruktur Anda nanti. Untuk informasi lebih lanjut, lihat [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Siapkan proyek buildspec
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Untuk memperbarui fungsi Lambda, skrip membaca variabel lingkungan dari buildspec untuk menemukan nama fungsi Lambda, nama variabel lingkungan, dan nilai variabel lingkungan.

**Untuk menyiapkan buildspec proyek Anda**

1. Di CodeBuild konsol, pilih proyek build Anda, lalu pilih **Edit** dan **Buildspec**.

1. Di **Buildspec**, pilih **Sisipkan perintah build** dan kemudian **Beralih ke** editor.

1. Hapus perintah build yang telah diisi sebelumnya dan tempel di buildspec berikut.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Pilih **Perbarui buildspec**.

## Perbarui konfigurasi Lambda Anda
<a name="sample-lambda-boto3-python.update"></a>

Gunakan CodeBuild Lambda Python untuk memperbarui konfigurasi fungsi Lambda Anda secara otomatis.

**Untuk memperbarui konfigurasi fungsi Lambda**

1. Pilih **Mulai membangun**.

1. Setelah build selesai, navigasikan ke fungsi Lambda Anda.

1. Pilih **Konfigurasi** dan kemudian variabel **Lingkungan**. Anda akan melihat variabel lingkungan baru dengan kunci `FEATURE_ENABLED` dan nilai`true`.

## Bersihkan Infrastruktur Anda
<a name="sample-lambda-boto3-python.clean-up"></a>

Untuk menghindari biaya lebih lanjut untuk sumber daya yang Anda gunakan selama tutorial ini, hapus sumber daya yang dibuat untuk CodeBuild proyek Anda.

**Untuk Membersihkan Infrastruktur Anda**

1. Arahkan ke CloudWatch konsol dan hapus grup CloudWatch log yang terkait dengan CodeBuild proyek Anda.

1. Arahkan ke CodeBuild konsol dan hapus CodeBuild project Anda dengan memilih **Delete build project**.

1. Jika Anda membuat fungsi Lambda untuk tujuan sampel ini, pilih fungsi **Tindakan** dan **Hapus untuk membersihkan fungsi** Lambda Anda.

## Ekstensi
<a name="sample-lambda-boto3-python.extensions"></a>

Jika Anda ingin memperluas sampel ini untuk mengelola AWS sumber daya lain menggunakan AWS CodeBuild Lambda Python:
+ Perbarui skrip Python untuk memodifikasi sumber daya baru menggunakan Boto3.
+ Perbarui peran IAM yang terkait dengan CodeBuild proyek Anda agar memiliki izin untuk sumber daya baru.
+ Tambahkan variabel lingkungan baru yang terkait dengan sumber daya baru ke buildspec Anda.

# Jalankan build di atas armada kapasitas cadangan
<a name="fleets"></a>

CodeBuild menawarkan armada komputasi berikut:
+ Armada sesuai permintaan
+ Armada kapasitas cadangan

Dengan armada sesuai permintaan, CodeBuild menyediakan komputasi untuk build Anda. Mesin-mesin dihancurkan saat build selesai. Armada sesuai permintaan dikelola sepenuhnya, dan mencakup kemampuan penskalaan otomatis untuk menangani lonjakan permintaan.

**catatan**  
Fleets sesuai permintaan tidak mendukung macOS.

CodeBuild juga menawarkan armada kapasitas cadangan yang berisi instans yang didukung oleh Amazon EC2 yang dikelola oleh. CodeBuild Dengan armada kapasitas cadangan, Anda mengonfigurasi satu set instans khusus untuk lingkungan build Anda. Mesin ini tetap menganggur, siap untuk memproses build atau pengujian segera dan mengurangi durasi build. Dengan armada kapasitas cadangan, mesin Anda selalu berjalan dan akan terus mengeluarkan biaya selama disediakan.

**penting**  
Terlepas dari berapa lama Anda menjalankan instance, armada kapasitas cadangan dikenakan biaya awal per instance, dan kemudian mungkin ada biaya terkait tambahan. Untuk informasi selengkapnya, lihat [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).

**Topics**
+ [Buat armada kapasitas cadangan](#fleets.how-to)
+ [Praktik terbaik](#fleets.best-practices)
+ [Dapatkah saya berbagi armada kapasitas cadangan di beberapa CodeBuild proyek?](#fleets.share)
+ [Bagaimana cara kerja komputasi berbasis atribut?](#fleets.attribute-compute)
+ [Bisakah saya menentukan instans Amazon EC2 secara manual untuk armada saya?](#fleets.manual-input-compute)
+ [Wilayah mana yang mendukung armada kapasitas cadangan?](#fleets.regions)
+ [Bagaimana cara mengonfigurasi armada macOS berkapasitas cadangan?](#fleets.configure-macos)
+ [Bagaimana cara mengonfigurasi Amazon Machine Image (AMI) khusus untuk armada kapasitas cadangan?](#fleets.custom-ami)
+ [Keterbatasan armada kapasitas cadangan](#fleets.limitations)
+ [Properti armada kapasitas cadangan](fleets.reserved-capacity-fleets.md)
+ [Sampel kapasitas cadangan dengan AWS CodeBuild](reserved-capacity-samples.md)

## Buat armada kapasitas cadangan
<a name="fleets.how-to"></a>

Gunakan petunjuk berikut untuk membuat armada kapasitas cadangan.

**Untuk membuat armada kapasitas cadangan**

1. Masuk ke Konsol Manajemen AWS dan buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Di panel navigasi, pilih **Compute fleet, lalu pilih Create Fleet**.**

1. Di bidang teks **Compute fleet name**, masukkan nama untuk armada Anda.

1. Dari menu drop-down **sistem operasi**, pilih sistem operasi.

1. Dari menu drop-down **Architecture**, pilih arsitektur.

1. (Opsional) Pilih **Gunakan mode berjalan instance - opsional** untuk dijalankan pada instans Amazon EC2 secara langsung, bukan wadah Docker. Kemudian pilih **versi Major dan versi** **Minor**.

1. (Opsional) Dalam **konfigurasi tambahan** lakukan hal berikut:
   + Pilih **Konfigurasi VPC - opsional** untuk menghubungkan armada Anda ke VPC untuk mengakses sumber daya pribadi selama penggunaan.
     + Dari menu tarik-turun **VPC**, pilih VPC yang akan diakses armada Anda. CodeBuild 
     + Dari menu tarik-turun **Subnet**, pilih subnet yang CodeBuild harus digunakan untuk mengatur konfigurasi VPC Anda.
     + Dari menu tarik-turun **Grup keamanan**, pilih grup keamanan yang CodeBuild harus digunakan untuk bekerja dengan VPC Anda.
     + Di bidang **Peran Layanan Armada**, pilih peran layanan yang ada.
**catatan**  
Pastikan peran armada Anda memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Izinkan pengguna menambahkan kebijakan izin untuk peran layanan armada](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).
     + Jika Anda memilih sistem operasi Amazon Linux, pilih **Tentukan konfigurasi proxy - opsional** untuk menerapkan kontrol akses jaringan untuk instance kapasitas cadangan Anda.
     + Untuk **perilaku Default**, pilih untuk mengizinkan atau menolak lalu lintas keluar ke semua tujuan secara default.
     + Untuk **aturan Proxy**, pilih **Tambahkan aturan proxy** untuk menentukan domain tujuan atau IPs untuk mengizinkan atau menolak kontrol akses jaringan.
   + Pilih **Konfigurasi AMI kustom - opsional** untuk menggunakan Amazon Machine Image (AMI) kustom.
     + Dari menu tarik-turun **AMI**, pilih Amazon Machine Image (AMI) untuk armada Anda.
     + Di bidang **Peran Layanan Armada**, pilih peran layanan yang ada.
**catatan**  
Pastikan peran armada Anda memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Izinkan pengguna menambahkan kebijakan izin untuk peran layanan armada](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Dalam **konfigurasi Kapasitas**, dari **mode pemilihan Komputasi**, pilih salah satu dari berikut ini:
   + Jika Anda memilih **Pilihan terpandu**, lakukan hal berikut:
     + Untuk **Compute**, pilih jenis instance yang disertakan dalam armada ini.
     + Di bidang teks **Kapasitas**, masukkan jumlah minimum instance dalam armada.
     + (Opsional) Dalam **konfigurasi tambahan** lakukan hal berikut:
       + Pilih **Konfigurasi penskalaan - opsional** untuk menskalakan armada Anda secara otomatis berdasarkan konfigurasi ini. Dari **mode Penskalaan - menu tarik-turun opsional**, pilih perilaku saat permintaan melebihi kapasitas armada.
   + Jika Anda memilih **contoh Custom**, lakukan hal berikut:
     + Dari menu drop-down **Compute instance type**, pilih jenis instance yang disertakan dalam armada ini.
     + Dalam **ukuran volume EBS tambahan - bidang teks opsional**, masukkan volume tambahan ke 64GB ruang disk yang disediakan.
     + Di bidang teks **Kapasitas**, masukkan jumlah minimum instance dalam armada.
     + (Opsional) Dalam **konfigurasi tambahan** lakukan hal berikut:
       + Pilih **Konfigurasi penskalaan - opsional** untuk menskalakan armada Anda secara otomatis berdasarkan konfigurasi ini. Dari **mode Penskalaan - menu tarik-turun opsional**, pilih perilaku saat permintaan melebihi kapasitas armada.

1. Pilih **Buat armada komputasi**.

1. Setelah armada komputasi dibuat, buat CodeBuild proyek baru atau edit yang sudah ada. Dari **Lingkungan**, pilih **Kapasitas cadangan** di bawah **Model penyediaan**, lalu pilih armada yang ditentukan dengan nama **Armada**.

## Praktik terbaik
<a name="fleets.best-practices"></a>

Saat menggunakan armada kapasitas cadangan, kami sarankan Anda mengikuti praktik terbaik ini.
+ Sebaiknya gunakan mode cache sumber untuk membantu meningkatkan kinerja build dengan menyimpan sumber.
+ Kami merekomendasikan penggunaan cache lapisan Docker untuk membantu meningkatkan kinerja build dengan menyimpan lapisan Docker yang ada.

## Dapatkah saya berbagi armada kapasitas cadangan di beberapa CodeBuild proyek?
<a name="fleets.share"></a>

Ya, Anda dapat memaksimalkan pemanfaatan kapasitas armada dengan menggunakannya di beberapa proyek.

**penting**  
Saat menggunakan fitur kapasitas cadangan, data yang di-cache pada instance armada, termasuk file sumber, lapisan Docker, dan direktori cache yang ditentukan dalam buildspec, dapat diakses oleh proyek lain dalam akun yang sama. Ini dirancang dan memungkinkan proyek dalam akun yang sama untuk berbagi instance armada.

## Bagaimana cara kerja komputasi berbasis atribut?
<a name="fleets.attribute-compute"></a>

Jika Anda memilih `ATTRIBUTE_BASED_COMPUTE` sebagai armada`computeType`, Anda dapat menentukan atribut di bidang baru yang disebut`computeConfiguration`. Atribut ini termasuk vCPUs, memori, ruang disk, dan file`machineType`. Ini `machineType` salah satu `GENERAL` atau`NVME`. Setelah menentukan satu atau beberapa atribut yang tersedia, CodeBuild akan memilih jenis komputasi dari jenis instance yang didukung yang tersedia sebagai finalisasi. `computeConfiguration`

**catatan**  
CodeBuild akan memilih instance termurah yang cocok dengan semua persyaratan input. Memori, vCPUs, dan ruang disk instance yang dipilih semuanya akan lebih besar dari atau sama dengan persyaratan input. Anda dapat memeriksa yang diselesaikan `computeConfiguration` dalam armada yang dibuat atau diperbarui.

Jika Anda memasukkan `computeConfiguration` yang tidak mungkin untuk dipenuhi CodeBuild, Anda akan menerima pengecualian validasi. Perhatikan juga bahwa perilaku overflow armada sesuai permintaan akan diganti ke perilaku antrian jika tidak tersedia untuk sesuai permintaan. `computeConfiguration`

## Bisakah saya menentukan instans Amazon EC2 secara manual untuk armada saya?
<a name="fleets.manual-input-compute"></a>

Ya, Anda dapat langsung memasukkan instans Amazon EC2 yang Anda inginkan di konsol dengan memilih **Instans khusus** atau dengan mengonfigurasi parameter API,. `InstanceType` Bidang ini digunakan sebagai berikut APIs: CreateFleet, UpdateFleet, CreateProject, UpdateProject dan StartBuild. Untuk informasi selengkapnya, lihat [Compute instance type](fleets.reserved-capacity-fleets.md#compute).

## Wilayah mana yang mendukung armada kapasitas cadangan?
<a name="fleets.regions"></a>

Kapasitas cadangan armada Amazon Linux dan Windows didukung sebagai berikut Wilayah AWS: AS Timur (Virginia N.), AS Timur (Ohio), AS Barat (Oregon), Asia Pasifik (Mumbai), Asia Pasifik (Singapura), Asia Pasifik (Sydney), Asia Pasifik (Tokyo), Eropa (Frankfurt), Eropa (Irlandia), dan Amerika Selatan (São Paulo). Untuk informasi selengkapnya tentang Wilayah AWS tempat CodeBuild tersedia, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

Armada macOS Medium berkapasitas cadangan didukung sebagai berikut Wilayah AWS: US East (Virginia N.), US East (Ohio), US West (Oregon), Asia Pasifik (Sydney), dan Eropa (Frankfurt). Kapasitas cadangan macOS Armada besar didukung sebagai berikut Wilayah AWS: US East (Virginia N.), US East (Ohio), US West (Oregon), dan Asia Pasifik (Sydney).

## Bagaimana cara mengonfigurasi armada macOS berkapasitas cadangan?
<a name="fleets.configure-macos"></a>

**Untuk mengonfigurasi armada macOS berkapasitas cadangan**

1. Masuk ke Konsol Manajemen AWS dan buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Di panel navigasi, pilih **Compute fleet, lalu pilih Create Fleet**.**

1. Di bidang teks **Compute fleet name**, masukkan nama untuk armada Anda.

1. Dari menu tarik-turun **sistem operasi**, pilih **macOS**.

1. Di bidang **Compute**, pilih salah satu jenis mesin komputasi berikut: **Apple M2, memori 24 GB, 8 v CPUs** atau **Apple M2, memori 32 GB, 12** v. CPUs

1. Di bidang teks **Kapasitas**, masukkan jumlah minimum instance dalam armada.

1. (Opsional) Untuk menggunakan gambar kustom untuk armada Anda, lihat [Bagaimana cara mengonfigurasi Amazon Machine Image (AMI) khusus untuk armada kapasitas cadangan?](#fleets.custom-ami) untuk memastikan bahwa Amazon Machine Image (AMI) Anda memiliki prasyarat yang diperlukan.

1. (Opsional) Untuk mengonfigurasi VPC dengan armada Anda, dalam **Konfigurasi tambahan** lakukan hal berikut:
   + Dari **VPC - menu tarik-turun opsional**, pilih VPC yang akan diakses armada Anda. CodeBuild 
   + Dari menu tarik-turun **Subnet**, pilih subnet yang CodeBuild harus digunakan untuk mengatur konfigurasi VPC Anda.
   + Dari menu tarik-turun **Grup keamanan**, pilih grup keamanan yang CodeBuild harus digunakan untuk bekerja dengan VPC Anda.
   + Di bidang **peran layanan Armada**, pilih peran layanan yang ada.
**catatan**  
Pastikan peran armada Anda memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat [Izinkan pengguna menambahkan kebijakan izin untuk peran layanan armada](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Pilih **Buat armada komputasi** dan tunggu instance armada diluncurkan. Setelah diluncurkan kapasitas akan berada`n/n`, di *n* mana kapasitas yang disediakan.

1. Setelah armada komputasi diluncurkan, buat CodeBuild proyek baru atau edit yang sudah ada. Dari **Lingkungan**, pilih **Kapasitas cadangan** di bawah **Model penyediaan**, lalu pilih armada yang ditentukan dengan nama **Armada**.

## Bagaimana cara mengonfigurasi Amazon Machine Image (AMI) khusus untuk armada kapasitas cadangan?
<a name="fleets.custom-ami"></a>

**Untuk mengonfigurasi Amazon Machine Image (AMI) khusus untuk armada kapasitas cadangan**

1. Masuk ke Konsol Manajemen AWS dan buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. **Di panel navigasi, pilih **Compute fleet, lalu pilih Create Fleet**.**

1. Di bidang teks **Compute fleet name**, masukkan nama untuk armada Anda.

1. Pilih **Custom image** untuk armada Anda dan pastikan Amazon Machine Image (AMI) Anda memiliki prasyarat berikut:
   + Jika tipe lingkungan Anda`MAC_ARM`, pastikan **Arsitektur** AMI Anda 64-bit`Mac-Arm`.
   + Jika tipe lingkungan Anda`LINUX_EC2`, pastikan **Arsitektur** AMI Anda 64-bit`x86`.
   + Jika tipe lingkungan Anda`ARM_EC2`, pastikan **Arsitektur** AMI Anda 64-bit`Arm`.
   + Jika tipe lingkungan Anda`WINDOWS_EC2`, pastikan **Arsitektur** AMI Anda 64-bit`x86`.
   + AMI memungkinkan CodeBuild **ARN Organisasi** layanan. Untuk daftar Organisasi ARNs, lihat[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami).
   + Jika AMI dienkripsi dengan AWS KMS kunci, kunci juga harus mengizinkan ID **Organisasi CodeBuild ** layanan. AWS KMS Untuk daftar Organisasi IDs, lihat[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami). Untuk informasi selengkapnya tentang AWS KMS kunci, lihat [Mengizinkan organisasi dan OUs menggunakan kunci KMS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html#allow-org-ou-to-use-key) di Panduan Pengguna *Amazon EC2*. Untuk memberikan izin CodeBuild organisasi untuk menggunakan kunci KMS, tambahkan pernyataan berikut ke kebijakan kunci:

     ```
     {
         "Sid": "Allow access for organization root",
         "Effect": "Allow",
         "Principal": "*",
         "Action": [
             "kms:Describe*",
             "kms:List*",
             "kms:Get*",
             "kms:Encrypt",
             "kms:Decrypt",
             "kms:ReEncrypt*",
             "kms:GenerateDataKey*",
             "kms:CreateGrant"
         ],
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:PrincipalOrgID": "o-123example"
             }
         }
     }
     ```
   + Di bidang **peran layanan Armada**, berikan izin Amazon EC2 berikut:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                    "ec2:DescribeImages",
                    "ec2:DescribeSnapshots"
                 ],
                 "Resource": "*"
             }
         ]
     }
     ```

------

## Keterbatasan armada kapasitas cadangan
<a name="fleets.limitations"></a>

Ada beberapa kasus penggunaan yang tidak didukung oleh armada kapasitas cadangan, dan jika berdampak pada Anda, gunakan armada sesuai permintaan sebagai gantinya:
+ Armada kapasitas cadangan tidak mendukung metrik pemanfaatan build.
+ Armada macOS berkapasitas cadangan tidak mendukung sesi debug.

Untuk informasi lebih lanjut tentang batas dan kuota, lihat[Hitung armada](limits.md#fleet-limits).

# Properti armada kapasitas cadangan
<a name="fleets.reserved-capacity-fleets"></a>

Armada kapasitas cadangan berisi properti berikut. Untuk informasi lebih lanjut tentang armada kapasitas cadangan, lihat[Jalankan build di atas armada kapasitas cadangan](fleets.md). 

**Sistem operasi**  
Sistem operasi. Sistem operasi berikut tersedia:  
+ Amazon Linux
+ macOS
+ Windows Server 2019
+ Windows Server 2022

**Arsitektur **  
Arsitektur prosesor. Arsitektur berikut tersedia:  
+ x86\$164
+ Arm64

**Tipe lingkungan**  
Jenis lingkungan tersedia saat **Amazon Linux** dipilih. Jenis lingkungan berikut tersedia:  
+ Linux EC2
+ GPU Linux

**Jenis contoh komputasi**  
Konfigurasi komputasi untuk instance armada.    
**Seleksi terpandu**  
Tentukan jenis komputasi yang berbeda dengan memilih pengaturan vCPU, memori, dan ruang disk. Untuk informasi tentang ketersediaan jenis komputasi menurut wilayah, lihat[Tentang jenis lingkungan kapasitas cadangan](build-env-ref-compute-types.md#environment-reserved-capacity.types).  
**Contoh kustom**  
Secara manual menentukan jenis instance yang diinginkan.

**Kapasitas**  
Jumlah awal mesin yang dialokasikan untuk armada, yang mendefinisikan jumlah build yang dapat berjalan secara paralel.

**Perilaku meluap**  
Mendefinisikan perilaku ketika jumlah build melebihi kapasitas armada.    
**Sesuai permintaan**  
Build overflow berjalan sesuai permintaan. CodeBuild   
Jika Anda memilih untuk menyetel perilaku overflow ke on-demand saat membuat armada yang terhubung dengan VPC, pastikan Anda menambahkan izin VPC yang diperlukan ke peran layanan proyek Anda. Untuk informasi selengkapnya, lihat [Contoh pernyataan kebijakan untuk mengizinkan CodeBuild akses ke AWS layanan yang diperlukan untuk membuat antarmuka jaringan VPC](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-create-vpc-network-interface).
Jika Anda memilih untuk menyetel perilaku overflow ke sesuai permintaan, perhatikan bahwa build overflow akan ditagih secara terpisah, mirip dengan Amazon EC2 sesuai permintaan. Untuk informasi selengkapnya, lihat [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).  
**Antrian**  
Build run ditempatkan dalam antrian hingga mesin tersedia. Ini membatasi biaya tambahan karena tidak ada mesin tambahan yang dialokasikan.

**Gambar Mesin Amazon (AMI)**  
Properti Amazon Machine Image (AMI) untuk armada Anda. Properti berikut didukung oleh CodeBuild:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/fleets.reserved-capacity-fleets.html)

**Konfigurasi tambahan**    
**VPC - opsional**  
VPC yang akan diakses CodeBuild armada Anda. Untuk informasi selengkapnya, lihat [Gunakan AWS CodeBuild dengan Amazon Virtual Private Cloud](vpc-support.md).  
Jika penggantian armada ditentukan saat memanggil StartBuild API, CodeBuild akan mengabaikan konfigurasi VPC proyek.  
**Subnet**  
Subnet VPC yang CodeBuild digunakan untuk mengatur konfigurasi VPC Anda. Perhatikan bahwa armada kapasitas cadangan hanya mendukung satu subnet dalam satu Availablity Zone. Juga, pastikan bahwa subnet Anda menyertakan gateway NAT.  
**Grup keamanan**  
Grup keamanan VPC yang CodeBuild digunakan dengan VPC Anda. Pastikan grup keamanan Anda mengizinkan koneksi keluar.  
**Peran Layanan Armada**  
Mendefinisikan peran layanan untuk armada Anda dari peran layanan yang ada di akun Anda.  
**Tentukan konfigurasi proxy - opsional**  
Konfigurasi proxy yang menerapkan kontrol akses jaringan ke instance kapasitas cadangan Anda. Untuk informasi selengkapnya, lihat [Gunakan AWS CodeBuild dengan server proxy terkelola](run-codebuild-in-managed-proxy-server.md).  
Konfigurasi proxy tidak mendukung VPC, Windows, atau macOS.  
**Perilaku default**  
Mendefinisikan perilaku lalu lintas keluar.    
**Izinkan**  
Mengizinkan lalu lintas keluar ke semua tujuan secara default.  
**Menyangkal**  
Menolak lalu lintas keluar ke semua tujuan secara default.  
**Aturan proxy**  
Menentukan domain tujuan atau IPs untuk mengizinkan atau menolak kontrol akses jaringan ke.

# Sampel kapasitas cadangan dengan AWS CodeBuild
<a name="reserved-capacity-samples"></a>

Sampel ini dapat digunakan untuk bereksperimen dengan armada kapasitas cadangan di CodeBuild.

**Topics**
+ [Caching dengan sampel kapasitas cadangan](#reserved-capacity-samples.caching)

## Caching dengan sampel kapasitas cadangan
<a name="reserved-capacity-samples.caching"></a>

Cache dapat menyimpan bagian yang dapat digunakan kembali dari lingkungan build Anda dan menggunakannya di beberapa build. Contoh ini menunjukkan cara mengaktifkan caching dalam proyek build Anda menggunakan kapasitas cadangan. Untuk informasi selengkapnya, lihat [Cache dibangun untuk meningkatkan kinerja](build-caching.md).

Anda dapat memulai dengan menentukan satu atau beberapa mode cache dalam pengaturan proyek Anda:

```
Cache:
        Type: LOCAL
        Modes:
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**catatan**  
Pastikan untuk mengaktifkan mode istimewa untuk menggunakan cache lapisan Docker.

Pengaturan buildspec proyek Anda akan terlihat seperti berikut:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - touch /codebuild/cache/workspace/foobar.txt
            - git checkout -b cached_branch
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1
            - echo testing local custom cache
            - touch foo
            - mkdir bar && ln -s foo bar/foo2
            - mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

Anda dapat memulai dengan menjalankan build dengan proyek baru untuk menyemai cache. Setelah selesai, Anda harus memulai build lain dengan buildspec utama, mirip dengan yang berikut ini:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi
            - ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi
            - echo testing local custom cache
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

# Jalankan build dalam batch
<a name="batch-build"></a>

Anda dapat menggunakan AWS CodeBuild untuk menjalankan build proyek secara bersamaan dan terkoordinasi dengan build batch. 

**Topics**
+ [Peran keamanan](#batch_security_role)
+ [Jenis pembuatan Batch](#batch_build_types)
+ [Mode laporan batch](#batch-report-mode)
+ [Informasi selengkapnya](#batch_more_info)

## Peran keamanan
<a name="batch_security_role"></a>

Build batch memperkenalkan peran keamanan baru dalam konfigurasi batch. Peran baru ini diperlukan karena CodeBuild harus dapat memanggil`StartBuild`,`StopBuild`, dan `RetryBuild` tindakan atas nama Anda untuk menjalankan build sebagai bagian dari batch. Pelanggan harus menggunakan peran baru, dan bukan peran yang sama yang mereka gunakan dalam build mereka, karena dua alasan:
+ Memberikan izin `StartBuild`, `StopBuild`, dan `RetryBuild` kepada peran build akan memungkinkan satu build untuk memulai lebih banyak build melalui buildspec.
+ CodeBuild build batch memberikan batasan yang membatasi jumlah build dan tipe komputasi yang dapat digunakan untuk build dalam batch. Jika peran build memiliki izin ini, build dapat melewati batasan ini sendiri.

## Jenis pembuatan Batch
<a name="batch_build_types"></a>

CodeBuild mendukung jenis build batch berikut:

**Topics**
+ [Membangun grafik](#batch_build_graph)
+ [Membangun daftar](#batch_build_list)
+ [Membangun matriks](#batch_build_matrix)
+ [Bangun fanout](#batch_build_fanout)

### Membangun grafik
<a name="batch_build_graph"></a>

Grafik build mendefinisikan sekumpulan tugas yang memiliki dependensi pada tugas lain dalam batch. 

Contoh berikut mendefinisikan grafik build yang membuat rantai ketergantungan. 

```
batch:
  fast-fail: false
  build-graph:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      depend-on:
        - build1
    - identifier: build3
      env:
        variables:
          BUILD_ID: build3
      depend-on:
        - build2
    - identifier: build4
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build5
      env:
        fleet: fleet_name
```

Dalam contoh ini:
+ `build1`berjalan terlebih dahulu karena tidak memiliki dependensi.
+ `build2`memiliki ketergantungan pada`build1`, jadi `build2` jalankan setelah `build1` selesai.
+ `build3`memiliki ketergantungan pada`build2`, jadi `build3` jalankan setelah `build2` selesai.

Untuk informasi selengkapnya tentang sintaks buildspec grafik build, lihat. [`batch/build-graph`](batch-build-buildspec.md#build-spec.batch.build-graph)

### Membangun daftar
<a name="batch_build_list"></a>

Daftar build mendefinisikan sejumlah tugas yang berjalan secara paralel. 

Contoh berikut mendefinisikan daftar build. The `build1` and `build2` build akan berjalan secara paralel.

```
batch:
  fast-fail: false
  build-list:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      ignore-failure: true
    - identifier: build3
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build4
      env:
        fleet: fleet_name
    - identifier: build5
      env:
        compute-type: GENERAL_LINUX_XLAGRE
```

Untuk informasi selengkapnya tentang sintaks buildspec daftar build, lihat. [`batch/build-list`](batch-build-buildspec.md#build-spec.batch.build-list)

### Membangun matriks
<a name="batch_build_matrix"></a>

Matriks build mendefinisikan tugas dengan konfigurasi berbeda yang berjalan secara paralel. CodeBuild membuat build terpisah untuk setiap kombinasi konfigurasi yang mungkin. 

Contoh berikut menunjukkan matriks build dengan dua file buildspec dan tiga nilai untuk variabel lingkungan.

```
batch:
  build-matrix:
    static:
      ignore-failure: false
    dynamic:
      buildspec: 
        - matrix1.yml
        - matrix2.yml
      env:
        variables:
          MY_VAR:
            - VALUE1
            - VALUE2
            - VALUE3
```

Dalam contoh ini, CodeBuild buat enam build:
+ `matrix1.yml` dengan `$MY_VAR=VALUE1`
+ `matrix1.yml` dengan `$MY_VAR=VALUE2`
+ `matrix1.yml` dengan `$MY_VAR=VALUE3`
+ `matrix2.yml` dengan `$MY_VAR=VALUE1`
+ `matrix2.yml` dengan `$MY_VAR=VALUE2`
+ `matrix2.yml` dengan `$MY_VAR=VALUE3`

Setiap build akan memiliki pengaturan berikut:
+ `ignore-failure`diatur ke `false`
+ `env/type`diatur ke `LINUX_CONTAINER`
+ `env/image`diatur ke `aws/codebuild/amazonlinux-x86_64-standard:4.0`
+ `env/privileged-mode`diatur ke `true`

Build ini berjalan secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec matriks build, lihat. [`batch/build-matrix`](batch-build-buildspec.md#build-spec.batch.build-matrix)

### Bangun fanout
<a name="batch_build_fanout"></a>

Fanout build mendefinisikan tugas yang akan dibagi menjadi beberapa build dalam batch. Ini dapat digunakan untuk menjalankan tes secara paralel. CodeBuild membuat build terpisah untuk setiap pecahan kasus uji berdasarkan nilai yang ditetapkan di `parallelism` bidang.

Contoh berikut mendefinisikan fanout build yang membuat lima build yang berjalan secara paralel.

```
version: 0.2

batch:
   fast-fail: false 
   build-fanout:
     parallelism: 5
     ignore-failure: false

phases:
  install:
    commands:
      - npm install
   build:
    commands:
      - mkdir -p test-results
      - cd test-results
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'
```

Dalam contoh ini, dengan asumsi bahwa ada 100 tes yang perlu dijalankan, CodeBuild membuat lima build yang masing-masing menjalankan 20 tes secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec grafik build, lihat. [`batch/build-fanout`](batch-build-buildspec.md#build-spec.batch.build-fanout)

## Mode laporan batch
<a name="batch-report-mode"></a>

Jika penyedia sumber untuk project Anda adalah Bitbucket, GitHub, atau GitHub Enterprise, dan project Anda dikonfigurasi untuk melaporkan status build ke penyedia sumber, Anda dapat memilih bagaimana status build batch Anda dikirim ke penyedia sumber. Anda dapat memilih agar status dikirim sebagai laporan status agregat tunggal untuk batch, atau memiliki status setiap build dalam batch yang dilaporkan satu per satu.

Untuk informasi selengkapnya, lihat topik berikut:
+ [Konfigurasi Batch (buat)](create-project.md#create-project-console-batch-config)
+ [Konfigurasi Batch (pembaruan)](change-project.md#change-project-console-batch-config)

## Informasi selengkapnya
<a name="batch_more_info"></a>

Untuk informasi selengkapnya, lihat topik berikut:
+ [Referensi buildspec build Batch](batch-build-buildspec.md)
+ [Konfigurasi Batch](create-project.md#create-project-console-batch-config)
+ [Jalankan batch build (AWS CLI)](run-batch-build-cli.md)
+ [Hentikan pembuatan batch AWS CodeBuild](stop-batch-build.md)

# Jalankan tes paralel dalam build batch
<a name="parallel-test"></a>

Anda dapat menggunakan AWS CodeBuild untuk menjalankan tes paralel dalam build batch. Eksekusi uji paralel adalah pendekatan pengujian di mana beberapa kasus uji berjalan secara bersamaan di berbagai lingkungan, mesin, atau browser, daripada mengeksekusi secara berurutan. Pendekatan ini dapat secara signifikan mengurangi waktu pelaksanaan pengujian secara keseluruhan dan meningkatkan efisiensi pengujian. Di CodeBuild, Anda dapat membagi pengujian Anda di beberapa lingkungan dan menjalankannya secara bersamaan.

Keuntungan utama dari eksekusi uji paralel meliputi:

1. **Mengurangi waktu eksekusi** - Pengujian yang akan memakan waktu berjam-jam secara berurutan dapat diselesaikan dalam hitungan menit.

1. **Pemanfaatan sumber daya yang lebih baik** - Memanfaatkan sumber daya komputasi yang tersedia secara efisien.

1. **Umpan balik sebelumnya** - Penyelesaian tes yang lebih cepat berarti umpan balik yang lebih cepat kepada pengembang.

1. **Hemat biaya** - Menghemat waktu dan biaya komputasi dalam jangka panjang.

Saat menerapkan eksekusi uji paralel, dua pendekatan utama umumnya dipertimbangkan: lingkungan terpisah dan multithreading. Sementara kedua metode bertujuan untuk mencapai eksekusi tes bersamaan, keduanya berbeda secara signifikan dalam implementasi dan efektivitasnya. Lingkungan terpisah membuat instance terisolasi di mana setiap rangkaian pengujian berjalan secara independen, sementara multithreading mengeksekusi beberapa pengujian secara bersamaan dalam ruang proses yang sama menggunakan utas yang berbeda.

Keuntungan utama dari lingkungan terpisah dibandingkan multithreading meliputi:

1. **Isolasi** - Setiap pengujian berjalan di lingkungan yang benar-benar terisolasi, mencegah interferensi antar pengujian.

1. **Konflik sumber daya** - Tidak ada persaingan untuk sumber daya bersama yang sering terjadi dalam multithreading.

1. **Stabilitas** - Kurang rentan terhadap kondisi balapan dan masalah sinkronisasi.

1. **Debugging yang lebih mudah** - Ketika pengujian gagal, lebih mudah untuk mengidentifikasi penyebabnya karena setiap lingkungan independen.

1. **Manajemen negara** - Kelola masalah status bersama dengan mudah yang mengganggu tes multithreaded.

1. **Skalabilitas yang lebih baik** - Dapat dengan mudah menambahkan lebih banyak lingkungan tanpa kerumitan.

**Topics**
+ [Support di AWS CodeBuild](#parallel-test-support)
+ [Aktifkan eksekusi uji paralel dalam build batch](parallel-test-enable.md)
+ [Gunakan perintah `codebuild-tests-run` CLI](parallel-test-tests-run.md)
+ [Gunakan perintah `codebuild-glob-search` CLI](parallel-test-glob-search.md)
+ [Tentang test splitting](parallel-test-splitting.md)
+ [Secara otomatis menggabungkan laporan build individual](parallel-test-auto-merge.md)
+ [Eksekusi uji paralel untuk berbagai sampel kerangka pengujian](sample-parallel-test.md)

## Support di AWS CodeBuild
<a name="parallel-test-support"></a>

AWS CodeBuild memberikan dukungan kuat untuk eksekusi uji paralel melalui fitur pembuatan batch, yang dirancang khusus untuk memanfaatkan eksekusi lingkungan yang terpisah. Implementasi ini selaras sempurna dengan manfaat lingkungan pengujian yang terisolasi.

**Batch build dengan distribusi pengujian**  
CodeBuildfungsionalitas batch build memungkinkan pembuatan beberapa lingkungan build yang berjalan secara bersamaan. Setiap lingkungan beroperasi sebagai unit yang sepenuhnya terisolasi, dengan sumber daya komputasi, lingkungan runtime, dan dependensinya sendiri. Melalui konfigurasi batch build, Anda dapat menentukan berapa banyak lingkungan paralel yang mereka butuhkan dan bagaimana pengujian harus didistribusikan di seluruh lingkungan tersebut.

**Uji sharding CLI**  
CodeBuild mencakup mekanisme distribusi pengujian bawaan melalui alat CLI`codebuild-tests-run`, yang secara otomatis membagi pengujian ke dalam lingkungan yang berbeda.

**Laporkan agregasi**  
Salah satu kekuatan utama implementasi CodeBuild ini adalah kemampuannya untuk menangani agregasi hasil tes dengan mulus. Saat pengujian dijalankan di lingkungan terpisah, CodeBuild secara otomatis mengumpulkan dan menggabungkan laporan pengujian dari setiap lingkungan ke dalam laporan pengujian terpadu di tingkat pembuatan batch. Konsolidasi ini memberikan pandangan yang komprehensif tentang hasil pengujian sambil mempertahankan manfaat efisiensi dari eksekusi paralel.

Berikut ini adalah diagram yang menjelaskan konsep lengkap eksekusi uji paralel di AWS CodeBuild.

![\[Diagram konsep eksekusi uji paralel.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/parallel-test.png)


# Aktifkan eksekusi uji paralel dalam build batch
<a name="parallel-test-enable"></a>

Untuk menjalankan pengujian secara paralel, perbarui file buildspec build batch untuk menyertakan bidang build-fanout dan jumlah build paralel untuk membagi rangkaian pengujian di bidang seperti yang ditunjukkan di bawah ini. `parallelism` `parallelism`Bidang menentukan berapa banyak pelaksana independen yang disiapkan untuk menjalankan rangkaian pengujian.

Untuk menjalankan pengujian di beberapa lingkungan eksekusi paralel, atur `parallelism` bidang ke nilai yang lebih besar dari nol. Dalam contoh di bawah `parallelism` ini, diatur ke lima, artinya CodeBuild dimulai lima build identik yang mengeksekusi sebagian dari rangkaian pengujian secara paralel.

Anda dapat menggunakan perintah [codebuild-tests-run](parallel-test-tests-run.md)CLI untuk membagi dan menjalankan pengujian Anda. File pengujian Anda akan dibagi, dan sebagian pengujian Anda dijalankan di setiap build. Ini mengurangi waktu keseluruhan yang dibutuhkan untuk menjalankan rangkaian pengujian lengkap. Dalam contoh berikut, tes akan dibagi menjadi lima dan poin split dihitung berdasarkan nama tes.

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  install:
    commands:
      - npm install jest-junit --save-dev
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/_tests_/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'

  post_build:
    commands:
      - codebuild-glob-search '**/*.xml'  
      - echo "Running post-build steps..."
      - echo "Build completed on `date`"

reports:
  test-reports:
    files:
      - '**/junit.xml'               
    base-directory: .
    discard-paths: yes           
    file-format: JUNITXML
```

Jika laporan dikonfigurasi untuk build build-fanout, maka laporan pengujian dibuat untuk setiap build secara terpisah, yang dapat dilihat di bawah tab **Laporan** dari build terkait di konsol. AWS CodeBuild 

Untuk informasi selengkapnya tentang cara menjalankan pengujian paralel dalam batch, lihat[Eksekusi uji paralel untuk berbagai sampel kerangka pengujian](sample-parallel-test.md).

# Gunakan perintah `codebuild-tests-run` CLI
<a name="parallel-test-tests-run"></a>

AWS CodeBuild menyediakan CLI yang akan mengambil perintah uji dan lokasi file uji sebagai input. CLI dengan input ini akan membagi tes menjadi jumlah pecahan seperti yang ditentukan di `parallelism` bidang berdasarkan nama file uji. Penugasan file uji ke pecahan ditentukan oleh strategi sharding.

```
codebuild-tests-run \
    --files-search "codebuild-glob-search '**/__tests__/*.js'" \
    --test-command 'npx jest --runInBand --coverage' \
    --sharding-strategy 'equal-distribution'
```

Tabel berikut menjelaskan bidang untuk perintah `codebuild-tests-run` CLI.


| Nama bidang | Jenis | Diperlukan atau opsional | Definisi | 
| --- | --- | --- | --- | 
|  `test-command`  |  String  |  Diperlukan  |  Perintah ini digunakan untuk menjalankan tes.  | 
|  `files-search`  |  String  |  Diperlukan  |  Perintah ini memberikan daftar file uji. Anda dapat menggunakan perintah [codebuild-glob-search](parallel-test-glob-search.md)CLI yang AWS CodeBuild disediakan atau alat pencarian file lain pilihan Anda.  Pastikan bahwa `files-search` perintah mengeluarkan nama file, masing-masing dipisahkan oleh baris baru.   | 
|  `sharding-strategy`  |  Enum  |  Opsional  |  Nilai yang valid: `equal-distribution` (default), `stability` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/parallel-test-tests-run.html) Untuk informasi selengkapnya, lihat [Tentang test splitting](parallel-test-splitting.md).  | 

`codebuild-tests-run`CLI bekerja terlebih dahulu untuk mengidentifikasi daftar file uji menggunakan perintah yang disediakan dalam parameter. `files-search` Kemudian menentukan subset file uji yang ditunjuk untuk pecahan saat ini (lingkungan) menggunakan strategi sharding yang ditentukan. Akhirnya, subset file uji ini diformat ke dalam daftar yang dipisahkan spasi dan ditambahkan ke akhir perintah yang disediakan dalam parameter sebelum dieksekusi. `test-command`

Untuk kerangka kerja pengujian yang tidak menerima daftar yang dipisahkan spasi, `codebuild-tests-run` CLI menyediakan alternatif yang fleksibel melalui variabel lingkungan. `CODEBUILD_CURRENT_SHARD_FILES` Variabel ini berisi daftar jalur file pengujian yang dipisahkan baris baru yang ditunjuk untuk pecahan build saat ini. Dengan memanfaatkan variabel lingkungan ini, Anda dapat dengan mudah beradaptasi dengan berbagai persyaratan kerangka pengujian, mengakomodasi yang mengharapkan format input berbeda dari daftar yang dipisahkan ruang. Selain itu, Anda juga dapat memformat nama file pengujian sesuai kebutuhan kerangka pengujian. Berikut ini adalah contoh dari penggunaan `CODEBUILD_CURRENT_SHARD_FILES` pada Linux dengan kerangka Django. Di sini `CODEBUILD_CURRENT_SHARD_FILES` digunakan untuk mendapatkan jalur berkas *notasi titik* didukung oleh Django:

```
codebuild-tests-run \
    —files-search "codebuild-glob-search '/tests/test_.py'" \
    —test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \
    —sharding-strategy 'equal-distribution'
```

**catatan**  
Perhatikan bahwa variabel `CODEBUILD_CURRENT_SHARD_FILES` lingkungan hanya dapat digunakan di dalam lingkup `codebuild-tests-run` CLI.  
Juga, jika Anda menggunakan `CODEBUILD_CURRENT_SHARD_FILES` di dalam test-command, masukkan `CODEBUILD_CURRENT_SHARD_FILES` tanda kutip ganda seperti yang ditunjukkan pada contoh di atas.

# Gunakan perintah `codebuild-glob-search` CLI
<a name="parallel-test-glob-search"></a>

AWS CodeBuild menyediakan alat CLI bawaan `codebuild-glob-search` yang disebut yang memungkinkan Anda mencari file di direktori kerja Anda berdasarkan satu atau lebih pola glob. Alat ini dapat sangat berguna ketika Anda ingin menjalankan tes pada file atau direktori tertentu dalam proyek Anda.

## Penggunaan
<a name="parallel-test-glob-search.usage"></a>

`codebuild-glob-search`CLI memiliki sintaks penggunaan berikut:

```
codebuild-glob-search <glob_pattern1> [<glob_pattern2> ...]
```
+ `<glob_pattern1>`,`<glob_pattern2>`, dll.: Satu atau lebih pola glob untuk dicocokkan dengan file di direktori kerja Anda.
+ `*`: Cocokkan urutan karakter apa pun (tidak termasuk pemisah jalur).
+ `**`: Cocokkan urutan karakter apa pun (termasuk pemisah jalur).

**catatan**  
Pastikan bahwa string glob memiliki tanda kutip. Untuk memeriksa hasil pencocokan pola, gunakan perintah. `echo`  

```
version: 0.2

phases:
  build:
    commands:
      - echo $(codebuild-glob-search '**/__tests__/*.js')
      - codebuild-glob-search '**/__tests__/*.js' | xargs -n 1 echo
```

## Output
<a name="parallel-test-glob-search.output"></a>

CLI akan menampilkan daftar jalur file yang dipisahkan baris baru yang cocok dengan pola glob yang disediakan. Jalur file yang dikembalikan akan relatif terhadap direktori kerja.

Jika tidak ada file yang ditemukan cocok dengan pola yang disediakan, CLI akan menampilkan pesan yang menunjukkan bahwa tidak ada file yang ditemukan.

Perhatikan bahwa direktori yang ditemukan karena pola yang diberikan akan dikecualikan dari hasil pencarian.

## Contoh
<a name="parallel-test-glob-search.example"></a>

Jika Anda hanya ingin mencari file di dalam direktori tes dan subdirektorinya dengan `.js` ekstensi, Anda dapat menggunakan perintah berikut dengan CLI`codebuild-glob-search`:

```
codebuild-glob-search '**/__tests__/*.js'
```

Perintah ini akan mencari semua file dengan `.js` ekstensi di dalam `__tests__` direktori dan subdirektorinya, seperti yang dilambangkan dengan pola.

# Tentang test splitting
<a name="parallel-test-splitting"></a>

AWS CodeBuild Fitur pemisahan pengujian memungkinkan Anda memparalelkan eksekusi rangkaian pengujian Anda di beberapa instance komputasi, mengurangi waktu uji coba secara keseluruhan. Fitur ini diaktifkan melalui konfigurasi batch di pengaturan CodeBuild proyek Anda dan `codebuild-tests-run` utilitas dalam file buildspec Anda.

Tes dibagi berdasarkan strategi sharding yang ditentukan. CodeBuild menyediakan dua strategi sharding seperti yang ditentukan di bawah ini:

Distribusi yang sama  
Strategi `equal-distribution` sharding membagi tes di seluruh build paralel berdasarkan urutan abjad dari nama file uji. Pendekatan ini pertama-tama mengurutkan file pengujian dan kemudian menggunakan metode berbasis potongan untuk mendistribusikannya, memastikan bahwa file serupa dikelompokkan bersama untuk pengujian. Disarankan ketika berhadapan dengan satu set file uji yang relatif kecil. Meskipun metode ini bertujuan untuk mengalokasikan jumlah file yang kira-kira sama untuk setiap pecahan, dengan perbedaan maksimum satu, itu tidak menjamin stabilitas. Ketika file pengujian ditambahkan atau dihapus dalam build berikutnya, distribusi file yang ada dapat berubah, berpotensi menyebabkan penugasan kembali di seluruh pecahan.

Stabilitas  
Strategi `stability` sharding menggunakan algoritma hashing yang konsisten untuk membagi tes di antara pecahan, memastikan bahwa distribusi file tetap stabil. Ketika file baru ditambahkan atau dihapus, pendekatan ini memastikan bahwa file-to-shard tugas yang ada sebagian besar tetap tidak berubah. Untuk rangkaian pengujian besar, disarankan untuk menggunakan opsi stabilitas untuk mendistribusikan pengujian secara merata di seluruh pecahan. Mekanisme ini bertujuan untuk memberikan distribusi yang hampir sama, memastikan bahwa setiap pecahan menerima jumlah file yang sama, dengan hanya varians minimal. Meskipun strategi stabilitas tidak menjamin distribusi setara yang ideal, ia menawarkan distribusi yang hampir sama yang menjaga konsistensi dalam penugasan file di seluruh build, bahkan saat file ditambahkan atau dihapus.

Untuk mengaktifkan pemisahan pengujian, Anda perlu mengonfigurasi bagian batch di pengaturan CodeBuild proyek Anda, menentukan `parallelism` level yang diinginkan dan parameter relevan lainnya. Selain itu, Anda harus menyertakan `codebuild-tests-run` utilitas dalam file buildspec Anda, bersama dengan perintah pengujian dan metode pemisahan yang sesuai.

# Secara otomatis menggabungkan laporan build individual
<a name="parallel-test-auto-merge"></a>

Dalam pembuatan batch fanout, AWS CodeBuild mendukung penggabungan otomatis laporan build individual ke dalam laporan tingkat batch terkonsolidasi. Fitur ini memberikan tampilan komprehensif tentang hasil pengujian dan cakupan kode di semua build dalam satu batch.

## Cara kerjanya
<a name="parallel-test-auto-merge.how"></a>

Saat menjalankan build `fanout` batch, setiap build individu menghasilkan laporan [pengujian](test-reporting.md). CodeBuild kemudian secara otomatis mengkonsolidasikan laporan identik dari build yang berbeda ke dalam laporan terpadu, yang dilampirkan ke build batch. Laporan konsolidasi ini mudah diakses melalui `reportArns` bidang [ BatchGetBuildBatches](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BatchGetBuildBatches.html#CodeBuild-BatchGetBuildBatches-response-buildBatches)API, dan juga dapat dilihat di tab **Laporan** konsol. Kemampuan penggabungan ini meluas ke laporan yang ditemukan secara otomatis juga.

Laporan konsolidasi dibuat di bawah [grup laporan](test-report-group.md) yang ditentukan dalam buildspec atau ditemukan secara otomatis oleh. CodeBuild Anda dapat menganalisis tren laporan gabungan secara langsung di bawah grup laporan ini, memberikan wawasan berharga tentang kinerja build secara keseluruhan dan metrik kualitas di seluruh build historis dari proyek build-batch yang sama.

Untuk setiap build individu dalam batch, CodeBuild secara otomatis membuat grup laporan terpisah. Ini mengikuti konvensi penamaan tertentu, menggabungkan nama grup laporan pembuatan batch dengan akhiran`BuildFanoutShard<shard_number>`, di mana `shard_number` mewakili jumlah pecahan di mana grup laporan dibuat. Organisasi ini memungkinkan Anda untuk melacak dan menganalisis tren di tingkat build konsolidasi dan individu, memberikan fleksibilitas dalam cara Anda memantau dan mengevaluasi proses build mereka.

Laporan batch-build mengikuti struktur yang sama dengan laporan [build individual](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Report.html). Bidang kunci berikut di tab **Laporan** khusus untuk laporan pembuatan batch:

**Status laporan pembuatan Batch**  
Status laporan pembuatan batch mengikuti aturan tertentu tergantung pada jenis laporan:  
+ Laporan pengujian:
  + Berhasil: Status diatur untuk berhasil ketika semua laporan build individu telah berhasil.
  + Gagal: Status disetel ke gagal jika ada laporan build individu yang gagal.
  + Tidak lengkap: Status ditandai sebagai tidak lengkap jika ada laporan build individu yang hilang atau memiliki status tidak lengkap.
+ Laporan cakupan kode:
  + Selesai: Status diatur untuk selesai ketika semua laporan build individual selesai.
  + Gagal: Status disetel ke gagal jika ada laporan build individu yang gagal.
  + Tidak lengkap: Status ditandai sebagai tidak lengkap jika ada laporan build individu yang hilang atau memiliki status tidak lengkap.

**Ringkasan tes**  
Laporan pengujian gabungan menggabungkan bidang berikut dari semua laporan build individual:  
+ duration-in-nano-seconds: Waktu durasi pengujian maksimum dalam nanodetik di antara semua laporan build individual.
+ total: Jumlah gabungan dari semua kasus uji, menjumlahkan jumlah total pengujian dari setiap build.
+ status-counts: Menyediakan tampilan konsolidasi status pengujian seperti lulus, gagal, atau dilewati, dihitung dengan menggabungkan jumlah setiap jenis status di semua build individu.

**Ringkasan cakupan kode**  
Laporan cakupan kode gabungan menggabungkan bidang dari semua build individual menggunakan perhitungan berikut:  
+ tertutup cabang: Jumlah semua cabang yang tercakup dari laporan individu.
+ cabang-terlewatkan: Jumlah semua cabang yang terlewat dari laporan individu.
+ branch-coverage-percentage: `(Total covered branches / Total branches) * 100`
+ lines-covered: Jumlah semua baris yang tercakup dari laporan individual.
+ lines-miss: Jumlah semua baris yang terlewat dari laporan individual.
+ lines-coverage-percentage: `(Total covered lines / Total lines) * 100`

**ID Eksekusi**  
Batch membangun ARN.

**Kasus uji**  
Laporan gabungan berisi daftar konsolidasi semua kasus pengujian dari build individual, yang dapat diakses melalui [DescribeTestCases](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeTestCases.html)API dan laporan pembuatan batch di konsol.

**Cakupan kode**  
Laporan cakupan kode gabungan menyediakan informasi cakupan baris dan cabang terkonsolidasi untuk setiap file di semua build individual, dapat diakses melalui [DescribeCodeCoverages](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeCodeCoverages.html)API dan laporan pembuatan batch di konsol. Catatan: Untuk file yang dicakup oleh beberapa file pengujian yang didistribusikan di seluruh pecahan yang berbeda, laporan gabungan menggunakan kriteria pemilihan berikut:  

1. Pemilihan primer didasarkan pada cakupan garis tertinggi di antara pecahan.

1. Jika cakupan garis sama di beberapa pecahan, pecahan dengan cakupan cabang tertinggi dipilih.

# Eksekusi uji paralel untuk berbagai sampel kerangka pengujian
<a name="sample-parallel-test"></a>

Anda dapat menggunakan perintah `codebuild-tests-run` CLI untuk membagi dan menjalankan pengujian Anda di seluruh lingkungan eksekusi paralel. Bagian berikut menyediakan `buildspec.yml` sampel untuk berbagai kerangka kerja, menggambarkan penggunaan perintah. `codebuild-tests-run`
+ Setiap contoh di bawah ini mencakup `parallelism` level lima, yang berarti bahwa lima lingkungan eksekusi yang identik akan dibuat untuk membagi pengujian Anda. Anda dapat memilih `parallelism` level yang sesuai dengan proyek Anda dengan memodifikasi `parallelism` nilai di `build-fanout` bagian tersebut.
+ Setiap contoh di bawah ini menunjukkan konfigurasi pengujian Anda untuk dibagi dengan nama file pengujian, yang secara default. Ini mendistribusikan tes secara merata di seluruh lingkungan eksekusi paralel.

Sebelum Anda memulai, lihat [Jalankan tes paralel dalam build batch](parallel-test.md) untuk informasi lebih lanjut.

Untuk daftar lengkap opsi saat menggunakan perintah `codebuild-tests-run` CLI, lihat. [Gunakan perintah `codebuild-tests-run` CLI](parallel-test-tests-run.md)

**Topics**
+ [Konfigurasikan tes paralel dengan Django](sample-parallel-test-django.md)
+ [Konfigurasikan tes paralel dengan Elixir](sample-parallel-test-elixir.md)
+ [Konfigurasikan tes paralel dengan Go](sample-parallel-test-go.md)
+ [Konfigurasikan tes paralel dengan Java (Maven)](sample-parallel-test-java-maven.md)
+ [Konfigurasikan tes paralel dengan Javascript (Jest)](sample-parallel-test-javascript.md)
+ [Konfigurasikan tes paralel dengan Kotlin](sample-parallel-test-kotlin.md)
+ [Konfigurasikan tes paralel dengan PHPUnit](sample-parallel-test-phpunit.md)
+ [Konfigurasikan tes paralel dengan Pytest](sample-parallel-test-python.md)
+ [Konfigurasikan tes paralel dengan Ruby (Mentimun)](sample-parallel-test-ruby-cucumber.md)
+ [Konfigurasikan tes paralel dengan Ruby () RSpec](sample-parallel-test-ruby.md)

# Konfigurasikan tes paralel dengan Django
<a name="sample-parallel-test-django"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Django pada platform Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - sudo yum install -y python3 python3-pip 
      - python3 -m ensurepip --upgrade 
      - python3 -m pip install django
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Django Tests'
      - |
        codebuild-tests-run \
         --test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ 
         --files-search "codebuild-glob-search '**/tests/*test_*.py'" \
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo 'Test execution completed'
```

Contoh di atas menunjukkan penggunaan variabel lingkungan`CODEBUILD_CURRENT_SHARD_FILES`. Di sini `CODEBUILD_CURRENT_SHARD_FILES` digunakan untuk mengambil jalur berkas notasi titik didukung oleh Django. Gunakan tanda kutip ganda `CODEBUILD_CURRENT_SHARD_FILES` di dalam seperti yang ditunjukkan di atas.

# Konfigurasikan tes paralel dengan Elixir
<a name="sample-parallel-test-elixir"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Elixir pada platform Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Elixir dependencies'
      - sudo apt update
      - sudo DEBIAN_FRONTEND=noninteractive apt install -y elixir
      - elixir --version
      - mix --version
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Elixir Tests'
      - |
        codebuild-tests-run \
         --test-command 'mix test' \
         --files-search "codebuild-glob-search '**/test/**/*_test.exs'" \ 
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# Konfigurasikan tes paralel dengan Go
<a name="sample-parallel-test-go"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Go pada platform Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Fetching Go version'
      - go version
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running go Tests'
      - go mod init calculator
      - cd calc
      - |
        codebuild-tests-run \
         --test-command "go test -v calculator.go" \
         --files-search "codebuild-glob-search '**/*test.go'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Dalam contoh di atas, `calculator.go` fungsi berisi fungsi matematika sederhana untuk menguji dan semua file uji dan `calculator.go` file ada di dalam `calc` folder.

# Konfigurasikan tes paralel dengan Java (Maven)
<a name="sample-parallel-test-java-maven"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Java pada platform Linux:

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo "Running mvn test"
      - |
        codebuild-tests-run \
          --test-command 'mvn test -Dtest=$(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed "s|src/test/java/||g; s/\.java//g; s|/|.|g; s/ /,/g" | tr "\n" "," | sed "s/,$//")' \
          --files-search "codebuild-glob-search '**/test/**/*.java'"
         
  post_build:
    commands:
      - echo "Running post-build steps..."
      - echo "Test execution completed"
```

Dalam contoh yang diberikan, variabel lingkungan `CODEBUILD_CURRENT_SHARD_FILES` berisi file uji dalam pecahan saat ini, dipisahkan oleh baris baru. File-file ini diubah menjadi daftar nama kelas yang dipisahkan koma dalam format yang diterima oleh `-Dtest` parameter untuk Maven.

# Konfigurasikan tes paralel dengan Javascript (Jest)
<a name="sample-parallel-test-javascript"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Javascript pada platform Ubuntu:

```
version: 0.2

batch:
  fast-fail: true
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Node.js dependencies'
      - apt-get update
      - apt-get install -y nodejs
      - npm install
      - npm install --save-dev jest-junit
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running JavaScript Tests'
      - |
         codebuild-tests-run \
          --test-command "npx jest" \
          --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
          --sharding-strategy 'stability'
    post_build:
      commands:
        - echo 'Test execution completed'
```

# Konfigurasikan tes paralel dengan Kotlin
<a name="sample-parallel-test-kotlin"></a>

Berikut ini adalah contoh dari sebuah `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Kotlin pada platform Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 2
    ignore-failure: false

phases:
  install:
    runtime-versions:
      java: corretto11 
    commands:
      - echo 'Installing dependencies'
      - KOTLIN_VERSION="1.8.20" # Replace with your desired version
      - curl -o kotlin-compiler.zip -L "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip"
      - unzip kotlin-compiler.zip -d /usr/local
      - export PATH=$PATH:/usr/local/kotlinc/bin
      - kotlin -version
      - curl -O https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.8.2/junit-platform-console-standalone-1.8.2.jar
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Kotlin Tests'
      - |
        codebuild-tests-run \
          --test-command 'kotlinc src/main/kotlin/*.kt $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | tr "\n" " ") -d classes -cp junit-platform-console-standalone-1.8.2.jar' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
      - |
        codebuild-tests-run \
          --test-command '
            java -jar junit-platform-console-standalone-1.8.2.jar --class-path classes \
              $(for file in $CODEBUILD_CURRENT_SHARD_FILES; do
                 class_name=$(basename "$file" .kt)
                 echo "--select-class $class_name"
               done)
          ' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Dalam contoh di atas, `codebuild-tests-run` CLI digunakan dua kali. Selama proses pertama, kotlinc mengkompilasi file. `CODEBUILD_CURRENT_SHARD_FILES`Variabel mengambil file uji yang ditugaskan ke pecahan saat ini, yang kemudian diubah menjadi daftar yang dipisahkan spasi. Pada putaran kedua, JUnit jalankan tes. Sekali lagi, `CODEBUILD_CURRENT_SHARD_FILES` mengambil file uji yang ditugaskan ke pecahan saat ini, tetapi kali ini mereka diubah menjadi nama kelas.

# Konfigurasikan tes paralel dengan PHPUnit
<a name="sample-parallel-test-phpunit"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan PHPUnit pada platform Linux:

```
version: 0.2
 
batch:
   fast-fail: false
   build-fanout:
     parallelism: 5
     ignore-failure: false
 
phases:
   install:
     commands:
       - echo 'Install dependencies'
       - composer require --dev phpunit/phpunit
   pre_build:
     commands:
       - echo 'prebuild'
   build:
     commands:
       - echo 'Running phpunit Tests'
       - composer dump-autoload
       - | 
         codebuild-tests-run \
          --test-command "./vendor/bin/phpunit --debug" \ 
          --files-search "codebuild-glob-search '**/tests/*Test.php'"
   post_build:
       commands:
         - echo 'Test execution completed'
```

# Konfigurasikan tes paralel dengan Pytest
<a name="sample-parallel-test-python"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Pytest pada platform Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - apt-get update
      - apt-get install -y python3 python3-pip
      - pip3 install --upgrade pip
      - pip3 install pytest
  build:
    commands:
      - echo 'Running Python Tests'
      - |
         codebuild-tests-run \
          --test-command 'python -m pytest' \
          --files-search "codebuild-glob-search 'tests/test_*.py'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Pytest pada platform Windows:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - pip install pytest
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running pytest'
      - |
        & codebuild-tests-run `
         --test-command 'pytest @("$env:CODEBUILD_CURRENT_SHARD_FILES" -split \"`r?`n\")'  `
         --files-search "codebuild-glob-search '**/test_*.py' '**/*_test.py'" `
         --sharding-strategy 'equal-distribution' 
  post_build:
    commands:
      - echo "Test execution completed"
```

Dalam contoh di atas, variabel `CODEBUILD_CURRENT_SHARD_FILES` lingkungan digunakan untuk mengambil file uji yang ditugaskan ke pecahan saat ini dan diteruskan sebagai array ke perintah pytest.

# Konfigurasikan tes paralel dengan Ruby (Mentimun)
<a name="sample-parallel-test-ruby-cucumber"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan Cucumber pada platform Linux:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - gem install bundler
      - bundle install
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Cucumber Tests'
      - cucumber --init
      - |
        codebuild-tests-run \
         --test-command "cucumber" \
         --files-search "codebuild-glob-search '**/*.feature'"
  post_build:
    commands:
      - echo "Test execution completed"
```

# Konfigurasikan tes paralel dengan Ruby () RSpec
<a name="sample-parallel-test-ruby"></a>

Berikut ini adalah contoh dari `buildspec.yml` yang menunjukkan eksekusi uji paralel dengan RSpec pada platform Ubuntu:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - apt-get update
      - apt-get install -y ruby ruby-dev build-essential
      - gem install bundler
      - bundle install
  build:
    commands:
      - echo 'Running Ruby Tests'
      - |
         codebuild-tests-run \
          --test-command 'bundle exec rspec' \
          --files-search "codebuild-glob-search 'spec/**/*_spec.rb'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# Cache dibangun untuk meningkatkan kinerja
<a name="build-caching"></a>

Anda dapat menghemat waktu ketika proyek Anda dibangun dengan menggunakan cache. Cache dapat menyimpan bagian yang dapat digunakan kembali dari lingkungan build Anda dan menggunakannya di beberapa build. Proyek build Anda dapat menggunakan salah satu dari dua jenis caching: Amazon S3 atau lokal. Jika Anda menggunakan cache lokal, Anda harus memilih satu atau lebih dari tiga mode cache: cache sumber, cache lapisan Docker, dan cache khusus. 

**catatan**  
Mode cache lapisan Docker hanya tersedia untuk lingkungan Linux. Jika Anda memilih mode ini, Anda harus menjalankan build Anda dalam mode istimewa. CodeBuild proyek yang diberikan mode istimewa memberikan akses kontainernya ke semua perangkat. Untuk informasi selengkapnya, lihat [hak istimewa Runtime dan kemampuan Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) di situs web Docker Docs.

**Topics**
+ [Caching Amazon S3](caching-s3.md)
+ [Caching lokal](caching-local.md)
+ [Tentukan cache lokal](specify-caching-local.md)

# Caching Amazon S3
<a name="caching-s3"></a>

Caching Amazon S3 menyimpan cache di bucket Amazon S3 yang tersedia di beberapa host build. Ini adalah pilihan yang baik untuk artefak bangunan berukuran kecil hingga menengah yang lebih mahal untuk dibangun daripada diunduh.

Untuk menggunakan Amazon S3 dalam build, Anda dapat menentukan jalur untuk file yang ingin Anda cache. `buildspec.yml` CodeBuild akan secara otomatis menyimpan dan memperbarui cache ke lokasi Amazon S3 yang dikonfigurasi pada proyek. Jika Anda tidak menentukan jalur file, upaya terbaik CodeBuild akan menyimpan dependensi bahasa umum untuk membantu Anda mempercepat build. Anda dapat melihat detail cache di log build.

Selain itu, jika Anda ingin memiliki beberapa versi cache, Anda dapat menentukan kunci cache di file`buildspec.yml`. CodeBuild menyimpan cache di bawah konteks kunci cache ini, dan membuat salinan cache unik yang tidak akan diperbarui setelah dibuat. Kunci cache dapat dibagikan di seluruh proyek juga. Fitur seperti tombol dinamis, pembuatan versi cache, dan berbagi cache di seluruh build hanya tersedia saat kunci ditentukan.

Untuk mempelajari lebih lanjut tentang sintaks cache dalam file buildspec, lihat [cache](build-spec-ref.md#build-spec.cache) referensi buildspec.

**Topics**
+ [Hasilkan kunci dinamis](#caching-s3-dynamic)
+ [codebuild-hash-files](#caching-s3-dynamic.codebuild-hash-files)
+ [Versi cache](#caching-s3-version)
+ [Berbagi cache antar proyek](#caching-s3-sharing)
+ [Contoh Buildspec](#caching-s3-examples)

## Hasilkan kunci dinamis
<a name="caching-s3-dynamic"></a>

Kunci cache dapat menyertakan perintah shell dan variabel lingkungan untuk membuatnya unik, memungkinkan pembaruan cache otomatis saat kunci berubah. Misalnya, Anda dapat menentukan kunci menggunakan hash `package-lock.json` file. Ketika dependensi dalam file itu berubah, hash—dan karena itu kunci cache—berubah, memicu pembuatan cache baru secara otomatis.

```
cache:
    key: npm-key-$(codebuild-hash-files package-lock.json)
```

CodeBuild akan mengevaluasi ekspresi `$(codebuild-hash-files package-lock.json)` untuk mendapatkan kunci akhir:

```
npm-key-abc123
```

Anda juga dapat menentukan kunci cache menggunakan variabel lingkungan, seperti`CODEBUILD_RESOLVED_SOURCE_VERSION`. Ini memastikan bahwa setiap kali sumber Anda berubah, kunci baru dihasilkan, sehingga cache baru disimpan secara otomatis:

```
cache:
   key: npm-key-$CODEBUILD_RESOLVED_SOURCE_VERSION
```

CodeBuild akan mengevaluasi ekspresi dan mendapatkan kunci akhir:

```
npm-key-046e8b67481d53bdc86c3f6affdd5d1afae6d369
```

## codebuild-hash-files
<a name="caching-s3-dynamic.codebuild-hash-files"></a>

`codebuild-hash-files`adalah alat CLI yang menghitung hash SHA-256 untuk satu set file di direktori sumber menggunakan pola glob: CodeBuild 

```
codebuild-hash-files <glob-pattern-1> <glob-pattern-2> ...
```

Berikut adalah beberapa contoh menggunakan`codebuild-hash-files`:

```
codebuild-hash-files package-lock.json
codebuild-hash-files '**/*.md'
```

## Versi cache
<a name="caching-s3-version"></a>

Versi cache adalah hash yang dihasilkan dari jalur direktori yang di-cache. Jika dua cache memiliki versi yang berbeda, mereka diperlakukan sebagai cache yang berbeda selama proses pencocokan. Misalnya, dua cache berikut dianggap berbeda karena merujuk pada jalur yang berbeda:

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "pip-dependencies/**/*"
```

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target tmp/pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "tmp/pip-dependencies/**/*"
```

## Berbagi cache antar proyek
<a name="caching-s3-sharing"></a>

Anda dapat menggunakan bidang `cacheNamespace` API di bawah `cache` bagian untuk berbagi cache di beberapa proyek. Bidang ini mendefinisikan ruang lingkup cache. Untuk berbagi cache, harus melakukan hal berikut:
+ Gunakan yang sama`cacheNamespace`.
+ Tentukan cache yang sama`key`.
+ Tentukan jalur cache yang identik.
+ Gunakan bucket Amazon S3 yang sama dan `pathPrefix` jika disetel.

Ini memastikan konsistensi dan memungkinkan berbagi cache di seluruh proyek.

### Tentukan namespace cache (konsol)
<a name="caching-s3-sharing.console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Pilih **Buat proyek**. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).

1. Di **Artefak**, pilih **Konfigurasi tambahan**.

1. Untuk **jenis Cache**, pilih **Amazon S3**.

1. Untuk **namespace Cache - opsional**, masukkan nilai namespace.  
![\[Parameter namespace cache di konsol. CodeBuild\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/s3-cache-namespace.png)

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**.

### Tentukan namespace cache ()AWS CLI
<a name="caching-s3-sharing.cli"></a>

Anda dapat menggunakan `--cache` parameter di AWS CLI untuk menentukan namespace cache.

```
--cache '{"type": "S3", "location": "your-s3-bucket", "cacheNamespace": "test-cache-namespace"}'
```

## Contoh Buildspec
<a name="caching-s3-examples"></a>

Berikut adalah beberapa contoh buildspec untuk bahasa umum:

**Topics**
+ [Dependensi cache Node.js](#caching-s3-examples.nodejs)
+ [Dependensi Python cache](#caching-s3-examples.python)
+ [Dependensi Cache Ruby](#caching-s3-examples.ruby)
+ [Dependensi Cache Go](#caching-s3-examples.go)

### Dependensi cache Node.js
<a name="caching-s3-examples.nodejs"></a>

Jika proyek Anda menyertakan `package-lock.json` file dan digunakan `npm` untuk mengelola dependensi Node.js, contoh berikut menunjukkan cara mengatur caching. Secara default, `npm` menginstal dependensi ke dalam direktori. `node_modules`

```
version: 0.2

phases:
  build:
    commands:
      - npm install
cache:
  key: npm-$(codebuild-hash-files package-lock.json)
  paths:
    - "node_modules/**/*"
```

### Dependensi Python cache
<a name="caching-s3-examples.python"></a>

Jika proyek Anda menyertakan `requirements.txt` file dan menggunakan pip untuk mengelola dependensi Python, contoh berikut menunjukkan cara mengkonfigurasi caching. Secara default, pip menginstal paket ke direktori sistem. `site-packages`

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "/root/.pyenv/versions/${python_version}/lib/python${python_major_version}/site-packages/**/*"
```

Selain itu, Anda dapat menginstal dependensi ke direktori tertentu dan mengkonfigurasi caching untuk direktori itu.

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt --target python-dependencies
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "python-dependencies/**/*"
```

### Dependensi Cache Ruby
<a name="caching-s3-examples.ruby"></a>

Jika proyek Anda menyertakan `Gemfile.lock` file dan digunakan `Bundler` untuk mengelola dependensi permata, contoh berikut menunjukkan cara mengonfigurasi caching secara efektif.

```
version: 0.2

phases:
  build:
    commands:
      - bundle install --path vendor/bundle
cache:
  key: ruby-$(codebuild-hash-files Gemfile.lock)
  paths:
    - "vendor/bundle/**/*"
```

### Dependensi Cache Go
<a name="caching-s3-examples.go"></a>

Jika proyek Anda menyertakan `go.sum` file dan menggunakan modul Go untuk mengelola dependensi, contoh berikut menunjukkan cara mengonfigurasi caching. Secara default, modul Go diunduh dan disimpan di `${GOPATH}/pkg/mod` direktori.

```
version: 0.2

phases:
  build:
    commands:
      - go mod download
cache:
  key: go-$(codebuild-hash-files go.sum)
  paths:
    - "/go/pkg/mod/**/*"
```

# Caching lokal
<a name="caching-local"></a>

Caching lokal menyimpan cache secara lokal pada host build yang hanya tersedia untuk host build tersebut. Ini adalah opsi yang baik untuk artefak build menengah hingga besar karena cache segera tersedia di host build. Ini bukan pilihan terbaik jika build Anda jarang. Ini berarti bahwa kinerja build tidak terpengaruh oleh waktu transfer jaringan.

Jika Anda memilih caching lokal, Anda harus memilih satu atau beberapa mode cache berikut: 
+ Mode cache sumber menyimpan metadata Git untuk sumber primer dan sekunder. Setelah cache dibuat, pembangunan berikutnya menarik perubahan antar pelaksanaan saja. Mode ini merupakan pilihan yang baik untuk proyek dengan direktori yang bersih dan berfungsi serta sumber yang merupakan repositori Git besar. Jika Anda memilih opsi ini dan proyek Anda tidak menggunakan repositori Git (AWS CodeCommit,, Server GitHub Perusahaan GitHub, atau Bitbucket), opsi tersebut diabaikan. 
+ Mode cache lapisan Docker menyimpan lapisan Docker yang ada. Mode ini merupakan pilihan yang baik untuk proyek yang membangun atau menarik gambar Docker yang besar. Ia dapat mencegah masalah performa yang disebabkan oleh penarikan keluar gambar Docker yang besar dari jaringan. 
**catatan**  
Anda dapat menggunakan cache lapisan Docker di lingkungan Linux saja. 
Bendera `privileged` harus diatur agar proyek Anda memiliki izin Docker yang diperlukan.   
Secara default, daemon Docker diaktifkan untuk build non-VPC. Jika Anda ingin menggunakan kontainer Docker untuk build VPC, [lihat Runtime Privilege dan Kemampuan Linux di situs web Docker Docs dan](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa.
Anda harus mempertimbangkan implikasi keamanan sebelum Anda menggunakan cache lapisan Docker. 
+ Mode cache kustom menyimpan direktori yang Anda tentukan dalam file buildspec. Mode ini adalah pilihan yang baik jika skenario build Anda tidak cocok dengan salah satu dari dua mode cache lokal lainnya. Jika Anda menggunakan cache kustom: 
  + Hanya direktori yang dapat ditentukan untuk caching. Anda tidak dapat menentukan file individu. 
  + Symlink digunakan untuk mereferensikan direktori cache. 
  + Direktori yang di-cache ditautkan ke pembangunan Anda sebelum mengunduh sumber proyeknya. Item yang di-cache mengganti item sumber jika memiliki nama yang sama. Direktori ditentukan menggunakan jalur cache di file buildspec. Untuk informasi selengkapnya, lihat [Sintaks Buildspec](build-spec-ref.md#build-spec-ref-syntax). 
  + Hindari nama direktori yang sama di sumber dan di cache. Direktori cache lokal dapat mengganti, atau menghapus konten, direktori di repositori sumber yang memiliki nama yang sama.

**catatan**  
Caching lokal tidak didukung dengan jenis `LINUX_GPU_CONTAINER` lingkungan dan tipe `BUILD_GENERAL1_2XLARGE` komputasi. Untuk informasi selengkapnya, lihat [Bangun mode dan tipe komputasi lingkungan](build-env-ref-compute-types.md).

**catatan**  
Caching lokal tidak didukung saat Anda mengonfigurasi CodeBuild untuk bekerja dengan VPC. Untuk informasi lebih lanjut tentang menggunakan VPCs dengan CodeBuild, lihat[Gunakan AWS CodeBuild dengan Amazon Virtual Private Cloud](vpc-support.md).

# Tentukan cache lokal
<a name="specify-caching-local"></a>

Anda dapat menggunakan AWS CLI, konsol, SDK, atau CloudFormation untuk menentukan cache lokal. Untuk informasi selengkapnya tentang caching lokal, lihat[Caching lokal](caching-local.md).

**Topics**
+ [Tentukan caching lokal (CLI)](#caching-local-cli)
+ [Tentukan caching lokal (konsol)](#caching-local-console)
+ [Tentukan caching lokal ()CloudFormation](#caching-local-cfn)

## Tentukan caching lokal (CLI)
<a name="caching-local-cli"></a>

Anda dapat menggunakan `--cache` parameter di AWS CLI untuk menentukan masing-masing dari tiga jenis cache lokal. 
+ Untuk menentukan cache sumber: 

  ```
  --cache type=LOCAL,mode=[LOCAL_SOURCE_CACHE]
  ```
+ Untuk menentukan cache layer Docker: 

  ```
  --cache type=LOCAL,mode=[LOCAL_DOCKER_LAYER_CACHE]
  ```
+ Untuk menentukan cache kustom: 

  ```
  --cache type=LOCAL,mode=[LOCAL_CUSTOM_CACHE]
  ```

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

## Tentukan caching lokal (konsol)
<a name="caching-local-console"></a>

Anda menentukan cache di bagian **Artefak** konsol. **Untuk **jenis Cache**, pilih **Amazon S3** atau Lokal.** Jika Anda memilih **Lokal**, pilih satu atau lebih dari tiga opsi cache lokal.

![\[Tentukan cache lokal dengan memilih satu atau lebih dari tiga opsi cache lokal.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/local-cache.png)


Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console).

## Tentukan caching lokal ()CloudFormation
<a name="caching-local-cfn"></a>

Jika Anda gunakan CloudFormation untuk menentukan cache lokal, pada `Cache` properti, untuk`Type`, tentukan`LOCAL`. Contoh CloudFormation kode berformat YAML berikut menentukan ketiga jenis cache lokal. Anda dapat menentukan kombinasi jenis apa pun. Jika Anda menggunakan cache layer Docker, di bawah`Environment`, Anda harus mengatur `PrivilegedMode` ke `true` dan `Type` ke`LINUX_CONTAINER`. 

```
CodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
      Name: MyProject
      ServiceRole: <service-role>
      Artifacts:
        Type: S3
        Location: <bucket-name>
        Name: myArtifact
        EncryptionDisabled: true
        OverrideArtifactName: true
      Environment:
        Type: LINUX_CONTAINER
        ComputeType: BUILD_GENERAL1_SMALL
        Image: aws/codebuild/standard:5.0
        Certificate: <bucket/cert.zip>
        # PrivilegedMode must be true if you specify LOCAL_DOCKER_LAYER_CACHE
        PrivilegedMode: true
      Source:
        Type: GITHUB
        Location: <github-location>
        InsecureSsl: true
        GitCloneDepth: 1
        ReportBuildStatus: false
      TimeoutInMinutes: 10
      Cache:
        Type: LOCAL
        Modes: # You can specify one or more cache mode, 
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**catatan**  
Secara default, daemon Docker diaktifkan untuk build non-VPC. Jika Anda ingin menggunakan kontainer Docker untuk build VPC, [lihat Runtime Privilege dan Kemampuan Linux di situs web Docker Docs dan](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) aktifkan mode istimewa. Juga, Windows tidak mendukung mode istimewa.

Lihat informasi yang lebih lengkap di [Buat proyek build (CloudFormation)](create-project.md#create-project-cloud-formation).

# Debug dibangun di AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild menyediakan dua metode untuk men-debug build selama pengembangan dan pemecahan masalah. Anda dapat menggunakan lingkungan CodeBuild Sandbox untuk menyelidiki masalah dan memvalidasi perbaikan secara real-time, atau Anda dapat menggunakan AWS Systems Manager Session Manager untuk menyambung ke container build dan melihat status container.

## Debug dibangun dengan kotak pasir CodeBuild
<a name="debug-codebuild-sandbox"></a>

Lingkungan CodeBuild kotak pasir menyediakan sesi debug interaktif di lingkungan yang aman dan terisolasi. Anda dapat berinteraksi dengan lingkungan secara langsung melalui perintah Konsol Manajemen AWS atau AWS CLI, mengeksekusi, dan memvalidasi proses build Anda langkah demi langkah. Ini menggunakan model penagihan per detik yang hemat biaya dan mendukung integrasi asli yang sama dengan penyedia sumber dan AWS layanan seperti lingkungan build Anda. Anda juga dapat terhubung ke lingkungan sandbox menggunakan klien SSH atau dari lingkungan pengembangan terintegrasi Anda ()IDEs.

Untuk mempelajari lebih lanjut tentang harga CodeBuild kotak pasir, kunjungi [dokumentasi CodeBuild harga](https://aws.amazon.com/codebuild/pricing/#Sandbox). Untuk instruksi terperinci, kunjungi [Debug dibangun dengan kotak pasir CodeBuild](sandbox.md) dokumentasi.

## Debug dibangun dengan Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager memungkinkan akses langsung ke build yang sedang berjalan di lingkungan eksekusi aktual mereka. Pendekatan ini memungkinkan Anda untuk terhubung ke container build aktif dan memeriksa proses build secara real-time. Anda dapat memeriksa sistem file, memantau proses yang sedang berjalan, dan memecahkan masalah saat terjadi.

Untuk instruksi terperinci, kunjungi [Debug dibangun dengan Session Manager](session-manager.md) dokumentasi.

# Debug dibangun dengan kotak pasir CodeBuild
<a name="sandbox"></a>

Di AWS CodeBuild, Anda dapat men-debug build dengan menggunakan CodeBuild sandbox untuk menjalankan perintah khusus dan memecahkan masalah build Anda.

**Topics**
+ [Prasyarat](#sandbox-prereq)
+ [Debug dibangun dengan CodeBuild sandbox (konsol)](#sandbox-console)
+ [Debug dibangun dengan CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: Menghubungkan ke kotak pasir menggunakan SSH](sandbox-ssh-tutorial.md)
+ [Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir](sandbox-troubleshooting.md)

## Prasyarat
<a name="sandbox-prereq"></a>

Sebelum menggunakan CodeBuild kotak pasir, pastikan peran CodeBuild layanan Anda memiliki kebijakan SSM berikut:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-1:111122223333:build/*",
                "arn:aws:ssm:us-east-1::document/AWS-StartSSHSession"
            ]
        }
    ]
}
```

------

## Debug dibangun dengan CodeBuild sandbox (konsol)
<a name="sandbox-console"></a>

Gunakan instruksi berikut untuk menjalankan perintah dan menghubungkan klien SSH Anda dengan CodeBuild kotak pasir di konsol.

### Jalankan perintah dengan CodeBuild sandbox (konsol)
<a name="sandbox-console.commands"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek pembuatan debug di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Di tab **Run command**, masukkan perintah kustom Anda, lalu pilih **Run command**.  
![\[Halaman detail perintah run di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/debug-build-run.png)

1.  CodeBuild Kotak pasir Anda kemudian akan diinisialisasi dan mulai menjalankan perintah khusus Anda. Output akan ditampilkan di tab **Output** saat selesai.   
![\[Halaman keluaran perintah run di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/debug-build-run-output.png)

1. **Saat pemecahan masalah selesai, Anda dapat menghentikan kotak pasir dengan memilih Stop sandbox.** Kemudian pilih **Berhenti** untuk mengonfirmasi bahwa kotak pasir Anda akan dihentikan.  
![\[Kotak dialog stop sandbox.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[Halaman keluaran perintah run dengan kotak pasir berhenti di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stopped-sandbox.png)

### Connect ke klien SSH Anda dengan CodeBuild sandbox (konsol)
<a name="sandbox-console.ssh"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek pembuatan debug di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Di tab **SSH Client** dan pilih **Start sandbox**.  
![\[Halaman kotak pasir klien SSH di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Setelah CodeBuild kotak pasir mulai berjalan, ikuti instruksi konsol untuk menghubungkan klien SSH Anda dengan kotak pasir.  
![\[Halaman kotak pasir klien SSH di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. **Saat pemecahan masalah selesai, Anda dapat menghentikan kotak pasir dengan memilih Stop sandbox.** Kemudian pilih **Berhenti** untuk mengonfirmasi bahwa kotak pasir Anda akan dihentikan.  
![\[Kotak dialog stop sandbox.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[Halaman keluaran perintah run dengan kotak pasir berhenti di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Debug dibangun dengan CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Gunakan instruksi berikut untuk menjalankan perintah dan menghubungkan klien SSH Anda dengan kotak CodeBuild pasir.

### Mulai CodeBuild kotak pasir ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: nama CodeBuild proyek

------
#### [ Sample request ]

```
aws codebuild start-sandbox --project-name "project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "QUEUED",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "QUEUED",
        "status": "QUEUED",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Dapatkan informasi tentang status kotak pasir ()AWS CLI
<a name="sandbox-cli.batch-get-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-sandboxes --ids $SANDBOX_IDs
```

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```
+ `--ids`: Daftar koma dipisahkan dari `sandboxIds` atau`sandboxArns`.

Anda dapat memberikan ID kotak pasir atau ARN kotak pasir:
+ ID Kotak Pasir: `<codebuild-project-name>:<UUID>`

  Misalnya, `project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.
+ Sandbox ARN: arn:aws:codebuild: ::sandbox/*<region>*: *<account-id>* *<codebuild-project-name>* *<UUID>*

  Misalnya, `arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.

------
#### [ Sample response ]

```
{
    "sandboxes": [{
        "id": "project-name",
        "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
        "projectName": "project-name",
        "requestTime": "2025-02-06T11:24:15.560000-08:00",
        "endTime": "2025-02-06T11:39:21.587000-08:00",
        "status": "STOPPED",
        "source": {
            "type": "S3",
            "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
            "insecureSsl": false
        },
        "environment": {
            "type": "LINUX_CONTAINER",
            "image": "aws/codebuild/standard:6.0",
            "computeType": "BUILD_GENERAL1_SMALL",
            "environmentVariables": [{
                    "name": "foo",
                    "value": "bar",
                    "type": "PLAINTEXT"
                },
                {
                    "name": "bar",
                    "value": "baz",
                    "type": "PLAINTEXT"
                }
            ],
            "privilegedMode": false,
            "imagePullCredentialsType": "CODEBUILD"
        },
        "timeoutInMinutes": 10,
        "queuedTimeoutInMinutes": 480,
        "logConfig": {
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        },
        "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
        "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
        "currentSession": {
            "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "currentPhase": "COMPLETED",
            "status": "STOPPED",
            "startTime": "2025-02-06T11:24:15.626000-08:00",
            "endTime": "2025-02-06T11:39:21.600000-08:00",
            "phases": [{
                    "phaseType": "SUBMITTED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.577000-08:00",
                    "endTime": "2025-02-06T11:24:15.606000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "QUEUED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.606000-08:00",
                    "endTime": "2025-02-06T11:24:16.067000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "PROVISIONING",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:16.067000-08:00",
                    "endTime": "2025-02-06T11:24:20.519000-08:00",
                    "durationInSeconds": 4,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "DOWNLOAD_SOURCE",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:20.519000-08:00",
                    "endTime": "2025-02-06T11:24:22.238000-08:00",
                    "durationInSeconds": 1,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "RUNNING_SANDBOX",
                    "phaseStatus": "TIMED_OUT",
                    "startTime": "2025-02-06T11:24:22.238000-08:00",
                    "endTime": "2025-02-06T11:39:21.560000-08:00",
                    "durationInSeconds": 899,
                    "contexts": [{
                        "statusCode": "BUILD_TIMED_OUT",
                        "message": "Build has timed out. "
                    }]
                },
                {
                    "phaseType": "COMPLETED",
                    "startTime": "2025-02-06T11:39:21.560000-08:00"
                }
            ],
            "logs": {
                "groupName": "group",
                "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    }],
    "sandboxesNotFound": []
}
```

------

### Hentikan kotak pasir ()AWS CLI
<a name="sandbox-cli.stop-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild stop-sandbox --id $SANDBOX-ID
```
+ `--id`: A `sandboxId` atau`sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "STOPPING",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "RUN_SANDBOX",
        "status": "STOPPING",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "phases": [{
                "phaseType": "SUBMITTED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.144000-08:00",
                "endTime": "2025-02-08T14:33:26.173000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "QUEUED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.173000-08:00",
                "endTime": "2025-02-08T14:33:26.702000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "PROVISIONING",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.702000-08:00",
                "endTime": "2025-02-08T14:33:30.530000-08:00",
                "durationInSeconds": 3,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "DOWNLOAD_SOURCE",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:30.530000-08:00",
                "endTime": "2025-02-08T14:33:33.478000-08:00",
                "durationInSeconds": 2,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "RUN_SANDBOX",
                "startTime": "2025-02-08T14:33:33.478000-08:00"
            }
        ],
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Mulai eksekusi perintah (AWS CLI)
<a name="sandbox-cli.start-command-execution"></a>

------
#### [ CLI command ]

```
aws codebuild start-command-execution --command $COMMAND --type $TYPE --sandbox-id $SANDBOX-ID
```
+ `--command`: Perintah yang perlu dieksekusi.
+ `--sandbox-id`: A `sandboxId` atau`sandboxArn`.
+ `--type`: Jenis perintah,`SHELL`.

------
#### [ Sample request ]

```
aws codebuild start-command-execution --command "echo "Hello World"" --type SHELL --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name
```

------
#### [ Sample response ]

```
{
    "id": "e1c658c2-02bb-42a8-9abb-94835241fcd6",
    "sandboxId": "f7126a4a-b0d5-452f-814c-fea73718f805",
    "submitTime": "2025-02-06T20:12:02.683000-08:00",
    "status": "SUBMITTED",
    "command": "echo \"Hello World\"",
    "type": "SHELL",
    "logs": {
        "groupName": "group",
        "streamName": "stream",
        "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
        "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz?region=us-west-2",
        "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
        "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz",
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    }
}
```

------

### Dapatkan informasi tentang eksekusi perintah ()AWS CLI
<a name="sandbox-cli.batch-get-command-executions"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-command-executions --command-execution-ids $COMMAND-IDs --sandbox-id $SANDBOX-IDs
```
+ `--command-execution-ids`: Daftar koma dipisahkan dari. `commandExecutionIds`
+ `--sandbox-id`: A `sandboxId` atau`sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild batch-get-command-executions --command-execution-ids"c3c085ed-5a8f-4531-8e95-87d547f27ffd" --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
        "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
        "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "submitTime": "2025-02-10T20:18:17.118000-08:00",
        "startTime": "2025-02-10T20:18:17.939000-08:00",
        "endTime": "2025-02-10T20:18:17.976000-08:00",
        "status": "SUCCEEDED",
        "command": "echo \"Hello World\"",
        "type": "SHELL",
        "exitCode": "0",
        "standardOutputContent": "Hello World\n",
        "logs": {
            "groupName": "group",
            "streamName": "stream",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }],
    "commandExecutionsNotFound": []
}
```

------

### Daftar eksekusi perintah untuk sandbox ()AWS CLI
<a name="sandbox-cli.list-command-executions-for-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id $SANDBOX-ID --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```
+ `--next-token`: Token berikutnya, jika ada, untuk mendapatkan hasil paginasi. Anda akan mendapatkan nilai ini dari eksekusi kotak pasir daftar sebelumnya.
+ `--max-results`: (Opsional) Jumlah maksimum catatan kotak pasir yang akan diambil.
+ `--sort-order`: Urutan di mana catatan kotak pasir harus diambil.

------
#### [ Sample request ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
            "id": "aad6687e-07bc-45ab-a1fd-f5440229b528",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:35.304000-08:00",
            "startTime": "2025-02-10T20:18:35.615000-08:00",
            "endTime": "2025-02-10T20:18:35.651000-08:00",
            "status": "FAILED",
            "command": "fail command",
            "type": "SHELL",
            "exitCode": "127",
            "standardErrContent": "/codebuild/output/tmp/script.sh: 4: fail: not found\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        },
        {
            "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:17.118000-08:00",
            "startTime": "2025-02-10T20:18:17.939000-08:00",
            "endTime": "2025-02-10T20:18:17.976000-08:00",
            "status": "SUCCEEDED",
            "command": "echo \"Hello World\"",
            "type": "SHELL",
            "exitCode": "0",
            "standardOutputContent": "Hello World\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    ]
}
```

------

### Daftar kotak pasir ()AWS CLI
<a name="sandbox-cli.list-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild list-sandboxes --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```

------
#### [ Sample request ]

```
aws codebuild list-sandboxes
```

------
#### [ Sample response ]

```
{
    "ids": [
        "s3-log-project-integ-test-temp173925062814985d64e0f-7880-41df-9a3c-fb6597a266d2:827a5243-0841-4b69-a720-4438796f6967",
        "s3-log-project-integ-test-temp1739249999716bbd438dd-8bb8-47bd-ba6b-0133ac65b3d3:e2fa4eab-73af-42e3-8903-92fddaf9f378",
        "s3-log-project-integ-test-temp17392474779450fbdacc2-2d6e-4190-9ad5-28f891bb7415:cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "s3-log-project-integ-test-temp17392246284164301421c-5030-4fa1-b4d3-ca15e44771c5:9e26ab3f-65e4-4896-a19c-56b1a95e630a",
        "s3-log-project-integ-test-temp173921367319497056d8d-6d8e-4f5a-a37c-a62f5686731f:22d91b06-df1e-4e9c-a664-c0abb8d5920b",
        "s3-log-project-integ-test-temp1739213439503f6283f19-390c-4dc8-95a9-c8480113384a:82cc413e-fc46-47ab-898f-ae23c83a613f",
        "s3-log-project-integ-test-temp1739054385570b1f1ddc2-0a23-4062-bd0c-24e9e4a99b99:c02562f3-2396-42ec-98da-38e3fe5da13a",
        "s3-log-project-integ-test-temp173905400540237dab1ac-1fde-4dfb-a8f5-c0114333dc89:d2f30493-f65e-4fa0-a7b6-08a5e77497b9",
        "s3-log-project-integ-test-temp17390534055719c534090-7bc4-48f1-92c5-34acaec5bf1e:df5f1c8a-f017-43b7-91ba-ad2619e2c059",
        "s3-log-project-integ-test-temp1739052719086a61813cc-ebb9-4db4-9391-7f43cc984ee4:d61917ec-8037-4647-8d52-060349272c4a",
        "s3-log-project-integ-test-temp173898670094078b67edb-c42f-42ed-9db2-4b5c1a5fc66a:ce33dfbc-beeb-4466-8c99-a3734a0392c7",
        "s3-log-project-integ-test-temp17389863425584d21b7cd-32e2-4f11-9175-72c89ecaffef:046dadf0-1f3a-4d51-a2c0-e88361924acf",
        "s3-log-project-integ-test-temp1738985884273977ccd23-394b-46cc-90d3-7ab94cf764dc:0370dc41-9339-4b0a-91ed-51929761b244",
        "s3-log-project-integ-test-temp1738985365972241b614f-8e41-4387-bd25-2b8351fbc9e0:076c392a-9630-47d8-85a9-116aa34edfff",
        "s3-log-project-integ-test-temp1738985043988a51a9e2b-09d6-4d24-9c3c-1e6e21ac9fa8:6ea3949c-435b-4177-aa4d-614d5956244c",
        "s3-log-project-integ-test-temp1738984123354c68b31ad-49d1-4f4b-981d-b66c00565ff6:6c3fff6c-815b-48b5-ada3-737400a6dee8",
        "s3-log-project-integ-test-temp1738977263715d4d5bf6c-370a-48bf-8ea6-905358a6cf92:968a0f54-724a-42d1-9207-6ed854b2fae8",
        "s3-log-project-integ-test-temp173897358796816ce8d7d-2a5e-41ef-855b-4a94a8d2795d:80f9a7ce-930a-402e-934e-d8b511d68b04",
        "s3-log-project-integ-test-temp17389730633301af5e452-0966-467c-b684-4e36d47f568c:cabbe989-2e8a-473c-af25-32edc8c28646",
        "s3-log-project-integ-test-temp1738901503813173fd468-b723-4d7b-9f9f-82e88d17f264:f7126a4a-b0d5-452f-814c-fea73718f805",
        "s3-log-project-integ-test-temp1738890502472c13616fb-bd0f-4253-86cc-28b74c97a0ba:c6f197e5-3a53-45b6-863e-0e6353375437",
        "s3-log-project-integ-test-temp17388903044683610daf3-8da7-43c6-8580-9978432432ce:d20aa317-8838-4966-bbfc-85b908213df1",
        "s3-log-project-integ-test-temp173888857196780b5ab8b-e54b-44fd-a222-c5a374fffe96:ab4b9970-ffae-47a0-b3a8-7b6790008cad",
        "s3-log-project-integ-test-temp1738888336931c11d378d-e74d-49a4-a723-3b92e6f7daac:4922f0e8-9b7d-4119-9c9f-115cd85e703e",
        "s3-log-project-integ-test-temp17388881717651612a397-c23f-4d88-ba87-2773cd3fc0c9:be91c3fc-418e-4feb-8a3a-ba58ff8f4e8a",
        "s3-log-project-integ-test-temp17388879727174c3c62ed-6195-4afb-8a03-59674d0e1187:a48826a8-3c0d-43c5-a1b5-1c98a0f978e9",
        "s3-log-project-integ-test-temp1738885948597cef305e4-b8b4-46b0-a65b-e2d0a7b83294:c050e77d-e3f8-4829-9a60-46149628fe96",
        "s3-log-project-integ-test-temp173888561463001a7d2a8-e4e4-4434-94db-09d3da9a9e17:8c3ac3f5-7111-4297-aec9-2470d3ead873",
        "s3-log-project-integ-test-temp1738869855076eb19cafd-04fe-41bd-8aa0-40826d0c0d27:d25be134-05cb-404a-85da-ac5f85d2d72c",
        "s3-project-integ-test-temp1738868157467148eacfc-d39b-49fc-a137-e55381cd2978:4909557b-c221-4814-b4b6-7d9e93d37c35",
        "s3-project-integ-test-temp1738820926895abec0af2-e33d-473c-9cf4-2122dd9d6876:8f5cf218-71d6-40a4-a4be-6cacebd7765f",
        "s3-project-integ-test-temp173881998877574f969a6-1c2e-4441-b463-ab175b45ce32:04396851-c901-4986-9117-585528e3877f",
        "s3-project-integ-test-temp17388189812309abd2604-29ba-4cf6-b6bf-073207b7db9c:540075c7-f5ec-41e8-9341-2233c09247eb",
        "s3-project-integ-test-temp1738818843474d3ea9ac1-b609-461b-bbdb-2da245c9bc96:865d4c3c-fbfe-4ece-9c92-d0c928341404",
        "s3-project-integ-test-temp1738818542236006e9169-e6d9-4344-9b59-f557e7aec619:1f9ffa87-da15-4290-83e2-eebdd877497b",
        "s3-project-integ-test-temp173881809557486ad11fd-7931-48d7-81d5-499cea52a6bc:c4c2efc4-685f-4e13-8b0f-1ef85ec300b1",
        "s3-project-integ-test-temp173881794103322941020-3f0b-49c3-b836-fcd818ec9484:0344cfba-de48-456d-b2a8-6566bd4a5d6e",
        "s3-project-integ-test-temp1738817680747b93d0d0b-ea16-497f-9559-af25ee6dcfdf:654a3a55-d92a-4dc6-8da8-56fd4d40d7e1",
        "s3-project-integ-test-temp17388174027191255c3da-086c-4270-b047-acac0b7bee0d:b7e82740-2c69-42fc-ab5a-dbf15bc016a1",
        "s3-project-integ-test-temp1738817099799016e7fa3-b9b5-46a2-bcd5-0888c646743f:8705a6a4-79ff-427a-a1c3-85c4e8fe462e",
        "s3-project-integ-test-temp1738816479281bb0c3606-5ebf-4623-bed5-12b60e9d3512:f23fc74b-a981-4835-8e28-375fcd4c99e4",
        "s3-project-integ-test-temp1738816263585c939a133-4d37-482c-9238-1dbff34b7674:ca28e234-0045-4ae6-8732-938b17597f50",
        "s3-project-integ-test-temp173881580873072d18733-8fe4-43b1-83f7-95f25bb27ccf:c6f0f55b-5736-47c7-a3aa-1b8461a6d5ed"
    ]
}
```

------

# Tutorial: Menghubungkan ke kotak pasir menggunakan SSH
<a name="sandbox-ssh-tutorial"></a>

Tutorial ini menunjukkan kepada Anda bagaimana untuk terhubung ke CodeBuild sandbox menggunakan klien SSH.

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+ Pastikan Anda memiliki AWS CodeBuild proyek yang sudah ada.
+ Siapkan izin IAM yang sesuai yang dikonfigurasi untuk peran CodeBuild proyek Anda. 
+ Instal dan konfigurasikan AWS CLI pada mesin lokal Anda.

## Langkah 1: Mulai kotak pasir
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Untuk memulai CodeBuild kotak pasir di konsol**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Debug build**.  
![\[Halaman detail proyek build di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/project-debug-build.png)

1. Di tab **SSH Client** dan pilih **Start sandbox**.  
![\[Tab “SSH Client” di konsol dengan tombol “Start sandbox”.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Proses inisialisasi kotak pasir mungkin memakan waktu lama. Anda dapat terhubung ke kotak pasir saat statusnya berubah menjadi`RUN_SANDDBOX`.  
![\[Sambungan kotak pasir SSH setelah status berubah menjadi “RUN_SANDDBOX”.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/run-sandbox.png)

## Langkah 2: Ubah konfigurasi SSH lokal
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Jika Anda menghubungkan ke sandbox untuk pertama kalinya, Anda perlu melakukan proses penyiapan satu kali menggunakan langkah-langkah berikut:

**Untuk memodifikasi konfigurasi SSH lokal di konsol**

1. Temukan perintah pengaturan untuk sistem operasi Anda.

1. Buka terminal lokal Anda, lalu salin dan jalankan perintah yang disediakan untuk mengunduh dan menjalankan skrip untuk mengatur konfigurasi SSH lokal Anda. Misalnya, jika sistem operasi Anda macOS, gunakan perintah berikut:  
![\[Perintah macOS untuk koneksi SSH ke CodeBuild kotak pasir di konsol.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Skrip konfigurasi akan menambahkan konfigurasi yang diperlukan untuk menghubungkan ke kotak pasir Anda. Anda akan diminta untuk menerima perubahan ini.

1. Setelah konfigurasi berhasil, entri konfigurasi SSH baru untuk CodeBuild kotak pasir akan dibuat.  
![\[Koneksi kotak pasir SSH yang sukses.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Langkah 3: Connect ke sandbox
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Untuk memodifikasi konfigurasi SSH lokal di konsol**

1. Konfigurasikan AWS CLI Otentikasi dan pastikan AWS CLI pengguna Anda memiliki `codebuild:StartSandboxConnection` izin. Untuk informasi selengkapnya, lihat [Mengautentikasi menggunakan kredensyal pengguna IAM untuk](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) *Panduan Pengguna Antarmuka Baris AWS Perintah* untuk Versi 1. AWS CLI

1. Connect ke sandbox Anda dengan perintah berikut:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**catatan**  
Untuk memecahkan masalah kegagalan koneksi, gunakan `-v` tanda untuk mengaktifkan keluaran verbose. Misalnya, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Untuk panduan pemecahan masalah tambahan, lihat. [Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir](sandbox-troubleshooting.md)

## Langkah 4: Tinjau hasil Anda
<a name="sandbox-ssh-tutorial.review-results"></a>

Setelah terhubung, Anda dapat men-debug kegagalan build, menguji perintah build, bereksperimen dengan perubahan konfigurasi, dan memverifikasi variabel lingkungan dan dependensi dengan kotak pasir Anda.

# Memecahkan masalah koneksi SSH AWS CodeBuild kotak pasir
<a name="sandbox-troubleshooting"></a>

Gunakan informasi dalam topik ini untuk membantu Anda mengidentifikasi, mendiagnosis, dan mengatasi masalah koneksi SSH CodeBuild kotak pasir.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir](#sandbox-troubleshooting.invalid-input)
+ [Kesalahan: “Tidak dapat menemukan kredensyal” saat SSH masuk ke lingkungan kotak pasir CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir](#sandbox-troubleshooting.access-denied)
+ [Kesalahan: “ssh: Tidak dapat menyelesaikan nama host” saat SSH masuk ke lingkungan kotak pasir CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir
<a name="sandbox-troubleshooting.invalid-input"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami `InvalidInputException` kesalahan seperti:

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for {sandbox-arn}
User: arn:aws:sts::<account-ID>:assumed-role/<service-role-name>/AWSCodeBuild-<UUID> 
is not authorized to perform: ssm:StartSession on resource.
```

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for 
sandbox <sandbox-arn>: codebuild:<UUID> is not connected.
```

**Kemungkinan penyebab** :
+ Agen Amazon EC2 Systems Manager Hilang: Image build tidak memiliki agen SSM yang diinstal atau dikonfigurasi dengan benar.
+ Izin Tidak Cukup: Peran layanan CodeBuild proyek tidak memiliki izin SSM yang diperlukan.

**Solusi yang disarankan:** Jika Anda menggunakan gambar khusus untuk build Anda, lakukan hal berikut.

1. Instal SSM Agent. Untuk informasi selengkapnya, lihat [Menginstal dan mencopot pemasangan Agen SSM secara manual di instans Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) untuk Linux di. ** Versi Agen SSM harus `3.0.1295.0` atau lebih baru.

1. Salin file, [ https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json) ke direktori di gambar Anda. `/etc/amazon/ssm/` Ini memungkinkan **Mode Kontainer** di agen SSM.

1. Pastikan peran layanan CodeBuild proyek Anda memiliki izin berikut, lalu mulai ulang lingkungan kotak pasir:

   ```
   {
      "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
    },
    {
       "Effect": "Allow",
       "Action": [
          "ssm:StartSession"
        ],
        "Resource": [
           "arn:aws:codebuild:region:account-id:build/*",
           "arn:aws:ssm:region::document/AWS-StartSSHSession"
        ]
    }
   ```

## Kesalahan: “Tidak dapat menemukan kredensyal” saat SSH masuk ke lingkungan kotak pasir CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami kesalahan kredensyal berikut:

```
Unable to locate credentials. You can configure credentials by running 
"aws configure".
```

**Kemungkinan penyebabnya:** AWS kredensyal belum dikonfigurasi dengan benar di lingkungan lokal Anda.

**Solusi yang disarankan:** Konfigurasikan AWS CLI kredensyal Anda dengan mengikuti dokumentasi resmi: [Mengkonfigurasi pengaturan untuk](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *Panduan Pengguna Antarmuka Baris AWS Perintah untuk* Versi 2. AWS CLI

## `StartSandboxConnection``AccessDeniedException`kesalahan saat SSH masuk ke lingkungan kotak CodeBuild pasir
<a name="sandbox-troubleshooting.access-denied"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mungkin mengalami kesalahan izin berikut:

```
An error occurred (AccessDeniedException) when calling the StartSandboxConnection 
operation: 
User: arn:aws:sts::account-id:assumed-role/role-name
is not authorized to perform: codebuild:StartSandboxConnection on resource: 
sandbox-arn
because no identity-based policy allows the codebuild:StartSandboxConnection action
```

**Kemungkinan penyebabnya:** AWS Kredensyal Anda tidak memiliki CodeBuild izin yang diperlukan untuk melakukan operasi ini.

**Solusi yang disarankan:** Pastikan bahwa pengguna IAM atau peran yang terkait dengan AWS CLI kredensyal Anda memiliki izin berikut:

```
{
    "Effect": "Allow",
    "Action": [
       "codebuild:StartSandboxConnection"
     ],
     "Resource": [
        "arn:aws:codebuild:region:account-id:sandbox/*"
     ]
}
```

## Kesalahan: “ssh: Tidak dapat menyelesaikan nama host” saat SSH masuk ke lingkungan kotak pasir CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Masalah:** Saat mencoba terhubung ke lingkungan CodeBuild kotak pasir menggunakan perintah`ssh codebuild-sandbox-ssh=<sandbox-arn>`, Anda mengalami kesalahan resolusi nama host berikut:

```
ssh: Could not resolve hostname
```

**Kemungkinan penyebabnya:** Kesalahan ini biasanya terjadi ketika skrip koneksi CodeBuild kotak pasir yang diperlukan belum dijalankan dengan benar di lingkungan lokal Anda.

**Solusi yang direkomendasikan:**

1. Unduh skrip koneksi CodeBuild kotak pasir.

1. Jalankan skrip di terminal Anda untuk membuat konfigurasi SSH yang diperlukan.

1. Coba lagi koneksi SSH Anda ke lingkungan kotak pasir.

# Debug dibangun dengan Session Manager
<a name="session-manager"></a>

Di AWS CodeBuild, Anda dapat menjeda build yang sedang berjalan dan kemudian menggunakan AWS Systems Manager Session Manager untuk menyambung ke container build dan melihat status container.

**catatan**  
Fitur ini tidak tersedia di lingkungan Windows.

**Topics**
+ [Prasyarat](#ssm.prerequisites)
+ [Jeda build](#ssm-pause-build)
+ [Mulai membangun](#ssm-start-build)
+ [Connect ke container build](#ssm-connect)
+ [Lanjutkan build](#ssm-resume-build)

## Prasyarat
<a name="ssm.prerequisites"></a>

Untuk mengizinkan Session Manager digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Ada dua prasyarat:
+ CodeBuild Gambar kurasi standar Linux sudah menginstal agen SSM dan agen SSM diaktifkan. ContainerMode 

  Jika Anda menggunakan gambar kustom untuk build Anda, lakukan hal berikut:

  1. Instal SSM Agent. Untuk informasi selengkapnya, lihat [Instal Agen SSM secara manual pada instans EC2 untuk Linux di Panduan](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) Pengguna. AWS Systems Manager Versi Agen SSM harus 3.0.1295.0 atau yang lebih baru.

  1. Salin file [https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json) ke direktori di gambar Anda. `/etc/amazon/ssm/` Ini memungkinkan Mode Kontainer di agen SSM.
**catatan**  
Gambar khusus akan membutuhkan agen SSM terbaru agar fitur ini berfungsi seperti yang diharapkan.
+ Peran CodeBuild layanan harus memiliki kebijakan SSM berikut:

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	  
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
       }
     ]
  }
  ```

------

   CodeBuild Konsol dapat melampirkan kebijakan ini secara otomatis ke peran layanan saat memulai pembuatan. Atau, Anda dapat melampirkan kebijakan ini ke peran layanan Anda secara manual.
+ Jika **aktivitas sesi Audit dan logging** diaktifkan di preferensi Systems Manager, peran CodeBuild layanan juga harus memiliki izin tambahan. Izin berbeda, tergantung di mana log disimpan.  
CloudWatch Log  
Jika menggunakan CloudWatch Log untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:    
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "logs:DescribeLogGroups",
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*:*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:MyLogGroup:*"
          }
      ]
  }
  ```  
Amazon S3  
Jika menggunakan Amazon S3 untuk menyimpan log Anda, tambahkan izin berikut ke peran CodeBuild layanan:    
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:GetEncryptionConfiguration",
          "s3:PutObject"
        ],
        "Resource": [
          "arn:aws:s3:::<bucket-name>",
          "arn:aws:s3:::<bucket-name>/*"
        ]
      }
    ]
  }
  ```

  Untuk informasi selengkapnya, lihat [Aktivitas sesi audit dan pencatatan](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html) di *Panduan AWS Systems Manager Pengguna*.

## Jeda build
<a name="ssm-pause-build"></a>

Untuk menjeda build, masukkan **codebuild-breakpoint** perintah di salah satu fase build di file buildspec Anda. Build akan dijeda pada titik ini, yang memungkinkan Anda terhubung ke container build dan melihat container dalam statusnya saat ini. 

Misalnya, tambahkan yang berikut ini ke fase build di file buildspec Anda.

```
phases:
  pre_build:
    commands:
      - echo Entered the pre_build phase...
      - echo "Hello World" > /tmp/hello-world
      - codebuild-breakpoint
```

Kode ini membuat `/tmp/hello-world` file dan kemudian menjeda build pada saat ini.

## Mulai membangun
<a name="ssm-start-build"></a>

Agar Session Manager dapat digunakan dengan sesi build, Anda harus mengaktifkan koneksi sesi untuk build. Untuk melakukan ini, saat memulai build, ikuti langkah-langkah berikut:

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**. Pilih proyek build, lalu pilih **Start build with overrides**.

1. Pilih **Penggantian build lanjutan**.

1. Di bagian **Lingkungan**, pilih opsi **Aktifkan koneksi sesi**. Jika opsi ini tidak dipilih, semua **codebuild-resume** perintah **codebuild-breakpoint** dan diabaikan.

1. Buat perubahan lain yang diinginkan, dan pilih **Mulai membangun**. 

1. Pantau status build di konsol. Saat sesi tersedia, tautan **Pengelola AWS Sesi** akan muncul di bagian **Status build**.

## Connect ke container build
<a name="ssm-connect"></a>

Anda dapat terhubung ke wadah build dengan salah satu dari dua cara:

CodeBuild konsol  
Di browser web, buka tautan **AWS Session Manager** untuk terhubung ke container build. Sesi terminal terbuka yang memungkinkan Anda menelusuri dan mengontrol container build. 

AWS CLI  
Mesin lokal Anda harus menginstal plugin Session Manager untuk prosedur ini. Untuk informasi selengkapnya, lihat [Menginstal Plugin Session Manager untuk AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) di AWS Systems Manager Panduan Pengguna. 

1. Panggil **batch-get-builds** api dengan ID build untuk mendapatkan informasi tentang build, termasuk pengidentifikasi target sesi. Nama properti pengidentifikasi target sesi bervariasi tergantung pada jenis output `aws` perintah. Inilah `--output json` sebabnya mengapa ditambahkan ke perintah.

   ```
   aws codebuild batch-get-builds --ids <buildID> --region <region> --output json
   ```

1. Salin nilai `sessionTarget` properti. Nama `sessionTarget` properti dapat bervariasi tergantung pada jenis output `aws` perintah. Inilah `--output json` sebabnya mengapa ditambahkan ke perintah di langkah sebelumnya.

1. Gunakan perintah berikut untuk menyambung ke container build.

   ```
   aws ssm start-session --target <sessionTarget> --region <region>
   ```

Untuk contoh ini, verifikasi bahwa `/tmp/hello-world` file itu ada dan berisi teks`Hello World`.

## Lanjutkan build
<a name="ssm-resume-build"></a>

Setelah Anda selesai memeriksa container build, keluarkan **codebuild-resume** perintah dari shell container.

```
$ codebuild-resume
```

# Hapus build di AWS CodeBuild
<a name="delete-builds"></a>

Anda dapat menggunakan AWS CLI atau AWS SDKs untuk menghapus build in AWS CodeBuild.

**Topics**
+ [Hapus build ()AWS CLI](#delete-builds-cli)
+ [Hapus build ()AWS SDKs](#delete-builds-sdks)

## Hapus build ()AWS CLI
<a name="delete-builds-cli"></a>

Jalankan perintah `batch-delete-builds`:

```
aws codebuild batch-delete-builds --ids ids
```

Pada perintah sebelumnya, ganti placeholder berikut:
+ *ids*: String yang dibutuhkan. Build yang akan dihapus. IDs Untuk menentukan beberapa build, pisahkan setiap ID build dengan spasi. Untuk mendapatkan daftar build IDs, lihat topik berikut:
  + [Lihat daftar build IDs (AWS CLI)](view-build-list.md#view-build-list-cli)
  + [Melihat daftar build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

Jika berhasil, `buildsDeleted` array akan muncul di output, berisi Amazon Resource Name (ARN) dari setiap build yang berhasil dihapus. Informasi tentang build yang tidak berhasil dihapus muncul dalam output dalam `buildsNotDeleted` array.

Misalnya, jika Anda menjalankan perintah ini:

```
aws codebuild batch-delete-builds --ids my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX
```

Informasi yang mirip dengan berikut ini muncul di output:

```
{
  "buildsNotDeleted": [
    {
      "id": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX",
      "statusCode": "BUILD_IN_PROGRESS"
    }
  ], 
  "buildsDeleted": [
    "arn:aws:codebuild:us-west-2:123456789012:build/my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX"
  ]
}
```

## Hapus build ()AWS SDKs
<a name="delete-builds-sdks"></a>

Untuk informasi tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Coba lagi buat secara manual di AWS CodeBuild
<a name="retry-build"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs mencoba ulang secara manual baik satu build atau batch build in AWS CodeBuild.

**Topics**
+ [Coba lagi build secara manual (konsol)](#retry-build-console)
+ [Coba lagi build secara manual ()AWS CLI](#retry-build-cli)
+ [Coba lagi build secara manual ()AWS SDKs](#retry-build-sdks)

## Coba lagi build secara manual (konsol)
<a name="retry-build-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Lakukan salah satu tindakan berikut:
   + Jika *build-ID* halaman ***build-project-name*:** ditampilkan, pilih **Coba lagi build**.
   + Di panel navigasi, pilih **Build history**. Dalam daftar build, pilih kotak untuk build, lalu pilih **Coba lagi** build.
   + Di panel navigasi, pilih **Membangun proyek**. Dalam daftar proyek build, di kolom **Name**, pilih link untuk nama proyek build. Dalam daftar build, pilih kotak untuk build, lalu pilih **Coba lagi** build.

**catatan**  
Secara default, hanya 100 build atau proyek build terbaru yang ditampilkan. Untuk melihat lebih banyak proyek build atau build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau **Proyek per halaman** atau gunakan panah mundur dan maju.

## Coba lagi build secara manual ()AWS CLI
<a name="retry-build-cli"></a>
+ Jalankan perintah **retry-build**:

  ```
  aws codebuild retry-build --id <build-id> --idempotency-token <idempotencyToken>
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *<build-id>*: String yang dibutuhkan. ID build atau batch build untuk dicoba lagi. Untuk mendapatkan daftar build IDs, lihat topik berikut:
    + [Lihat daftar build IDs (AWS CLI)](view-build-list.md#view-build-list-cli)
    + [Melihat daftar batch build IDs (AWS CLI)](view-build-list.md#view-batch-build-list-cli)
    + [Melihat daftar build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)
    + [Melihat daftar batch build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)
  + `--idempotency-token`: Opsional. Jika Anda menjalankan **retry-build** perintah dengan opsi, pengidentifikasi case-sensitive yang unik, atau token, disertakan dengan permintaan. `retry-build` Token berlaku selama 5 menit setelah permintaan. Jika Anda mengulangi `retry-build` permintaan dengan token yang sama, tetapi mengubah parameter, CodeBuild mengembalikan kesalahan ketidakcocokan parameter.

## Coba lagi build secara manual ()AWS SDKs
<a name="retry-build-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Coba lagi membangun secara otomatis di AWS CodeBuild
<a name="auto-retry-build"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs mencoba ulang build Anda secara otomatis. AWS CodeBuild Dengan auto-retry diaktifkan, secara otomatis CodeBuild akan memanggil `RetryBuild` menggunakan peran layanan proyek setelah gagal membangun hingga batas yang ditentukan. Misalnya, jika batas coba ulang otomatis disetel ke dua, CodeBuild akan memanggil `RetryBuild` API untuk mencoba ulang build Anda secara otomatis hingga dua kali tambahan.

**catatan**  
CodeBuild tidak mendukung percobaan ulang otomatis untuk. CodePipeline

**Topics**
+ [Coba lagi build secara otomatis (konsol)](#auto-retry-build-console)
+ [Coba lagi build secara otomatis ()AWS CLI](#auto-retry-build-cli)
+ [Coba ulang build ()AWS SDKs secara otomatis](#auto-retry-build-sdks)

## Coba lagi build secara otomatis (konsol)
<a name="auto-retry-build-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Pilih **Buat proyek**. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Di **Lingkungan**: 
     +  Untuk **batas coba ulang otomatis**, masukkan jumlah maksimum percobaan ulang otomatis yang diinginkan setelah build gagal.

1. Di **Lingkungan**, pilih **Konfigurasi tambahan**.

1. Lanjutkan dengan nilai default dan kemudian pilih **Buat proyek build**.

## Coba lagi build secara otomatis ()AWS CLI
<a name="auto-retry-build-cli"></a>
+ Jalankan perintah **create-project**:

  ```
  aws codebuild create-project \
      --name "<project-name>" \
      --auto-retry-limit <auto-retry-limit> \
      --source "<source>" \
      --artifacts {<artifacts>} \
      --environment "{\"type\": \"environment-type>\",\"image\": \"image-type>\",\"computeType\": \"compute-type>\"}" \
      --service-role "service-role>"
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *<auto-retry-limit>*: Setel batas coba ulang otomatis ke jumlah maksimum percobaan ulang otomatis yang diinginkan setelah build gagal.
  + *<project-name>*,*<source>*,*<artifacts>*,*environment-type>*,, *image-type>**compute-type>*, dan*service-role>*: Tetapkan pengaturan konfigurasi proyek yang Anda inginkan.

## Coba ulang build ()AWS SDKs secara otomatis
<a name="auto-retry-build-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Berhenti membangun di AWS CodeBuild
<a name="stop-build"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk menghentikan build in AWS CodeBuild.

**Topics**
+ [Hentikan build (konsol)](#stop-build-console)
+ [Hentikan build (AWS CLI)](#stop-build-cli)
+ [Hentikan build (AWS SDKs)](#stop-build-sdks)

## Hentikan build (konsol)
<a name="stop-build-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Lakukan salah satu hal berikut ini:
   + Jika *build-ID* halaman ***build-project-name*:** ditampilkan, pilih **Stop build**.
   + Di panel navigasi, pilih **Build history**. Dalam daftar build, pilih kotak untuk build, lalu pilih **Stop build**.
   + Di panel navigasi, pilih **Membangun proyek**. Dalam daftar proyek build, di kolom **Name**, pilih link untuk nama proyek build. Dalam daftar build, pilih kotak untuk build, lalu pilih **Stop build**.

**catatan**  
Secara default, hanya 100 build atau proyek build terbaru yang ditampilkan. Untuk melihat lebih banyak proyek build atau build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau **Proyek per halaman** atau gunakan panah mundur dan maju.  
Jika AWS CodeBuild tidak berhasil menghentikan build (misalnya, jika proses build sudah selesai), tombol **Stop** dinonaktifkan atau mungkin tidak muncul.

## Hentikan build (AWS CLI)
<a name="stop-build-cli"></a>
+ Jalankan perintah **stop-build**:

  ```
  aws codebuild stop-build --id id
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *id*: String yang dibutuhkan. ID build untuk berhenti. Untuk mendapatkan daftar build IDs, lihat topik berikut:
    + [Lihat daftar build IDs (AWS CLI)](view-build-list.md#view-build-list-cli)
    + [Melihat daftar build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

  Jika AWS CodeBuild berhasil menghentikan build, `buildStatus` nilai dalam `build` objek dalam output adalah`STOPPED`.

  Jika CodeBuild tidak berhasil menghentikan build (misalnya, jika build sudah selesai), `buildStatus` nilai dalam `build` objek dalam output adalah status build akhir (misalnya,`SUCCEEDED`).

## Hentikan build (AWS SDKs)
<a name="stop-build-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Hentikan pembuatan batch AWS CodeBuild
<a name="stop-batch-build"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk menghentikan pembuatan batch AWS CodeBuild.

**catatan**  
Jika Anda menggunakan komputasi Lambda dalam pembuatan batch, build Lambda yang sedang berlangsung tidak dapat dihentikan.

**Topics**
+ [Hentikan pembuatan batch (konsol)](#stop-batch-build-console)
+ [Hentikan pembuatan batch (AWS CLI)](#stop-batch-build-cli)
+ [Hentikan pembuatan batch (AWS SDKs)](#stop-batch-build-sdks)

## Hentikan pembuatan batch (konsol)
<a name="stop-batch-build-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Lakukan salah satu hal berikut ini:
   + Jika *build-ID* halaman ***build-project-name*:** ditampilkan, pilih **Stop build**.
   + Di panel navigasi, pilih **Build history**. Dalam daftar build, pilih kotak untuk build, lalu pilih **Stop build**.
   + Di panel navigasi, pilih **Membangun proyek**. Dalam daftar proyek build, di kolom **Name**, pilih link untuk nama proyek build. Dalam daftar build, pilih kotak untuk build, lalu pilih **Stop build**.

**catatan**  
Secara default, hanya 100 build atau proyek build terbaru yang ditampilkan. Untuk melihat lebih banyak proyek build atau build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau **Proyek per halaman** atau gunakan panah mundur dan maju.

## Hentikan pembuatan batch (AWS CLI)
<a name="stop-batch-build-cli"></a>
+ Jalankan perintah [https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html):

  ```
  aws codebuild stop-build-batch --id <batch-build-id>
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *<batch-build-id>*: String yang dibutuhkan. Pengidentifikasi batch build untuk berhenti. Untuk mendapatkan daftar pengenal build batch, lihat topik berikut:
    + [Melihat daftar batch build IDs (AWS CLI)](view-build-list.md#view-batch-build-list-cli)
    + [Melihat daftar batch build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)

## Hentikan pembuatan batch (AWS SDKs)
<a name="stop-batch-build-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Pemicu AWS CodeBuild dibangun secara otomatis
<a name="build-triggers"></a>

Anda dapat membuat pemicu pada proyek untuk menjadwalkan build sekali setiap jam, hari, atau minggu. Anda juga dapat mengedit pemicu untuk menggunakan aturan khusus dengan ekspresi CloudWatch cron Amazon. Misalnya, menggunakan ekspresi cron, Anda dapat menjadwalkan build pada waktu tertentu setiap hari kerja. Untuk informasi tentang membuat dan mengedit pemicu, lihat [Buat AWS CodeBuild pemicu](#trigger-create) dan[Edit AWS CodeBuild pemicu](triggers-edit.md).

**Topics**
+ [Buat AWS CodeBuild pemicu](#trigger-create)
+ [Edit AWS CodeBuild pemicu](triggers-edit.md)

## Buat AWS CodeBuild pemicu
<a name="trigger-create"></a>

Anda dapat membuat pemicu pada proyek untuk menjadwalkan build sekali setiap jam, hari, atau minggu. Anda juga dapat membuat pemicu menggunakan aturan khusus dengan ekspresi CloudWatch cron Amazon. Misalnya, menggunakan ekspresi cron, Anda dapat menjadwalkan build pada waktu tertentu setiap hari kerja. 

**catatan**  
Tidak mungkin memulai build batch dari pemicu build, EventBridge peristiwa Amazon, atau AWS Step Functions tugas.

**Topics**
+ [Buat AWS CodeBuild pemicu (konsol)](#trigger-create-console)
+ [Buat AWS CodeBuild pemicu secara terprogram](#trigger-create-code)

### Buat AWS CodeBuild pemicu (konsol)
<a name="trigger-create-console"></a>

Gunakan prosedur berikut untuk membuat pemicu menggunakan. Konsol Manajemen AWS

**Untuk membuat pemicu** 

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**.

1. Pilih tautan untuk proyek build yang ingin Anda tambahkan pemicunya, lalu pilih tab **Pemicu build**.
**catatan**  
Secara default, 100 proyek build terbaru ditampilkan. Untuk melihat proyek build lainnya, pilih ikon roda gigi, lalu pilih nilai berbeda untuk **Proyek per halaman** atau gunakan panah mundur dan maju.

1. Pilih **Buat pemicu**.

1. Masukkan nama di **nama Pemicu**.

1. Dari daftar drop-down **Frekuensi**, pilih frekuensi untuk pemicu Anda. Jika Anda ingin membuat frekuensi menggunakan ekspresi cron, pilih **Kustom**.

1. Tentukan parameter untuk frekuensi pemicu Anda. Anda dapat memasukkan beberapa karakter pertama pilihan Anda di kotak teks untuk memfilter item menu tarik-turun.
**catatan**  
 Jam dan menit mulai berbasis nol. Menit awal adalah angka antara nol dan 59. Jam awal adalah angka antara nol dan 23. Misalnya, pemicu harian yang dimulai setiap hari pada pukul 12:15 P.M. memiliki jam mulai 12 dan menit mulai 15. Pemicu harian yang dimulai setiap hari pada tengah malam memiliki jam awal nol dan menit awal nol. Pemicu harian yang dimulai setiap hari pada pukul 11:59 malam memiliki jam mulai 23 dan menit mulai 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/build-triggers.html)

1.  Pilih **Aktifkan pemicu ini**. 

1.  (Opsional) Perluas **bagian Lanjutan**. Dalam **versi Sumber**, ketik versi sumber Anda. 
   +  Untuk Amazon S3, masukkan ID versi yang sesuai dengan versi artefak input yang ingin Anda buat. Jika **versi Sumber** dibiarkan kosong, versi terbaru digunakan. 
   +  Untuk AWS CodeCommit, ketik ID komit. Jika **versi Sumber** dibiarkan kosong, ID komit HEAD cabang default digunakan. 
   + Untuk GitHub atau GitHub Enterprise, ketikkan ID komit, ID permintaan tarik, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika Anda menentukan ID permintaan tarik, itu harus menggunakan format `pr/pull-request-ID` (misalnya,`pr/25`). Jika Anda menentukan nama cabang, ID komit HEAD cabang digunakan. Jika **versi Sumber** kosong, ID komit HEAD cabang default digunakan.
   + Untuk Bitbucket, ketik ID komit, nama cabang, atau nama tag yang sesuai dengan versi kode sumber yang ingin Anda buat. Jika Anda menentukan nama cabang, ID komit HEAD cabang digunakan. Jika **versi Sumber** kosong, ID komit HEAD cabang default digunakan.

1. (Opsional) Tentukan batas waktu antara 5 menit dan 2160 menit (36 jam). Nilai ini menentukan berapa lama AWS CodeBuild mencoba membangun sebelum berhenti. Jika **Jam** dan **Menit** dibiarkan kosong, nilai batas waktu default yang ditentukan dalam proyek digunakan. 

1. Pilih **Buat pemicu**.

### Buat AWS CodeBuild pemicu secara terprogram
<a name="trigger-create-code"></a>

CodeBuild menggunakan EventBridge aturan Amazon untuk pemicu build. Anda dapat menggunakan EventBridge API untuk membuat pemicu build secara terprogram untuk proyek Anda. CodeBuild Lihat [Referensi Amazon EventBridge API](https://docs.aws.amazon.com/eventbridge/latest/APIReference/) untuk informasi selengkapnya.

# Edit AWS CodeBuild pemicu
<a name="triggers-edit"></a>

Anda dapat mengedit pemicu pada proyek untuk menjadwalkan build setiap jam, hari, atau minggu sekali. Anda juga dapat mengedit pemicu untuk menggunakan aturan khusus dengan ekspresi CloudWatch cron Amazon. Misalnya, menggunakan ekspresi cron, Anda dapat menjadwalkan build pada waktu tertentu setiap hari kerja. Untuk informasi tentang membuat pemicu, lihat[Buat AWS CodeBuild pemicu](build-triggers.md#trigger-create).

**Topics**
+ [Edit AWS CodeBuild pemicu (konsol)](#triggers-edit-console)
+ [Edit AWS CodeBuild pemicu secara terprogram](#trigger-edit-code)

## Edit AWS CodeBuild pemicu (konsol)
<a name="triggers-edit-console"></a>

Gunakan prosedur berikut untuk mengedit pemicu menggunakan. Konsol Manajemen AWS

**Untuk mengedit pemicu**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**.

1. Pilih link untuk proyek build yang ingin diubah, lalu pilih tab **Build triggers**.
**catatan**  
Secara default, 100 proyek build terbaru ditampilkan. Untuk melihat proyek build lainnya, pilih ikon roda gigi, lalu pilih nilai berbeda untuk **Proyek per halaman** atau gunakan panah mundur dan maju.

1. Pilih tombol radio di sebelah pemicu yang ingin Anda ubah, lalu pilih **Edit**.

1. Dari daftar drop-down **Frekuensi**, pilih frekuensi untuk pemicu Anda. Jika Anda ingin membuat frekuensi menggunakan ekspresi cron, pilih **Kustom**.

1. Tentukan parameter untuk frekuensi pemicu Anda. Anda dapat memasukkan beberapa karakter pertama pilihan Anda di kotak teks untuk memfilter item menu tarik-turun.
**catatan**  
 Jam dan menit mulai berbasis nol. Menit awal adalah angka antara nol dan 59. Jam awal adalah angka antara nol dan 23. Misalnya, pemicu harian yang dimulai setiap hari pada pukul 12:15 P.M. memiliki jam mulai 12 dan menit mulai 15. Pemicu harian yang dimulai setiap hari pada tengah malam memiliki jam awal nol dan menit awal nol. Pemicu harian yang dimulai setiap hari pada pukul 11:59 malam memiliki jam mulai 23 dan menit mulai 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/triggers-edit.html)

1.  Pilih **Aktifkan pemicu ini**. 

**catatan**  
Anda dapat menggunakan CloudWatch konsol Amazon di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)untuk mengedit versi sumber, batas waktu, dan opsi lain yang tidak tersedia. AWS CodeBuild

## Edit AWS CodeBuild pemicu secara terprogram
<a name="trigger-edit-code"></a>

CodeBuild menggunakan EventBridge aturan Amazon untuk pemicu build. Anda dapat menggunakan EventBridge API untuk mengedit pemicu build secara terprogram untuk proyek Anda. CodeBuild Lihat [Referensi Amazon EventBridge API](https://docs.aws.amazon.com/eventbridge/latest/APIReference/) untuk informasi selengkapnya.

# Lihat detail build di AWS CodeBuild
<a name="view-build-details"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk melihat detail tentang build yang dikelola oleh CodeBuild.

**Topics**
+ [Lihat detail build (konsol)](#view-build-details-console)
+ [Lihat detail build (AWS CLI)](#view-build-details-cli)
+ [Lihat detail build (AWS SDKs)](#view-build-details-sdks)
+ [Bangun transisi fase](view-build-details-phases.md)

## Lihat detail build (konsol)
<a name="view-build-details-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Lakukan salah satu tindakan berikut:
   + Di panel navigasi, pilih **Build history**. Dalam daftar build, di kolom **Build run**, pilih link untuk build. 
   + Di panel navigasi, pilih **Membangun proyek**. Dalam daftar proyek build, di kolom **Name**, pilih link untuk nama proyek build. Kemudian, dalam daftar build, di kolom **Build run**, pilih link untuk build.
**catatan**  
Secara default, hanya 10 proyek build atau build terbaru yang ditampilkan. Untuk melihat lebih banyak proyek build atau build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau **Proyek per halaman** atau gunakan panah mundur dan maju.

## Lihat detail build (AWS CLI)
<a name="view-build-details-cli"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with AWS CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).

Jalankan perintah **batch-get-builds**:

```
aws codebuild batch-get-builds --ids ids
```

Ganti placeholder berikut:
+ *ids*: String yang dibutuhkan. Satu atau lebih build IDs untuk melihat detail tentang. Untuk menentukan lebih dari satu ID build, pisahkan setiap ID build dengan spasi. Anda dapat menentukan hingga 100 build IDs. Untuk mendapatkan daftar build IDs, lihat topik berikut:
  + [Lihat daftar build IDs (AWS CLI)](view-build-list.md#view-build-list-cli)
  + [Melihat daftar build IDs untuk proyek build (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

Misalnya, jika Anda menjalankan perintah ini:

```
aws codebuild batch-get-builds --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE my-other-project:813bb6c6-891b-426a-9dd7-6d8a3EXAMPLE
```

Jika perintah berhasil, data yang mirip dengan yang dijelaskan dalam [Untuk melihat informasi build yang dirangkum](getting-started-overview.md#getting-started-cli-monitor-build-cli) muncul di output.

## Lihat detail build (AWS SDKs)
<a name="view-build-details-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Bangun transisi fase
<a name="view-build-details-phases"></a>

Dibangun dalam AWS CodeBuild proses secara bertahap:



![\[CodeBuild Fase.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/build-phases.png)




**penting**  
`UPLOAD_ARTIFACTS`Fase selalu dicoba, bahkan jika `BUILD` fase gagal.

# Lihat daftar build IDs in AWS CodeBuild
<a name="view-build-list"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk melihat daftar build IDs untuk build yang dikelola oleh CodeBuild.

**Topics**
+ [Lihat daftar build IDs (console)](#view-build-list-console)
+ [Lihat daftar build IDs (AWS CLI)](#view-build-list-cli)
+ [Melihat daftar batch build IDs (AWS CLI)](#view-batch-build-list-cli)
+ [Lihat daftar build IDs (AWS SDKs)](#view-build-list-sdks)

## Lihat daftar build IDs (console)
<a name="view-build-list-console"></a>

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Build history**. 
**catatan**  
Secara default, hanya 10 build terbaru yang ditampilkan. Untuk melihat lebih banyak build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau gunakan panah mundur dan maju.

## Lihat daftar build IDs (AWS CLI)
<a name="view-build-list-cli"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).
+ Jalankan perintah **list-builds**:

  ```
  aws codebuild list-builds --sort-order sort-order --next-token next-token
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *sort-order*: String opsional yang digunakan untuk menunjukkan cara membuat daftar build IDs. Nilai yang valid mencakup `ASCENDING` dan `DESCENDING`.
  + *next-token*: String opsional. Selama proses sebelumnya, jika ada lebih dari 100 item dalam daftar, hanya 100 item pertama yang dikembalikan, bersama dengan string unik yang disebut *token berikutnya*. Untuk mendapatkan kumpulan item berikutnya dalam daftar, jalankan perintah ini lagi, tambahkan token berikutnya ke panggilan. Untuk mendapatkan semua item dalam daftar, terus jalankan perintah ini dengan setiap token berikutnya berikutnya, sampai tidak ada lagi token berikutnya yang dikembalikan.

  Misalnya, jika Anda menjalankan perintah ini:

  ```
  aws codebuild list-builds --sort-order ASCENDING
  ```

  Hasil yang mirip dengan berikut ini mungkin muncul di output:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Jika Anda menjalankan perintah ini lagi:

  ```
  aws codebuild list-builds --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Hasil yang mirip dengan berikut ini mungkin muncul di output:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Melihat daftar batch build IDs (AWS CLI)
<a name="view-batch-build-list-cli"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).
+ Jalankan perintah **list-build-batches**:

  ```
  aws codebuild list-build-batches --sort-order sort-order --next-token next-token
  ```

  Pada perintah sebelumnya, ganti placeholder berikut:
  + *sort-order*: String opsional yang digunakan untuk menunjukkan cara membuat daftar build batch IDs. Nilai yang valid mencakup `ASCENDING` dan `DESCENDING`.
  + *next-token*: String opsional. Selama proses sebelumnya, jika ada lebih dari 100 item dalam daftar, hanya 100 item pertama yang dikembalikan, bersama dengan string unik yang disebut *token berikutnya*. Untuk mendapatkan kumpulan item berikutnya dalam daftar, jalankan perintah ini lagi, tambahkan token berikutnya ke panggilan. Untuk mendapatkan semua item dalam daftar, terus jalankan perintah ini dengan setiap token berikutnya berikutnya, sampai tidak ada lagi token berikutnya yang dikembalikan.

  Misalnya, jika Anda menjalankan perintah ini:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING
  ```

  Hasil yang mirip dengan berikut ini mungkin muncul di output:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Jika Anda menjalankan perintah ini lagi:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Hasil yang mirip dengan berikut ini mungkin muncul di output:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Lihat daftar build IDs (AWS SDKs)
<a name="view-build-list-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).

# Lihat daftar build IDs untuk proyek build di AWS CodeBuild
<a name="view-builds-for-project"></a>

Anda dapat menggunakan AWS CodeBuild konsol, AWS CLI, atau AWS SDKs untuk melihat daftar build IDs untuk proyek build di CodeBuild.

**Topics**
+ [Melihat daftar build IDs untuk proyek build (konsol)](#view-builds-for-project-console)
+ [Melihat daftar build IDs untuk proyek build (AWS CLI)](#view-builds-for-project-cli)
+ [Melihat daftar batch build IDs untuk proyek build (AWS CLI)](#view-batch-builds-for-project-cli)
+ [Melihat daftar build IDs untuk proyek build (AWS SDKs)](#view-builds-for-project-sdks)

## Melihat daftar build IDs untuk proyek build (konsol)
<a name="view-builds-for-project-console"></a>

1. Buka CodeBuild konsol di [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/).

1. Di panel navigasi, pilih **Membangun proyek**. Dalam daftar proyek build, di kolom **Name**, pilih proyek build. 

**catatan**  
Secara default, hanya 100 build atau proyek build terbaru yang ditampilkan. Untuk melihat lebih banyak proyek build atau build, pilih ikon roda gigi, lalu pilih nilai yang berbeda untuk **Build per halaman** atau **Proyek per halaman** atau gunakan panah mundur dan maju.

## Melihat daftar build IDs untuk proyek build (AWS CLI)
<a name="view-builds-for-project-cli"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with AWS CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).

Jalankan **list-builds-for-project** perintah, sebagai berikut:

```
aws codebuild list-builds-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Pada perintah sebelumnya, ganti placeholder berikut:
+ *project-name*: String yang diperlukan digunakan untuk menunjukkan nama proyek build untuk mencantumkan build IDs . Untuk mendapatkan daftar proyek pembangunan, lihat[Lihat daftar nama proyek build (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: String opsional yang digunakan untuk menunjukkan cara membuat daftar build IDs. Nilai yang valid mencakup `ASCENDING` dan `DESCENDING`.
+ *next-token*: String opsional. Selama proses sebelumnya, jika ada lebih dari 100 item dalam daftar, hanya 100 item pertama yang dikembalikan, bersama dengan string unik yang disebut *token berikutnya*. Untuk mendapatkan kumpulan item berikutnya dalam daftar, jalankan perintah ini lagi, tambahkan token berikutnya ke panggilan. Untuk mendapatkan semua item dalam daftar, terus jalankan perintah ini dengan setiap token berikutnya berikutnya yang dikembalikan, sampai tidak ada lagi token berikutnya yang dikembalikan.

Misalnya, jika Anda menjalankan perintah ini mirip dengan ini:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Hasil seperti berikut ini mungkin muncul di output:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Jika Anda menjalankan perintah ini lagi:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Anda mungkin melihat hasil seperti berikut di output:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Melihat daftar batch build IDs untuk proyek build (AWS CLI)
<a name="view-batch-builds-for-project-cli"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CLI with AWS CodeBuild, lihat[Referensi baris perintah](cmd-ref.md).

Jalankan **list-build-batches-for-project** perintah, sebagai berikut:

```
aws codebuild list-build-batches-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Pada perintah sebelumnya, ganti placeholder berikut:
+ *project-name*: String yang diperlukan digunakan untuk menunjukkan nama proyek build untuk mencantumkan build IDs . Untuk mendapatkan daftar proyek pembangunan, lihat[Lihat daftar nama proyek build (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: String opsional yang digunakan untuk menunjukkan cara membuat daftar build IDs. Nilai yang valid mencakup `ASCENDING` dan `DESCENDING`.
+ *next-token*: String opsional. Selama proses sebelumnya, jika ada lebih dari 100 item dalam daftar, hanya 100 item pertama yang dikembalikan, bersama dengan string unik yang disebut *token berikutnya*. Untuk mendapatkan kumpulan item berikutnya dalam daftar, jalankan perintah ini lagi, tambahkan token berikutnya ke panggilan. Untuk mendapatkan semua item dalam daftar, terus jalankan perintah ini dengan setiap token berikutnya berikutnya yang dikembalikan, sampai tidak ada lagi token berikutnya yang dikembalikan.

Misalnya, jika Anda menjalankan perintah ini mirip dengan ini:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Hasil seperti berikut ini mungkin muncul di output:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Jika Anda menjalankan perintah ini lagi:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Anda mungkin melihat hasil seperti berikut di output:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Melihat daftar build IDs untuk proyek build (AWS SDKs)
<a name="view-builds-for-project-sdks"></a>

Untuk informasi lebih lanjut tentang menggunakan AWS CodeBuild dengan AWS SDKs, lihat[AWS SDKs dan referensi alat](sdk-ref.md).