

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

# Memecahkan masalah webhook
<a name="action-runner-troubleshoot-webhook"></a>

**Masalah: ** Webhook yang Anda atur tidak [Tutorial: Mengkonfigurasi pelari CodeBuild-hosted GitHub Actions](action-runner.md) berfungsi atau pekerjaan alur kerja Anda bertahan. GitHub

**Kemungkinan penyebab: **
+ A ** cara pekerjaan ** alur kerja webhook Anda mungkin gagal memicu build. Tinjau ** log ** Respon untuk melihat respons atau pesan kesalahan.
+ Pekerjaan Anda ditugaskan ke agen pelari yang salah karena konfigurasi labelnya. Masalah ini dapat terjadi ketika salah satu pekerjaan Anda dalam satu alur kerja yang dijalankan memiliki label yang lebih sedikit daripada pekerjaan lain. Misalnya, jika Anda memiliki dua pekerjaan dengan label berikut dalam alur kerja yang sama, jalankan:
  + **Pekerjaan 1**: `codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`
  + **Pekerjaan 2**:`codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`, `instance-size:medium`

  Saat merutekan pekerjaan Ac GitHub tions yang di-host sendiri, GitHub akan merutekan pekerjaan ke pelari mana pun dengan semua label pekerjaan yang ditentukan. Perilaku ini berarti bahwa ** Pekerjaan 1 ** dapat diambil oleh pelari yang dibuat untuk ** Pekerjaan 1 ** atau ** Pekerjaan 2**, tetapi ** Pekerjaan 2 hanya ** dapat diambil oleh pelari yang dibuat untuk ** Pekerjaan 2 ** karena memiliki label tambahan. Jika ** Job 1 ** diambil oleh pelari yang dibuat untuk ** Job 2**, maka ** Job 2 ** akan macet karena ** pelari ** Job 1 tidak memiliki `instance-size:medium` label.

**Solusi yang disarankan: **

Saat membuat beberapa pekerjaan dalam alur kerja yang sama, gunakan jumlah penggantian label yang sama untuk setiap pekerjaan atau tetapkan label khusus untuk setiap pekerjaan, seperti `job1` atau`job2`.

Menetapkan setiap pekerjaan label khusus uniknya sendiri adalah opsi yang paling dapat diandalkan. Ini memastikan bahwa tidak ada set label pekerjaan yang merupakan bagian dari pekerjaan lain. Ketika setiap pekerjaan membawa label yang tidak dimiliki pekerjaan lain, GitHub cocokkan setiap pekerjaan hanya dengan pelari yang dibuat untuknya, terlepas dari berapa banyak penggantian lain yang digunakan setiap pekerjaan. Dalam alur kerja berikut, setiap pekerjaan memiliki label unik (`job1`dan`job2`). Meskipun ** Job 2 ** memiliki penggantian tambahan`instance-size:medium`, ** Pekerjaan 1 tidak ** dapat lagi dicocokkan dengan runner yang dibuat untuk ** Job 2**, jadi tidak ada pekerjaan yang macet:

```
name: Hello World
on: [push]
jobs:
  job1:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      - job1
    steps:
      - run: echo "Hello from Job 1!"
  job2:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      - instance-size:medium
      - job2
    steps:
      - run: echo "Hello from Job 2!"
```

Jika kesalahan berlanjut, gunakan petunjuk berikut untuk men-debug masalah.

1. Buka GitHub konsol di `https://github.com/{{user-name}}/{{repository-name}}/settings/hooks` untuk melihat pengaturan webhook repositori Anda. Pada halaman ini, Anda akan melihat webhook yang dibuat untuk repositori Anda.

1. Pilih ** Edit ** dan konfirmasikan bahwa webhook diaktifkan untuk mengirimkan ** acara pekerjaan ** alur kerja.  
![Acara pekerjaan alur kerja diaktifkan di webhook Anda.](https://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-actions-workflow-jobs.png)

1.  Arahkan ke ** ** tab Pengiriman Terbaru, temukan `workflow_job.queued` acara yang sesuai, dan perluas acara. 

1.  Tinjau ** bidang ** label di ** Payload ** dan pastikan itu seperti yang diharapkan. 

1.  Terakhir, tinj ** au ** tab Respon, karena ini berisi respons atau pesan kesalahan yang dikembalikan dari CodeBuild.   
![Tanggapan atau pesan kesalahan dikembalikan dari CodeBuild.](https://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-actions-workflow-jobs-response.png)

1.  Atau, Anda dapat men-debug kegagalan webhook menggunakan API GitHub. Anda dapat melihat pengiriman terbaru untuk webhook menggunakan [ Daftar pengiriman untuk repositori webhook API: ](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#list-deliveries-for-a-repository-webhook) 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/{{owner}}/{{repo}}/hooks/{{hook-id}}/deliveries
   ```

    Setelah menemukan pengiriman webhook yang ingin Anda debug dan mencatat ID pengiriman, Anda dapat menggunakan API web [ hook ](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#get-a-delivery-for-a-repository-webhook) Dapatkan pengiriman untuk repositori. CodeBuildtanggapan terhadap payload pengiriman webhook dapat ditemukan di bagian: `response` 

   ```
   gh api \
     -H "Accept: application/vnd.github+json" \
     -H "X-GitHub-Api-Version: 2022-11-28" \
     /repos/{{owner}}/{{repo}}/hooks/{{hook-id}}/deliveries/{{delivery-id}}
   ```

**Masalah: T ** ind GitHub akan Anda dengan [ aturan perlindungan ](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments) penerapan diaktifkan memicu build CodeBuild di dalam sebelum penerapan disetujui.

**Kemungkinan penyebab ** CodeBuild : mengambil penerapan dan lingkungan yang terkait dengan pekerjaan GitHub Tindakan jika ada untuk memverifikasi apakah penerapan disetujui. Jika CodeBuild gagal mengambil penerapan atau lingkungan, CodeBuild build mungkin dipicu sebelum waktunya.

**Solusi yang disarankan: ** Pastikan kredenSIAL yang terkait dengan CodeBuild proyek Anda memiliki izin baca untuk penerapan dan tindakan di dalamnya. GitHub