

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

# Pelari Buildkite yang dikelola sendiri di AWS CodeBuild
<a name="buildkite-runner"></a>

Anda dapat mengonfigurasi proyek Anda untuk menyiapkan runner Buildkite yang dihosting sendiri dalam CodeBuild kontainer untuk memproses pekerjaan Buildkite Anda. Ini dapat dilakukan dengan menyiapkan webhook menggunakan CodeBuild proyek Anda, dan memperbarui langkah-langkah YAMM pipeline Buildkite Anda untuk menggunakan runner yang dihosting sendiri yang dihosting di mesin. CodeBuild 

Langkah-langkah tingkat tinggi untuk mengonfigurasi CodeBuild proyek untuk menjalankan pekerjaan Buildkite adalah sebagai berikut:
+ Arahkan ke CodeBuild konsol dan buat CodeBuild proyek dengan konfigurasi tipe runner project runner Buildkite
+ Tambahkan `job.scheduled` webhook ke organisasi Buildkite Anda.
+ Perbarui langkah YAMAL pipeline Buildkite Anda di Buildkite untuk mengonfigurasi lingkungan build Anda.

Untuk prosedur yang lebih rinci, lihat[Tutorial: Konfigurasikan pelari Buildkite yang CodeBuild di-host](sample-runner-buildkite.md). Fitur ini memungkinkan pekerjaan Buildkite Anda untuk mendapatkan integrasi asli AWS, yang memberikan keamanan dan kenyamanan melalui fitur seperti IAM,, AWS Secrets Manager, dan AWS CloudTrail Amazon VPC. Anda dapat mengakses jenis instans terbaru, termasuk instance berbasis ARM.

# Tentang pelari CodeBuild Buildkite yang di-host
<a name="buildkite-runner-about"></a>

Berikut ini adalah beberapa pertanyaan umum tentang pelari Buildkite yang CodeBuild di-host.

## Kapan saya harus menyertakan penggantian gambar dan instance di label?
<a name="buildkite-runner-about-overrides"></a>

Anda dapat menyertakan penggantian gambar dan instance dalam label untuk menentukan lingkungan build yang berbeda untuk setiap pekerjaan Buildkite Anda. Ini dapat dilakukan tanpa perlu membuat beberapa CodeBuild proyek atau webhook. Misalnya, ini berguna ketika Anda perlu menggunakan [matriks untuk pekerjaan Buildkite](https://buildkite.com/docs/pipelines/configure/workflows/build-matrix).

```
agents:
  queue: "myQueue"
steps:
  - command: "echo \"Hello World\""
    agents:
      project: "codebuild-myProject"
      image: "{{matrix.os}}"
      instance-size: "{{matrix.size}}"
    matrix:
      setup:
        os:
          - "arm-3.0"
          - "al2-5.0"
        size:
          - "small"
          - "large"
```

## Bisakah CodeBuild membuat webhook dalam Buildkite secara otomatis?
<a name="buildkite-runner-about-auto-create"></a>

Saat ini, Buildkite mengharuskan semua webhook dibuat secara manual menggunakan konsol mereka. Anda dapat mengikuti tutorial di [Tutorial: Konfigurasikan pelari Buildkite yang CodeBuild di-host](sample-runner-buildkite.md) untuk membuat webhook Buildkite secara manual di konsol Buildkite.

## Dapatkah saya menggunakan CloudFormation untuk membuat webhook Buildkite?
<a name="buildkite-runner-about-cloudformation"></a>

CloudFormation saat ini tidak didukung untuk webhook runner Buildkite, karena Buildkite memerlukan webhook untuk dibuat secara manual menggunakan konsolnya.

## Wilayah mana yang mendukung penggunaan pelari Buildkite yang CodeBuild di-host?
<a name="buildkite-runner-about-regions"></a>

CodeBuild-host Buildkite runner didukung di semua wilayah. CodeBuild Untuk informasi selengkapnya tentang AWS Wilayah yang CodeBuild tersedia, lihat [AWS Layanan menurut Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

# Tutorial: Konfigurasikan pelari Buildkite yang CodeBuild di-host
<a name="sample-runner-buildkite"></a>

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan Buildkite. Untuk informasi selengkapnya tentang menggunakan Buildkite dengan lihat. CodeBuild [Pelari Buildkite yang dikelola sendiri di AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+ Memiliki akses ke organisasi Buildkite. Untuk informasi selengkapnya tentang menyiapkan akun dan organisasi Buildkite, Anda dapat mengikuti Tutorial [Memulai](https://buildkite.com/docs/pipelines/getting-started) ini.
+ Buat pipeline, cluster, dan antrean Buildkite yang dikonfigurasi untuk menggunakan runner yang dihosting sendiri. Untuk informasi lebih lanjut tentang pengaturan sumber daya ini, Anda dapat mereferensikan [Buildkite Pipeline](https://buildkite.com/docs/pipelines/create-your-own) Setup Tutorial.  
![\[Membangun proyek di Buildkite\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-first.png)

## Langkah 1: Buat token agen Buildkite
<a name="w2aac26c33c12c13b7"></a>

Pada langkah ini, Anda akan menghasilkan token agen dalam Buildkite yang akan digunakan untuk mengautentikasi pelari yang dihosting sendiri. CodeBuild Untuk informasi selengkapnya tentang sumber daya ini, lihat Token [Agen Buildkite](https://buildkite.com/docs/agent/v3/tokens). 

**Untuk menghasilkan token agen Buildkite**

1. **Di klaster Buildkite Anda, pilih **Token Agen**, lalu pilih Token Baru.**

1. Tambahkan deskripsi ke token dan klik **Buat Token**.

1. Simpan nilai token agen, karena akan digunakan nanti selama penyiapan CodeBuild proyek.  
![\[Token agen di Buildkite\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-createtoken.png)

## Langkah 2: Buat CodeBuild proyek dengan webhook
<a name="sample-runner-buildkite-create-project"></a>

**Untuk membuat CodeBuild proyek dengan webhook**

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

1. Buat proyek build yang dihosting sendiri. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Dalam **konfigurasi Project**, pilih **Runner project**. Di **Runner**: 
     +  Untuk **penyedia Runner**, pilih **Buildkite**.
     + Untuk **token agen Buildkite, pilih Buat token** **agen baru dengan menggunakan halaman buat** rahasia. Anda akan diminta untuk membuat rahasia baru dengan nilai rahasia yang sama AWS Secrets Manager dengan token agen Buildkite yang Anda buat di atas.
     + (Opsional) Jika Anda ingin menggunakan kredensil CodeBuild terkelola untuk pekerjaan Anda, pilih penyedia repositori sumber pekerjaan Anda di bawah **opsi kredensi sumber Buildkite dan verifikasi bahwa kredensil** dikonfigurasi untuk akun Anda. Selain itu, verifikasi bahwa pipeline Buildkite Anda menggunakan **Checkout** menggunakan HTTPS.
**catatan**  
Buildkite memerlukan kredensi sumber dalam lingkungan build untuk menarik sumber pekerjaan Anda. Lihat [Mengautentikasi Buildkite ke Repositori Pribadi](#sample-runner-buildkite-config) opsi kredensi sumber yang tersedia.
   + (Opsional) Di **Lingkungan**: 
     + Pilih **gambar Lingkungan** yang didukung dan **Compute**. 

       Perhatikan bahwa Anda memiliki opsi untuk mengganti setelan gambar dan instans dengan menggunakan label dalam langkah YAMAL Buildkite Anda. Untuk informasi selengkapnya, lihat [Langkah 4: Perbarui langkah-langkah pipeline Buildkite Anda](#sample-runner-buildkite-update-pipeline).
   + (Opsional) Di **Buildspec**: 
     + Buildspec Anda akan diabaikan secara default kecuali `buildspec-override: "true"` ditambahkan sebagai label. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dihosting sendiri.
**catatan**  
CodeBuild tidak mendukung file buildspec untuk build runner yang dihosting sendiri Buildkite. Untuk spesifikasi build sebaris, Anda harus mengaktifkan [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)di buildspec jika Anda telah mengonfigurasi kredenal sumber terkelola CodeBuild 

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

1. Simpan **URL Payload** dan nilai **Rahasia** dari popup **Create Webhook**. Ikuti petunjuk di popup untuk membuat webhook organisasi Buildkite baru atau lanjutkan ke bagian berikutnya.

## Langkah 3: Buat CodeBuild webhook dalam Buildkite
<a name="sample-runner-buildkite-codebuild-webhook"></a>

Pada langkah ini, Anda akan menggunakan **URL Payload** dan nilai **Rahasia** dari CodeBuild webhook untuk membuat webhook baru dalam Buildkite. Webhook ini akan digunakan untuk memicu build di dalam CodeBuild saat pekerjaan Buildkite yang valid dimulai.

**Untuk membuat webhook baru di Buildkite**

1. **Arahkan ke halaman Pengaturan organisasi Buildkite Anda.**

1. Di bawah **Integrasi**, pilih **Layanan Pemberitahuan**.

1. Pilih **Tambahkan** di sebelah kotak **Webhook**. Di halaman **Add Webhook Notification**, gunakan konfigurasi berikut:

   1. Di bawah **URL Webhook**, tambahkan nilai **URL Payload** yang disimpan.

   1. Di bawah **Token**, verifikasi bahwa **Kirim token seperti X-Buildkite-Token** yang dipilih. Tambahkan nilai **Rahasia** webhook Anda ke bidang **Token**.

   1. Di bawah, verifikasi itu **Kirim token seperti X-Buildkite-Token** yang dipilih. Tambahkan nilai **Rahasia** webhook Anda ke bidang **Token**.

   1. Di bawah **Acara**, pilih acara `job.scheduled` webhook.

   1. (Opsional) Di bawah **Pipelines**, Anda dapat memilih untuk hanya memicu build untuk pipeline tertentu.

1. Pilih **Tambahkan Pemberitahuan Webhook**.

## Langkah 4: Perbarui langkah-langkah pipeline Buildkite Anda
<a name="sample-runner-buildkite-update-pipeline"></a>

Pada langkah ini, Anda akan memperbarui langkah-langkah pipeline Buildkite Anda untuk menambahkan label yang diperlukan dan penggantian opsional. Untuk daftar lengkap penggantian label yang didukung, lihat. [Penggantian label didukung dengan pelari Buildkite yang CodeBuild di-host](buildkite-runner-update-labels.md)

**Perbarui langkah pipeline Anda**

1. **Arahkan ke halaman langkah pipeline Buildkite dengan memilih pipeline Buildkite, pilih **Pengaturan**, lalu pilih Langkah.**

   Jika Anda belum melakukannya, pilih **Mengonversi ke langkah YAMAL**.  
![\[Langkah-langkah untuk memperbarui YAMAL.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-steps.png)

1. Minimal, Anda harus menentukan [tag agen Buildkite](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) yang merujuk nama pipeline Anda. CodeBuild Nama proyek diperlukan untuk menautkan pengaturan AWS terkait pekerjaan Buildkite Anda ke proyek tertentu. CodeBuild Dengan memasukkan nama proyek di YAMAL, CodeBuild diizinkan untuk memanggil pekerjaan dengan pengaturan proyek yang benar.

   ```
   agents:
     project: "codebuild-<project name>"
   ```

   Berikut ini adalah contoh langkah pipeline Buildkite hanya dengan tag label proyek:

   ```
   agents:
     project: "codebuild-myProject"
   steps:
     - command: "echo \"Hello World\""
   ```

   Anda juga dapat mengganti gambar dan jenis komputasi di label. Lihat [Hitung gambar yang didukung dengan runner Buildkite yang CodeBuild di-host](buildkite-runner-update-yaml.images.md) daftar gambar yang tersedia. Jenis komputasi dan gambar dalam label akan mengganti pengaturan lingkungan pada proyek Anda. Untuk mengganti setelan lingkungan Anda untuk build komputasi CodeBuild EC2 atau Lambda, gunakan sintaks berikut:

   ```
   agents:
     project: "codebuild-<project name>"
     image: "<environment-type>-<image-identifier>"
     instance-size: "<instance-size>"
   ```

   Berikut ini adalah contoh langkah pipeline Buildkite dengan penggantian ukuran gambar dan instance:

   ```
   agents:
     project: "codebuild-myProject"
     image: "arm-3.0"
     instance-size: "small"
   steps:
     - command: "echo \"Hello World\""
   ```

   Anda dapat mengganti armada yang digunakan untuk build Anda di label. Ini akan menggantikan pengaturan armada yang dikonfigurasi pada proyek Anda untuk menggunakan armada yang ditentukan. Untuk informasi selengkapnya, lihat [Menjalankan build di atas armada kapasitas cadangan](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

   Untuk mengganti setelan armada untuk build komputasi Amazon EC2, gunakan sintaks berikut:

   ```
   agents:
     project: "codebuild-<project name>"
     fleet: "<fleet-name>"
   ```

   Untuk mengganti armada dan gambar yang digunakan untuk build, gunakan sintaks berikut:

   ```
   agents:
     project: "codebuild-<project name>"
     fleet: "<fleet-name>"
     image: "<environment-type>-<image-identifier>"
   ```

   Berikut ini adalah contoh langkah pipeline Buildkite dengan penggantian armada dan gambar:

   ```
   agents:
     project: "codebuild-myProject"
     fleet: "myFleet"
     image: "arm-3.0"
   steps:
     - command: "echo \"Hello World\""
   ```

1. Anda dapat memilih untuk menjalankan perintah buildspec sebaris selama build runner Buildkite yang dihosting sendiri (lihat untuk detail selengkapnya). [Jalankan perintah buildspec untuk fase INSTALL, PRE\$1BUILD, dan POST\$1BUILD](sample-runner-buildkite-buildspec.md) Untuk menentukan bahwa CodeBuild build harus menjalankan perintah buildspec selama build runner yang di-host sendiri Buildkite, gunakan sintaks berikut:

   ```
   agents:
     project: "codebuild-<project name>"
     buildspec-override: "true"
   ```

   Berikut ini adalah contoh pipeline Buildkite dengan penggantian buildspec:

   ```
   agents:
     project: "codebuild-myProject"
     buildspec-override: "true"
   steps:
     - command: "echo \"Hello World\""
   ```

1. Secara opsional, Anda dapat memberikan label di luar label yang CodeBuild mendukung. Label ini akan diabaikan untuk tujuan mengesampingkan atribut build, tetapi tidak akan gagal dalam permintaan webhook. Misalnya, menambahkan `myLabel: “testLabel"` sebagai label tidak akan mencegah build berjalan.

## Langkah 5: Tinjau hasil Anda
<a name="sample-runner-buildkite-verify"></a>

Setiap kali pekerjaan Buildkite dimulai di pipeline Anda, CodeBuild akan menerima acara webhook melalui `job.scheduled` webhook Buildkite. Untuk setiap pekerjaan di build Buildkite Anda, CodeBuild akan memulai build untuk menjalankan runner Buildkite sementara. Pelari bertanggung jawab untuk menjalankan satu pekerjaan Buildkite. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.

**Untuk melihat log pekerjaan alur kerja, navigasikan ke pipeline Buildkite dan pilih build terbaru (Anda dapat memicu build baru dengan memilih New Build).** Setelah CodeBuild build terkait untuk setiap pekerjaan Anda dimulai dan mengambil pekerjaan, Anda akan melihat log untuk pekerjaan tersebut di dalam konsol Buildkite

![\[Tinjau hasil.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-log.png)


## Mengautentikasi Buildkite ke Repositori Pribadi
<a name="sample-runner-buildkite-config"></a>

Jika Anda memiliki repositori pribadi yang dikonfigurasi dalam pipeline Buildkite Anda, Buildkite memerlukan [izin tambahan dalam lingkungan build untuk menarik repositori, karena Buildkite tidak menjual kredensil](https://buildkite.com/docs/agent/v3/github-ssh-keys) ke pelari yang dihosting sendiri untuk menarik dari repositori pribadi. Untuk mengautentikasi agen runner yang dihosting sendiri Buildkite ke repositori sumber pribadi eksternal Anda, Anda dapat menggunakan salah satu opsi berikut.

**Untuk mengautentikasi dengan CodeBuild**

CodeBuild menawarkan penanganan kredensil terkelola untuk tipe sumber yang didukung. Untuk menggunakan kredensi CodeBuild sumber untuk menarik repositori sumber pekerjaan Anda, Anda dapat menggunakan langkah-langkah berikut:

1. Di CodeBuild konsol, navigasikan ke **Edit proyek** atau buat CodeBuild proyek baru menggunakan langkah-langkah di[Langkah 2: Buat CodeBuild proyek dengan webhook](#sample-runner-buildkite-create-project).

1. Di bawah **opsi kredensi sumber Buildkite**, pilih penyedia repositori sumber pekerjaan Anda.

   1. Jika Anda ingin menggunakan kredensil tingkat akun, verifikasi bahwa CodeBuild kredensialnya dikonfigurasi dengan benar. Selain itu, jika project Anda memiliki buildspec inline yang dikonfigurasi, verifikasi bahwa proyek tersebut diaktifkan. [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Jika Anda ingin menggunakan kredensial tingkat proyek, pilih **Gunakan CodeBuild kredenal ganti untuk proyek ini saja dan siapkan kredensil untuk proyek** Anda.

1. **Di pengaturan pipeline Buildkite Anda, navigasikan ke Pengaturan Repositori.** Atur pengaturan checkout repositori sumber Anda ke **Checkout menggunakan HTTPS**  
![\[Tinjau hasil.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Untuk mengautentikasi dengan rahasia Buildkite**

Buildkite memelihara [plugin ssh-checkout](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin) yang dapat digunakan untuk mengautentikasi pelari yang dihosting sendiri ke repositori sumber eksternal menggunakan kunci ssh. Nilai kunci disimpan sebagai [rahasia Buildkite](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) dan diambil secara otomatis oleh agen runner yang di-host sendiri Buildkite saat mencoba menarik repositori pribadi. Untuk mengonfigurasi plugin ssh-checkout untuk pipeline Buildkite Anda, Anda dapat menggunakan langkah-langkah berikut:

1. Hasilkan kunci ssh pribadi dan publik menggunakan alamat email Anda, mis. `ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"`

1. Tambahkan kunci publik ke repositori sumber pribadi Anda. Misalnya, Anda dapat mengikuti [panduan ini](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) untuk menambahkan kunci ke GitHub akun.

1. Tambahkan [rahasia kunci SSH baru](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) ke cluster Buildkite Anda. **Dalam cluster Buildkite Anda, pilih **Rahasia → Rahasia Baru**.** Tambahkan nama untuk rahasia Anda di bidang **Kunci** dan tambahkan kunci SSH pribadi Anda ke bidang **Nilai**:  
![\[Tinjau hasil.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-secret.png)

1. **Dalam pipeline Buildkite Anda, navigasikan ke pengaturan repositori Anda dan atur checkout untuk menggunakan SSH.**  
![\[Tinjau hasil.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-repo.png)

1. Perbarui langkah-langkah YAMAL pipeline Anda untuk menggunakan `git-ssh-checkout` plugin. Misalnya, file YAMAL pipeline berikut menggunakan tindakan checkout dengan kunci rahasia Buildkite di atas:

   ```
   agents:
     project: "codebuild-myProject"
   steps:
     - command: "npm run build"
       plugins:
         - git-ssh-checkout#v0.4.1:
             ssh-secret-key-name: 'SOURCE_SSH_KEY'
   ```

1. Saat menjalankan pekerjaan runner yang di-host sendiri Buildkite di dalamnya CodeBuild, Buildkite sekarang akan secara otomatis menggunakan nilai rahasia yang dikonfigurasi saat menarik repositori pribadi Anda

## Opsi konfigurasi pelari
<a name="sample-buildkite-runner-auth"></a>

Anda dapat menentukan variabel lingkungan berikut dalam konfigurasi proyek untuk mengubah konfigurasi penyiapan pelari yang dihosting sendiri:
+ `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`: CodeBuild akan mengambil nilai rahasia yang dikonfigurasi sebagai nilai variabel lingkungan ini untuk mendaftarkan agen AWS Secrets Manager runner yang dihosting sendiri Buildkite. Variabel lingkungan ini harus bertipe`SECRETS_MANAGER`, dan nilainya harus menjadi nama rahasia Anda di Secrets Manager. Variabel lingkungan token agen Buildkite diperlukan untuk semua proyek runner Buildkite.
+ `CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE`: Secara default, CodeBuild akan memuat kredenal sumber tingkat akun atau proyek ke dalam lingkungan build, karena kredensil ini digunakan oleh agen Buildkite untuk menarik repositori sumber pekerjaan. Untuk menonaktifkan perilaku ini, Anda dapat menambahkan variabel lingkungan ini ke proyek Anda dengan nilai yang disetel ke`true`, yang akan mencegah kredensi sumber dimuat ke lingkungan build.

# Jalankan perintah buildspec untuk fase INSTALL, PRE\$1BUILD, dan POST\$1BUILD
<a name="sample-runner-buildkite-buildspec"></a>

Secara default, CodeBuild abaikan perintah buildspec apa pun saat menjalankan build runner Buildkite yang dihosting sendiri. Untuk menjalankan perintah buildspec selama build, 

```
buildspec-override: "true"
```

 dapat ditambahkan sebagai akhiran pada label:

```
agents:
  project: "codebuild-<project name>"
  buildspec-override: "true"
```

Dengan menggunakan perintah ini, CodeBuild akan membuat folder yang disebut `buildkite-runner` dalam folder sumber utama wadah. Saat pelari Buildkite dimulai selama `BUILD` fase, pelari akan berjalan di direktori. `buildkite-runner`

Ada beberapa batasan saat menggunakan penggantian buildspec dalam build Buildkite yang dihosting sendiri:
+ Agen Buildkite mengharuskan kredensi sumber ada di dalam lingkungan build untuk menarik repositori sumber pekerjaan. Jika Anda menggunakan kredensi CodeBuild sumber untuk otentikasi, Anda harus mengaktifkan `git-credential-helper` di buildspec Anda. Misalnya, Anda dapat menggunakan buildspec berikut `git-credential-helper` untuk mengaktifkan build Buildkite Anda:

  ```
  version: 0.2
  env:
    git-credential-helper: yes
  phases:
    pre_build:
      commands:
         - echo "Hello World"
  ```
+ CodeBuild tidak akan menjalankan perintah buildspec selama `BUILD` fase, karena pelari yang di-host sendiri berjalan dalam fase tersebut. `BUILD`
+ CodeBuild tidak mendukung file buildspec untuk build runner Buildkite. Hanya spesifikasi build inline yang didukung untuk runner yang di-host sendiri Buildlkite
+ Jika perintah build gagal di `INSTALL` fase `PRE_BUILD` atau, tidak CodeBuild akan memulai runner yang dihosting sendiri dan pekerjaan Buildkite harus dibatalkan secara manual.

# Menyiapkan pelari Buildkite secara terprogram
<a name="sample-runner-buildkite-CLI"></a>

Untuk mengonfigurasi proyek runner Buildkite secara terprogram, Anda perlu mengonfigurasi sumber daya berikut:

**Untuk membuat runner Buildkite secara terprogram**

1. Buat token agen Buildkite dan simpan token dalam teks biasa di dalamnya. AWS Secrets Manager

1. Siapkan CodeBuild proyek dengan konfigurasi pilihan Anda. Anda perlu mengkonfigurasi atribut tambahan berikut:

   1. Nilai lingkungan dengan nama`CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`, tipe`SECRETS_MANAGER`, dan nilai yang sama dengan token agen Buildkite yang terkait dengan cluster Buildkite Anda.

   1. Jenis sumber sama dengan `NO_SOURCE`

   1. Izin untuk mengakses rahasia yang dibuat pada langkah 1 dalam peran layanan proyek Anda

   Misalnya, Anda dapat menggunakan perintah berikut untuk membuat proyek runner Buildkite yang valid melalui CLI:

   ```
   aws codebuild create-project \
   --name buildkite-runner-project \
   --source "{\"type\": \"NO_SOURCE\",\"buildspec\":\"\"}" \
   --environment "{\"image\":\"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"type\":\"LINUX_CONTAINER\",\"computeType\":\"BUILD_GENERAL1_MEDIUM\",\"environmentVariables\":[{\"name\":\"CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN\",\"type\":\"SECRETS_MANAGER\",\"value\":\"<buildkite-secret-name>\"}]}" \
   --artifacts "{\"type\": \"NO_ARTIFACTS\"}" \
   --service-role <service-role>
   ```

1. Buat webhook runner Buildkite pada proyek yang dibuat pada langkah 2. Anda harus menggunakan opsi konfigurasi berikut saat membuat webhook:

   1. **build-type** harus sama dengan `RUNNER_BUILDKITE_BUILD`

   1. Filter dengan tipe `EVENT` dan pola yang sama dengan `WORKFLOW_JOB_QUEUED` 

   Misalnya, Anda dapat menggunakan perintah berikut untuk membuat webhook runner Buildkite yang valid melalui CLI:

   ```
   aws codebuild create-webhook \
   --project-name buildkite-runner-project \
   --filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]" \
   --build-type RUNNER_BUILDKITE_BUILD
   ```

1. Simpan **URL Payload** dan nilai **Rahasia** yang ditampilkan oleh `create-webhook` panggilan dan gunakan kredensialnya untuk membuat webhook di dalam konsol Buildkite. Anda dapat mereferensikan Langkah 3: Buat CodeBuild webhook dalam Buildkite [Tutorial: Konfigurasikan pelari Buildkite yang CodeBuild di-host](sample-runner-buildkite.md) untuk panduan tentang cara mengatur sumber daya ini.

# Memecahkan masalah webhook untuk build yang gagal atau pekerjaan yang menggantung
<a name="buildkite-runner-troubleshoot-webhook"></a>

 **Masalah:** 

Webhook yang Anda atur [Tutorial: Konfigurasikan pelari Buildkite yang CodeBuild di-host](sample-runner-buildkite.md) tidak berfungsi atau pekerjaan alur kerja Anda tergantung di Buildkite.

 **Kemungkinan penyebabnya:** 
+ Acara **job.scheduled** webhook Anda mungkin gagal memicu build. Tinjau log **Respons** untuk melihat respons atau pesan kesalahan.
+  CodeBuild Build Anda gagal sebelum memulai agen runner yang dihosting sendiri Buildkite untuk menangani pekerjaan Anda.

 **Solusi yang direkomendasikan:** 

Untuk men-debug peristiwa webhook Buildkite yang gagal:

1. **Di pengaturan organisasi Buildkite Anda, navigasikan ke **Layanan Pemberitahuan**, pilih CodeBuild webhook Anda, lalu temukan Log Permintaan.**

1. Temukan acara `job.scheduled` webhook yang terkait dengan pekerjaan Buildkite Anda yang macet. Anda dapat menggunakan bidang ID pekerjaan dalam payload webhook untuk menghubungkan peristiwa webhook dengan pekerjaan Buildkite Anda.

1. Pilih tab **Respons** dan periksa badan respons. Verifikasi bahwa kode status **Response** adalah `200` dan badan **Response** tidak berisi pesan yang tidak terduga.  
![\[Respon untuk webhook.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/buildkite-request.png)

# Memecahkan masalah izin webhook
<a name="buildkite-runner-troubleshoot-webhook-permissions"></a>

 **Masalah:** 

Pekerjaan Buildkite gagal memeriksa repositori sumber pekerjaan karena masalah izin.

 **Kemungkinan penyebabnya:** 
+ CodeBuild tidak memiliki izin yang cukup untuk memeriksa repositori sumber pekerjaan.
+ Pengaturan repositori pipeline diatur untuk memeriksa menggunakan SSH untuk CodeBuild kredensi terkelola.

 **Solusi yang direkomendasikan:** 
+ Verifikasi bahwa CodeBuild memiliki izin yang cukup dikonfigurasi untuk memeriksa repositori sumber pekerjaan. Selain itu, verifikasi bahwa peran layanan CodeBuild proyek Anda memiliki izin yang cukup untuk mengakses opsi izin sumber yang dikonfigurasi.
+ Verifikasi bahwa pipeline Buildkite Anda dikonfigurasi untuk menggunakan checkout menggunakan HTTPS jika Anda menggunakan kredenal repositori sumber CodeBuild terkelola.

# Penggantian label didukung dengan pelari Buildkite yang CodeBuild di-host
<a name="buildkite-runner-update-labels"></a>

Di label tag agen langkah pipeline Buildkite, Anda dapat memberikan berbagai penggantian label yang mengubah build runner yang dihosting sendiri. Setiap build yang tidak dikenali oleh CodeBuild akan diabaikan tetapi tidak akan gagal permintaan webhook Anda. Misalnya, alur kerja berikut YAMAL menyertakan penggantian untuk image, ukuran instance, armada, dan buildspec:

```
agents:
  queue: "myQueue"
steps:
  - command: "echo \"Hello World\""
    agents:
      project: "codebuild-myProject"
      image: "{{matrix.os}}"
      instance-size: "{{matrix.size}}"
      buildspec-override: "true"
    matrix:
      setup:
        os:
          - "arm-3.0"
          - "al2-5.0"
        size:
          - "small"
          - "large"
```

 `project:codebuild-<project-name>`(diperlukan)
+ Contoh: `project: "codebuild-myProject"`
+ Diperlukan untuk semua konfigurasi langkah pipeline Buildkite. *<project name>*harus sama dengan nama proyek tempat webhook pelari yang dihosting sendiri dikonfigurasi.

`queue: "<queue-name>"`
+ Contoh: `queue: "<queue-name>"`
+ Digunakan untuk merutekan pekerjaan Buildkite ke antrian tertentu. Lihat [Tag Antrian Agen Buildkite](https://buildkite.com/docs/agent/v3/cli-start#the-queue-tag) untuk informasi selengkapnya.

 `image: "<environment-type>-<image-identifier>"` 
+ Contoh: `image: "arm-3.0"`
+ Mengganti jenis gambar dan lingkungan yang digunakan saat memulai build runner yang dihosting sendiri dengan gambar yang dikurasi. Untuk mempelajari nilai yang didukung, lihat[Hitung gambar yang didukung dengan runner Buildkite yang CodeBuild di-host](buildkite-runner-update-yaml.images.md).

  1. Untuk mengganti jenis gambar dan lingkungan yang digunakan dengan gambar kustom, gunakan `image: "custom-<environment-type>-<custom-image-identifier>"`

  1. Contoh: 

     ```
     image:
           "custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0"
     ```
**catatan**  
Jika gambar kustom berada di registri pribadi, Anda harus mengonfigurasi kredensi registri yang sesuai dalam proyek Anda. CodeBuild 

`instance-size: "<instance-size>"`
+ Contoh: `instance-size: "medium"`
+ Mengganti jenis instance yang digunakan saat memulai build runner yang dihosting sendiri. Untuk mempelajari nilai yang didukung, lihat[Hitung gambar yang didukung dengan runner Buildkite yang CodeBuild di-host](buildkite-runner-update-yaml.images.md).

`fleet: "<fleet-name>"`
+ Contoh: `fleet: "myFleet"`
+ Mengganti pengaturan armada yang dikonfigurasi pada proyek Anda untuk menggunakan armada yang ditentukan. Untuk informasi selengkapnya, lihat [Menjalankan build di atas armada kapasitas cadangan](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

`buildspec-override: "<boolean>"`
+ Contoh: `buildspec-override: "true"`
+ Mengizinkan build menjalankan perintah buildspec di`INSTALL`,`PRE_BUILD`, dan `POST_BUILD` fase jika disetel ke. `true`

# Hitung gambar yang didukung dengan runner Buildkite yang CodeBuild di-host
<a name="buildkite-runner-update-yaml.images"></a>

Pada label yang Anda konfigurasikan[Pelari Buildkite yang dikelola sendiri di AWS CodeBuild](buildkite-runner.md), Anda dapat mengganti pengaturan lingkungan Amazon EC2 dengan menggunakan nilai di tiga kolom pertama. CodeBuild menyediakan gambar komputasi Amazon EC2 berikut. Untuk informasi lebih lanjut tentang 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/buildkite-runner-update-yaml.images.html)

Selain itu, Anda dapat mengganti pengaturan lingkungan Lambda Anda dengan menggunakan nilai berikut. Untuk informasi selengkapnya tentang komputasi CodeBuild Lambda, lihat. [Jalankan build pada komputasi AWS Lambda](lambda.md) CodeBuild mendukung gambar komputasi Lambda berikut:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/buildkite-runner-update-yaml.images.html)

Lihat informasi yang lebih lengkap di [Bangun mode dan tipe komputasi lingkungan](build-env-ref-compute-types.md) dan [Gambar Docker disediakan oleh CodeBuild](build-env-ref-available.md).