

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

# Pelari GitHub Tindakan yang dihosting sendiri di AWS CodeBuild
<a name="action-runner-overview"></a>

Anda dapat mengonfigurasi project untuk menyiapkan runner GitHub Actions yang dihosting sendiri dalam CodeBuild container untuk memproses pekerjaan alur kerja GitHub Actions. Hal ini dapat dilakukan dengan menyiapkan webhook menggunakan CodeBuild project Anda, dan memperbarui alur kerja GitHub Actions YAMG untuk menggunakan runner yang di-host sendiri yang dihosting di mesin. CodeBuild 

Langkah-langkah tingkat tinggi untuk mengonfigurasi CodeBuild proyek untuk menjalankan pekerjaan GitHub Actions adalah sebagai berikut:

1. Jika Anda belum melakukannya, buat token akses pribadi atau sambungkan dengan OAuth aplikasi untuk menghubungkan proyek Anda GitHub.

1. Arahkan ke CodeBuild konsol dan buat CodeBuild proyek dengan webhook dan atur filter webhook Anda.

1. Perbarui alur kerja GitHub Actions YAMM GitHub untuk mengonfigurasi lingkungan build Anda.

Untuk prosedur yang lebih rinci, lihat[Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md).

Fitur ini memungkinkan pekerjaan alur kerja GitHub Actions Anda untuk mendapatkan integrasi asli AWS, yang memberikan keamanan dan kenyamanan melalui fitur seperti IAM, AWS Secrets Manager integrasi AWS CloudTrail, dan Amazon VPC. Anda dapat mengakses jenis instans terbaru, termasuk instance berbasis ARM.

**Topics**
+ [Tentang pelari GitHub Tindakan yang CodeBuild di-host](action-runner-questions.md)
+ [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md)
+ [Memecahkan masalah webhook](action-runner-troubleshoot-webhook.md)
+ [Penggantian label didukung dengan runner Tindakan yang CodeBuild di-host GitHub](sample-github-action-runners-update-labels.md)
+ [Hitung gambar yang didukung dengan runner CodeBuild Actions -hosted GitHub](sample-github-action-runners-update-yaml.images.md)

# Tentang pelari GitHub Tindakan yang CodeBuild di-host
<a name="action-runner-questions"></a>

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

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

Anda dapat menyertakan penggantian gambar dan instance dalam label untuk menentukan lingkungan build yang berbeda untuk setiap pekerjaan alur kerja GitHub Actions Anda. Ini dapat dilakukan tanpa perlu membuat beberapa CodeBuild proyek atau webhook. Misalnya, ini berguna ketika Anda perlu menggunakan [matriks untuk pekerjaan alur kerja Anda](https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs).

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**catatan**  
Tanda kutip mungkin diperlukan jika `runs-on` memiliki beberapa label yang berisi konteks GitHub Tindakan.

## Bisakah saya gunakan CloudFormation untuk fitur ini?
<a name="action-runner-cfn"></a>

Ya, Anda dapat menyertakan grup filter dalam CloudFormation template Anda yang menentukan filter peristiwa pekerjaan alur kerja GitHub Actions di webhook proyek Anda.

```
Triggers:
  Webhook: true
  FilterGroups:
    - - Type: EVENT
        Pattern: WORKFLOW_JOB_QUEUED
```

Untuk informasi selengkapnya, lihat [Filter acara GitHub webhook ()CloudFormation](github-webhook-events-cfn.md).

Jika Anda memerlukan bantuan untuk menyiapkan kredensil proyek di CloudFormation templat Anda, lihat [AWS::CodeBuild::SourceCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)di *Panduan AWS CloudFormation Pengguna* untuk informasi selengkapnya.

## Bagaimana saya bisa menutupi rahasia saat menggunakan fitur ini?
<a name="action-runner-secrets"></a>

Secara default, rahasia yang dicetak di log tidak ditutupi. Jika Anda ingin menutupi rahasia Anda, Anda dapat menggunakan sintaks berikut:`::add-mask::value`. Berikut ini adalah contoh bagaimana Anda dapat menggunakan sintaks ini di YAMAL Anda:

```
name: Secret Job
on: [push]
jobs:
  Secret-Job:
    runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
    env:
      SECRET_NAME: "secret-name"
    steps:
      - run: echo "::add-mask::$SECRET_NAME"
```

Untuk informasi selengkapnya, lihat [Menyembunyikan nilai dalam log](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-a-log) on GitHub.

## Dapatkah saya menerima peristiwa webhook GitHub Actions dari beberapa repositori dalam satu proyek?
<a name="action-runner-webhooks"></a>

CodeBuild mendukung organisasi dan webhook tingkat global, yang menerima acara dari organisasi atau perusahaan tertentu. Untuk informasi selengkapnya, lihat [GitHub webhook global dan organisasi](github-global-organization-webhook.md).

## Wilayah mana yang mendukung penggunaan pelari GitHub Tindakan yang CodeBuild di-host?
<a name="action-runner-hosted-regions"></a>

CodeBuild-Hosted GitHub Actions runner didukung di semua CodeBuild wilayah. 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/).

## Platform mana yang mendukung penggunaan pelari GitHub Tindakan yang CodeBuild di-host?
<a name="action-runner-platform"></a>

CodeBuild-Hosted GitHub Actions runner didukung di Amazon [AWS Lambda](lambda.md)EC2 dan komputasi. Anda dapat menggunakan platform berikut: Amazon Linux 2, Amazon Linux 2023, Ubuntu, dan Windows Server Core 2019. Untuk informasi selengkapnya, lihat [Gambar komputasi EC2](ec2-compute-images.md) dan [Lambda menghitung gambar](lambda-compute-images.md).

# Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host
<a name="action-runner"></a>

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan GitHub Actions. Untuk informasi selengkapnya tentang menggunakan GitHub Tindakan dengan CodeBuild lihat[Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](#action-runner).<a name="sample-github-action-runners-prerequisites"></a>

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
+ Terhubung dengan token akses pribadi, rahasia Secrets Manager, OAuth aplikasi, atau GitHub Aplikasi. Jika Anda ingin terhubung dengan OAuth aplikasi, Anda harus menggunakan CodeBuild konsol untuk melakukannya. Jika Anda ingin membuat token akses pribadi, Anda dapat menggunakan CodeBuild konsol atau menggunakan [ImportSourceCredentials API](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ImportSourceCredentials.html). Untuk instruksi lebih lanjut, lihat[GitHub dan akses Server GitHub Perusahaan di CodeBuild](access-tokens-github-overview.md).
+ Connect CodeBuild ke GitHub akun Anda. Untuk melakukannya, Anda dapat melakukan salah satu dari yang berikut:
  + Anda dapat menambahkan GitHub sebagai penyedia sumber di konsol. Anda dapat terhubung dengan token akses pribadi, rahasia Secrets Manager, OAuth aplikasi, atau GitHub App. Untuk petunjuk, lihat [GitHub dan akses Server GitHub Perusahaan di CodeBuild](access-tokens-github-overview.md).
  + [Anda dapat mengimpor GitHub kredensil Anda melalui API. ImportSourceCredentials ](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html) Ini hanya dapat dilakukan dengan token akses pribadi. Jika Anda terhubung menggunakan OAuth aplikasi, Anda harus terhubung menggunakan konsol sebagai gantinya. Untuk petunjuk, lihat [Connect GitHub dengan token akses (CLI)](access-tokens-github.md#access-tokens-github-cli).
**catatan**  
Ini hanya perlu dilakukan jika Anda belum terhubung ke GitHub akun Anda.

## Langkah 1: Buat CodeBuild proyek dengan webhook
<a name="sample-github-action-runners-create-project"></a>

Pada langkah ini, Anda akan membuat CodeBuild proyek dengan webhook dan meninjaunya di GitHub konsol. Anda juga dapat memilih GitHub Enterprise sebagai penyedia sumber Anda. Untuk mempelajari selengkapnya tentang membuat webhook dalam GitHub Enterprise, lihat[GitHub webhook manual](github-manual-webhook.md).

**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. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).

1. Pada **tipe Project**, pilih **Runner project**.

   Di **Runner**:

   1. Untuk **penyedia Runner**, pilih **GitHub**.

   1. Untuk **lokasi Runner**, pilih **Repository**.

   1. **Untuk URL Repositori di bawah Repositori, pilih **nama repositori**. https://github.com/user-name/**
**catatan**  
Secara default, proyek Anda hanya akan menerima `WORKFLOW_JOB_QUEUED` peristiwa untuk satu repositori. Jika Anda ingin menerima acara untuk semua repositori dalam organisasi atau perusahaan, lihat. [GitHub webhook global dan organisasi](github-global-organization-webhook.md)

1. 
   +  Di **Lingkungan**: 
     + Pilih **gambar Lingkungan** yang didukung dan **Compute**. Perhatikan bahwa Anda memiliki opsi untuk mengganti setelan gambar dan instans dengan menggunakan label di alur kerja GitHub Actions YAMP. Untuk informasi selengkapnya, lihat [Langkah 2: Perbarui alur kerja GitHub Tindakan Anda YAMB](#sample-github-action-runners-update-yaml)
   +  Di **Buildspec**: 
     + Perhatikan bahwa buildspec Anda akan diabaikan kecuali `buildspec-override:true` ditambahkan sebagai label. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dihosting sendiri.

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

1. Buka GitHub konsol di `https://github.com/user-name/repository-name/settings/hooks` untuk memverifikasi bahwa webhook telah dibuat dan diaktifkan untuk mengirimkan peristiwa **pekerjaan Alur Kerja**.

## Langkah 2: Perbarui alur kerja GitHub Tindakan Anda YAMB
<a name="sample-github-action-runners-update-yaml"></a>

Pada langkah ini, Anda akan memperbarui file YAMAL alur kerja GitHub Actions [https://github.com/](https://github.com/)untuk mengonfigurasi lingkungan build dan menggunakan runner yang dihosting sendiri GitHub Actions di. CodeBuild Untuk informasi selengkapnya, lihat [Menggunakan label dengan pelari yang dihosting sendiri](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners) dan. [Penggantian label didukung dengan runner Tindakan yang CodeBuild di-host GitHub](sample-github-action-runners-update-labels.md)

### Memperbarui alur kerja GitHub Tindakan YAMM
<a name="sample-github-action-runners-update-yaml.setup"></a>

Arahkan ke [https://github.com/](https://github.com/)dan perbarui [https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners)setelan di alur kerja GitHub Tindakan YAMM untuk mengonfigurasi lingkungan build Anda. Untuk melakukannya, Anda dapat melakukan salah satu dari yang berikut:
+ Anda dapat menentukan nama proyek dan menjalankan ID, dalam hal ini build akan menggunakan konfigurasi proyek yang ada untuk komputasi, gambar, versi gambar, dan ukuran instance. Nama proyek diperlukan untuk menautkan pengaturan AWS terkait pekerjaan GitHub Tindakan Anda ke CodeBuild proyek tertentu. Dengan memasukkan nama proyek di YAMAL, CodeBuild diizinkan untuk memanggil pekerjaan dengan pengaturan proyek yang benar. Dengan memberikan ID run, CodeBuild akan memetakan build Anda ke alur kerja tertentu yang berjalan dan menghentikan build saat alur kerja dijalankan dibatalkan. Untuk informasi lebih lanjut, lihat [`github`konteks](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context).

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
  ```
**catatan**  
Pastikan bahwa Anda *<project-name>* cocok dengan nama proyek yang Anda buat pada langkah sebelumnya. Jika tidak cocok, tidak CodeBuild akan memproses webhook dan alur kerja GitHub Actions mungkin hang.

  Berikut ini adalah contoh alur kerja GitHub Actions YAMAL:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      steps:
        - run: echo "Hello World!"
  ```
+ Anda juga dapat mengganti gambar dan jenis komputasi di label. Lihat [Hitung gambar yang didukung dengan runner CodeBuild Actions -hosted GitHub](sample-github-action-runners-update-yaml.images.md) untuk daftar gambar yang dikuratori. Untuk menggunakan gambar kustom, lihat[Penggantian label didukung dengan runner Tindakan yang CodeBuild di-host GitHub](sample-github-action-runners-update-labels.md). 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:

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      image:<environment-type>-<image-identifier>
      instance-size:<instance-size>
  ```

  Berikut ini adalah contoh alur kerja GitHub Actions YAMAL:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          image:arm-3.0
          instance-size:small
      steps:
        - run: 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 [Jalankan build di atas armada kapasitas cadangan](fleets.md). Untuk mengganti setelan armada untuk build komputasi Amazon EC2, gunakan sintaks berikut:

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
  ```

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

  ```
  runs-on:
    - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
      fleet:<fleet-name>
      image:<environment-type>-<image-identifier>
  ```

  Berikut ini adalah contoh alur kerja GitHub Actions YAMAL:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
          fleet:myFleet
          image:arm-3.0
      steps:
        - run: echo "Hello World!"
  ```
+ Untuk menjalankan pekerjaan GitHub Actions pada gambar kustom, Anda dapat mengonfigurasi gambar kustom dalam CodeBuild proyek Anda dan menghindari memberikan label penggantian gambar. CodeBuild akan menggunakan gambar yang dikonfigurasi dalam proyek jika tidak ada label penggantian gambar yang disediakan.
+ 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 `testLabel` sebagai label tidak akan mencegah build berjalan.

**catatan**  
Jika dependensi yang disediakan oleh pelari GitHub -host tidak tersedia di CodeBuild lingkungan, Anda dapat menginstal dependensi menggunakan GitHub Tindakan dalam alur kerja Anda. Misalnya, Anda dapat menggunakan [https://github.com/actions/setup-python](https://github.com/actions/setup-python)tindakan untuk menginstal Python untuk lingkungan build Anda.

### Jalankan perintah buildspec fase INSTALL, PRE\$1BUILD, dan POST\$1BUILD
<a name="sample-github-action-runners-update-yaml.buildspec"></a>

Secara default, CodeBuild abaikan perintah buildspec apa pun saat menjalankan build Actions yang dihosting sendiri. GitHub Untuk menjalankan perintah buildspec selama build, `buildspec-override:true` dapat ditambahkan sebagai akhiran label:

```
runs-on:
  - codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    buildspec-override:true
```

Dengan menggunakan perintah ini, CodeBuild akan membuat folder yang disebut `actions-runner` dalam folder sumber utama wadah. Ketika GitHub Actions runner dimulai selama `BUILD` fase, runner akan berjalan di direktori. `actions-runner`

Ada beberapa batasan saat menggunakan penggantian buildspec dalam build Tindakan yang dihosting sendiri: GitHub 
+ CodeBuild tidak akan menjalankan perintah buildspec selama `BUILD` fase, karena pelari yang di-host sendiri berjalan dalam fase tersebut. `BUILD`
+ CodeBuild tidak akan mengunduh sumber primer atau sekunder apa pun selama `DOWNLOAD_SOURCE` fase berlangsung. Jika Anda memiliki file buildspec yang dikonfigurasi, hanya file itu yang akan diunduh dari sumber utama proyek.
+ Jika perintah build gagal di `INSTALL` fase `PRE_BUILD` atau, tidak CodeBuild akan memulai runner yang dihosting sendiri dan pekerjaan alur kerja GitHub Actions harus dibatalkan secara manual.
+ CodeBuild mengambil token runner selama `DOWNLOAD_SOURCE` fase, yang memiliki waktu kedaluwarsa satu jam. Jika `INSTALL` fase `PRE_BUILD` atau fase Anda melebihi satu jam, token runner mungkin kedaluwarsa sebelum runner yang GitHub di-host sendiri dimulai.

## Langkah 3: Tinjau hasil Anda
<a name="sample-github-action-runners-verify"></a>

Setiap kali alur kerja GitHub Tindakan dijalankan, CodeBuild akan menerima peristiwa pekerjaan alur kerja melalui webhook. Untuk setiap pekerjaan dalam alur kerja, CodeBuild mulai build untuk menjalankan runner Actions sesaat. GitHub Pelari bertanggung jawab untuk mengeksekusi satu pekerjaan alur kerja. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.

Untuk melihat log pekerjaan alur kerja, navigasikan ke repositori GitHub, pilih **Tindakan**, pilih alur kerja yang diinginkan, lalu pilih **Job** spesifik yang ingin Anda tinjau log.

Anda dapat meninjau label yang diminta di log saat pekerjaan menunggu untuk diambil oleh pelari yang di-host sendiri. CodeBuild

![\[Memuat log pekerjaan.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/hello-world-loading.png)


Setelah pekerjaan selesai, Anda akan dapat melihat log pekerjaan.

![\[Log pekerjaan.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/hello-world-log.png)


## GitHub Opsi konfigurasi pelari tindakan
<a name="sample-github-action-runners-config"></a>

Anda dapat menentukan variabel lingkungan berikut dalam konfigurasi proyek Anda untuk mengubah konfigurasi penyiapan pelari yang dihosting sendiri.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
CodeBuild akan mendaftarkan pelari yang dihosting sendiri ke nama organisasi yang ditentukan sebagai nilai variabel lingkungan ini. Untuk informasi selengkapnya tentang mendaftarkan pelari di tingkat organisasi dan izin yang diperlukan, lihat [Membuat konfigurasi untuk just-in-time pelari untuk](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization) organisasi.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
CodeBuild akan mendaftarkan pelari yang dihosting sendiri ke nama perusahaan yang ditentukan sebagai nilai variabel lingkungan ini. Untuk informasi selengkapnya tentang mendaftarkan pelari di tingkat perusahaan dan izin yang diperlukan, lihat [Membuat konfigurasi untuk just-in-time pelari untuk](https://docs.github.com/en/enterprise-server/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-enterprise) Perusahaan.  
Pelari perusahaan tidak tersedia untuk repositori organisasi secara default. Agar pelari yang dihosting sendiri dapat mengambil pekerjaan alur kerja, Anda mungkin perlu mengonfigurasi setelan akses grup pelari Anda. Untuk informasi selengkapnya, lihat [Membuat pelari perusahaan tersedia untuk repositori](https://docs.github.com/en/enterprise-server/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners#making-enterprise-runners-available-to-repositories).

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
CodeBuild akan mendaftarkan pelari yang dihosting sendiri ke ID grup pelari integer yang disimpan sebagai nilai variabel lingkungan ini. Secara default, nilai ini adalah 1. Untuk informasi selengkapnya tentang grup pelari yang dihosting sendiri, lihat [Mengelola akses ke pelari yang dihosting sendiri menggunakan](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-configuration-for-a-just-in-time-runner-for-an-organization) grup.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
Untuk mengonfigurasi pendaftaran runner tingkat organisasi menggunakan file GitHub YAMAL alur kerja Actions, Anda dapat menggunakan sintaks berikut:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        organization-registration-name:myOrganization
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
Untuk mengonfigurasi pendaftaran pelari tingkat perusahaan menggunakan file GitHub YAMAL alur kerja Actions, Anda dapat menggunakan sintaks berikut:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        enterprise-registration-name:myEnterprise
    steps:
      - run: echo "Hello World!"
```

`CODEBUILD_CONFIG_GITHUB_ACTIONS_RUNNER_GROUP_ID`  
Untuk mengonfigurasi registrasi runner ke ID grup runner tertentu menggunakan file YAMM alur kerja GitHub Actions, Anda dapat menggunakan sintaks berikut:  

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        registration-group-id:3
    steps:
      - run: echo "Hello World!"
```

## Filter GitHub Tindakan acara webhook ()CloudFormation
<a name="sample-github-action-runners-webhooks-cfn"></a>

Bagian CloudFormation template yang diformat YAML berikut akan membuat grup filter yang memicu build saat dievaluasi ke true. Grup filter berikut menentukan permintaan pekerjaan alur kerja GitHub Tindakan dengan nama alur kerja yang cocok dengan ekspresi reguler. `\[CI-CodeBuild\]`

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      FilterGroups:
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```

## Filter GitHub Tindakan acara webhook ()AWS CDK
<a name="sample-github-action-runners-webhooks-cdk"></a>

 AWS CDK Template berikut membuat grup filter yang memicu build saat dievaluasi ke true. Grup filter berikut menentukan permintaan pekerjaan alur kerja GitHub Tindakan.

```
import { aws_codebuild as codebuild } from 'aws-cdk-lib';
import {EventAction, FilterGroup} from "aws-cdk-lib/aws-codebuild";

const source = codebuild.Source.gitHub({
      owner: 'owner',
      repo: 'repo',
      webhook: true,
      webhookFilters: [FilterGroup.inEventOf(EventAction.WORKFLOW_JOB_QUEUED)],
    })
```

## Filter GitHub Tindakan acara webhook (Terraform)
<a name="sample-github-action-runners-webhooks-terraform"></a>

Template Terraform berikut membuat grup filter yang memicu build saat dievaluasi ke true. Grup filter berikut menentukan permintaan pekerjaan alur kerja GitHub Tindakan.

```
resource "aws_codebuild_webhook" "example" {
  project_name = aws_codebuild_project.example.name
  build_type   = "BUILD"
  filter_group {
    filter {
      type    = "EVENT"
      pattern = "WORKFLOW_JOB_QUEUED"
    }
  }
}
```

## Filter GitHub Tindakan acara webhook ()AWS CLI
<a name="sample-github-action-runners-webhooks-cli"></a>

 AWS CLI Perintah berikut membuat project runner GitHub Actions yang dihosting sendiri dengan grup filter permintaan pekerjaan alur kerja GitHub Actions yang memicu build saat dievaluasi ke true.

```
aws codebuild create-project \
--name <project name> \
--source "{\"type\":\"GITHUB\",\"location\":\"<repository location>\",\"buildspec\":\"\"}" \
--artifacts {"\"type\":\"NO_ARTIFACTS\""} \
--environment "{\"type\": \"LINUX_CONTAINER\",\"image\": \"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"computeType\": \"BUILD_GENERAL1_MEDIUM\"}" \
--service-role "<service role ARN>"
```

```
aws codebuild create-webhook \
--project-name <project name> \
--filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]"
```

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

**Masalah:** Webhook yang Anda atur [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md) tidak berfungsi atau pekerjaan alur kerja Anda terus berlanjut. GitHub

**Kemungkinan penyebabnya:**
+ Acara **lowongan kerja alur kerja** webhook Anda mungkin gagal memicu build. Tinjau log **Respons** 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 memiliki label yang lebih sedikit daripada pekerjaan lain. Misalnya, jika Anda memiliki dua pekerjaan dengan label berikut dalam alur kerja yang sama, jalankan:
  + **Job 1**: `codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`
  + **Job 2**:`codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`, `instance-size:medium`

  Saat merutekan pekerjaan GitHub Tindakan yang dihosting sendiri, GitHub akan merutekan pekerjaan ke pelari mana pun dengan semua label yang ditentukan pekerjaan. Perilaku ini berarti bahwa **Job 1** dapat diambil oleh pelari yang dibuat untuk **Job 1** atau **Job 2**, tetapi **Job 2** hanya dapat diambil oleh pelari yang dibuat untuk **Job 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 label. `instance-size:medium`

**Solusi yang direkomendasikan:**

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

Jika kesalahan berlanjut, gunakan instruksi 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. Di halaman ini, Anda akan melihat webhook yang dibuat untuk repositori Anda.

1. Pilih **Edit** dan konfirmasikan bahwa webhook diaktifkan untuk mengirimkan peristiwa **pekerjaan Workflow**.  
![\[Acara pekerjaan alur kerja diaktifkan di webhook Anda.\]](http://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, tinjau tab **Respons**, karena ini berisi respons atau pesan kesalahan yang dikembalikan CodeBuild.   
![\[Respons atau pesan kesalahan dikembalikan dari CodeBuild.\]](http://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 GitHub's. APIs Anda dapat melihat pengiriman terbaru untuk webhook menggunakan [pengiriman Daftar untuk API webhook repositori](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 [Get a delivery for a repository](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#get-a-delivery-for-a-repository-webhook) webhook API. CodeBuildTanggapan terhadap muatan 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:** GitHub Tindakan Anda dengan aturan [perlindungan penerapan](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments) mengaktifkan pemicu build di dalamnya CodeBuild sebelum penerapan disetujui.

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

**Solusi yang disarankan:** Verifikasi bahwa kredensil yang terkait dengan CodeBuild proyek Anda telah membaca izin untuk penerapan dan tindakan di dalamnya. GitHub

# Penggantian label didukung dengan runner Tindakan yang CodeBuild di-host GitHub
<a name="sample-github-action-runners-update-labels"></a>

Dalam alur kerja GitHub Actions YAMAL, 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:

```
name: Hello World
on: [push]
jobs:
  Hello-World-Job:
    runs-on:
      - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
        image:${{ matrix.os }}
        instance-size:${{ matrix.size }}
        fleet:myFleet
        buildspec-override:true
    strategy:
      matrix:
        include:
          - os: arm-3.0
            size: small
          - os: linux-5.0
            size: large
    steps:
      - run: echo "Hello World!"
```

**catatan**  
Jika pekerjaan alur kerja Anda tergantung GitHub, lihat [Memecahkan masalah webhook](action-runner-troubleshoot-webhook.md) dan [Menggunakan label khusus untuk merutekan pekerjaan](https://docs.github.com/en/enterprise-server@3.12/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow?learn=hosting_your_own_runners&learnProduct=actions#using-custom-labels-to-route-jobs).

`codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}`(diperlukan)
+ Contoh: `codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}`
+ Diperlukan untuk semua alur kerja GitHub YAMLs Tindakan. *<project name>*harus sama dengan nama proyek tempat webhook pelari yang dihosting sendiri dikonfigurasi.

`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 CodeBuild Actions -hosted GitHub](sample-github-action-runners-update-yaml.images.md).
  + Untuk mengganti jenis gambar dan lingkungan yang digunakan dengan gambar kustom, gunakan `image:custom-<environment-type>-<custom-image-identifier>`
  + Contoh: `image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0`
**catatan**  
Jika gambar kustom berada di registri pribadi, lihat[Konfigurasikan kredenal registri pribadi untuk pelari yang dihosting sendiri](private-registry-sample-configure-runners.md).

`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 CodeBuild Actions -hosted GitHub](sample-github-action-runners-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 [Jalankan build di atas armada kapasitas cadangan](fleets.md).

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

## Pengesampingan label tunggal (warisan)
<a name="sample-github-action-runners-update-single-labels"></a>

CodeBuild memungkinkan Anda memberikan beberapa penggantian dalam satu label menggunakan yang berikut:
+ Untuk mengganti setelan lingkungan Anda untuk build komputasi Amazon EC2/Lambda, gunakan sintaks berikut:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  ```
+ Untuk mengganti setelan armada untuk build komputasi Amazon EC2, gunakan sintaks berikut:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  ```
+ Untuk mengganti armada dan gambar yang digunakan untuk build, gunakan sintaks berikut:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  ```
+ Untuk menjalankan perintah buildspec selama build, `-with-buildspec` dapat ditambahkan sebagai akhiran label:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  ```
+ Secara opsional, Anda dapat memberikan penggantian ukuran instance tanpa mengganti gambar. Untuk build Amazon EC2, Anda dapat mengecualikan jenis lingkungan dan pengenal gambar. Untuk build Lambda, Anda dapat mengecualikan pengenal gambar.

# Hitung gambar yang didukung dengan runner CodeBuild Actions -hosted GitHub
<a name="sample-github-action-runners-update-yaml.images"></a>

Pada label yang Anda konfigurasikan[Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-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 

<a name="build-env-ref.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/sample-github-action-runners-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:

<a name="lambda.supported-images"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/sample-github-action-runners-update-yaml.images.html)

Untuk informasi selengkapnya, lihat [Bangun mode dan tipe komputasi lingkungan](build-env-ref-compute-types.md) dan [Gambar Docker disediakan oleh CodeBuild](build-env-ref-available.md).