

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Selbst gehostete Aktionen GitHub werden ausgeführt in AWS CodeBuild
<a name="action-runner-overview"></a>

Sie können Ihr Projekt so konfigurieren, dass selbst gehostete GitHub Actions-Runner in CodeBuild Containern eingerichtet werden, um Ihre GitHub Actions-Workflow-Jobs zu verarbeiten. Dies kann erreicht werden, indem Sie mithilfe Ihres CodeBuild Projekts einen Webhook einrichten und Ihre GitHub Aktions-Workflow-YAML so aktualisieren, dass selbst gehostete Runner verwendet werden, die auf Maschinen gehostet werden. CodeBuild 

Die allgemeinen Schritte zur Konfiguration eines CodeBuild Projekts für die Ausführung von Actions-Jobs GitHub lauten wie folgt:

1. Falls Sie dies noch nicht getan haben, erstellen Sie ein persönliches Zugriffstoken oder stellen Sie eine Verbindung mit einer OAuth App her, mit der Sie Ihr Projekt verbinden möchten GitHub.

1. Navigieren Sie zur CodeBuild Konsole, erstellen Sie ein CodeBuild Projekt mit einem Webhook und richten Sie Ihre Webhook-Filter ein.

1. Aktualisieren Sie Ihren GitHub Aktions-Workflow YAML, um Ihre GitHub Build-Umgebung zu konfigurieren.

Ein detaillierteres Verfahren finden Sie unter[Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren](action-runner.md).

Mit dieser Funktion können Ihre GitHub Actions-Workflow-Jobs nativ integriert werden AWS, was durch Funktionen wie IAM AWS CloudTrail, AWS Secrets Manager Integration und Amazon VPC für Sicherheit und Komfort sorgt. Sie können auf die neuesten Instance-Typen zugreifen, einschließlich ARM-basierter Instances.

**Topics**
+ [Über den CodeBuild -hosted Actions Runner GitHub](action-runner-questions.md)
+ [Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren](action-runner.md)
+ [Beheben Sie Probleme mit dem Webhook](action-runner-troubleshoot-webhook.md)
+ [Label-Overrides werden mit dem CodeBuild GitHub -hosted Actions Runner unterstützt](sample-github-action-runners-update-labels.md)
+ [Bilder berechnen, die mit dem Runner CodeBuild -hosted GitHub Actions unterstützt werden](sample-github-action-runners-update-yaml.images.md)

# Über den CodeBuild -hosted Actions Runner GitHub
<a name="action-runner-questions"></a>

Im Folgenden finden Sie einige häufig gestellte Fragen zum Runner „ CodeBuild-hosted GitHub Actions“.

## Wann sollte ich die Bild- und Instanzüberschreibungen in das Label aufnehmen?
<a name="action-runner-image-label"></a>

Sie können die Image- und Instanzüberschreibungen in das Label aufnehmen, um für jeden Ihrer GitHub Actions-Workflow-Jobs eine andere Build-Umgebung anzugeben. Dies ist möglich, ohne dass mehrere CodeBuild Projekte oder Webhooks erstellt werden müssen. Dies ist beispielsweise nützlich, wenn Sie eine [Matrix für Ihre Workflow-Jobs](https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs) verwenden müssen.

```
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!"
```

**Anmerkung**  
Anführungszeichen können erforderlich sein, wenn `runs-on` mehrere Beschriftungen den GitHub Aktionskontext enthalten.

## Kann ich diese Funktion verwenden CloudFormation ?
<a name="action-runner-cfn"></a>

Ja, Sie können eine Filtergruppe in Ihre CloudFormation Vorlage aufnehmen, die in Ihrem Projekt-Webhook einen Jobereignisfilter für den GitHub Aktionsworkflow festlegt.

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

Weitere Informationen finden Sie unter [GitHub Webhook-Ereignisse filtern ()CloudFormation](github-webhook-events-cfn.md).

Wenn Sie Hilfe beim Einrichten von Projektanmeldedaten in Ihrer CloudFormation Vorlage benötigen, finden Sie weitere Informationen [AWS::CodeBuild::SourceCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html)im *AWS CloudFormation Benutzerhandbuch*.

## Wie kann ich Geheimnisse maskieren, wenn ich diese Funktion verwende?
<a name="action-runner-secrets"></a>

Standardmäßig werden Geheimnisse, die im Protokoll gedruckt werden, nicht maskiert. Wenn Sie Ihre Geheimnisse maskieren möchten, können Sie die folgende Syntax verwenden:`::add-mask::value`. Das Folgende ist ein Beispiel dafür, wie Sie diese Syntax in Ihrer YAML verwenden können:

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

Weitere Informationen finden Sie unter [Maskieren eines Werts bei einer Anmeldung](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-a-log). GitHub

## Kann ich Actions GitHub Webhook-Ereignisse von mehreren Repositorys innerhalb eines einzigen Projekts empfangen?
<a name="action-runner-webhooks"></a>

CodeBuild unterstützt Webhooks auf Organisations- und globaler Ebene, die Ereignisse von einer bestimmten Organisation oder einem bestimmten Unternehmen empfangen. Weitere Informationen finden Sie unter [GitHub globale Webhooks und organisatorische Webhooks](github-global-organization-webhook.md).

## In welchen Regionen wird die Verwendung eines CodeBuild -gehosteten GitHub Actions-Runners unterstützt?
<a name="action-runner-hosted-regions"></a>

CodeBuild-gehostete GitHub Actions-Runner werden in allen CodeBuild Regionen unterstützt. Weitere Informationen darüber, AWS-Regionen wo CodeBuild es verfügbar ist, findest du unter [AWS Dienste nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Welche Plattformen unterstützen die Verwendung eines CodeBuild -gehosteten GitHub Actions-Runners?
<a name="action-runner-platform"></a>

CodeBuild-gehostete GitHub Actions-Runner werden sowohl auf Amazon EC2 als auch auf Compute unterstützt. [AWS Lambda](lambda.md) Sie können die folgenden Plattformen verwenden: Amazon Linux 2, Amazon Linux 2023, Ubuntu und Windows Server Core 2019. Weitere Informationen erhalten Sie unter [EC2: Bilder berechnen](ec2-compute-images.md) und [Lambda-Computing-Bilder](lambda-compute-images.md).

# Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren
<a name="action-runner"></a>

Dieses Tutorial zeigt Ihnen, wie Sie Ihre CodeBuild Projekte für die Ausführung GitHub von Actions-Jobs konfigurieren. Weitere Informationen zur Verwendung von GitHub Actions mit CodeBuild finden Sie unter[Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren](#action-runner).<a name="sample-github-action-runners-prerequisites"></a>

Um dieses Tutorial abzuschließen, müssen Sie zunächst:
+ Stellen Sie eine Connect mit einem persönlichen Zugriffstoken, einem Secrets Manager Manager-Secret, einer OAuth App oder einer GitHub App her. Wenn Sie eine Verbindung mit einer OAuth App herstellen möchten, müssen Sie dazu die CodeBuild Konsole verwenden. Wenn Sie ein persönliches Zugriffstoken erstellen möchten, können Sie entweder die CodeBuild Konsole oder die [ImportSourceCredentials API](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ImportSourceCredentials.html) verwenden. Weitere Anweisungen finden Sie unter [GitHub und GitHub Enterprise Server-Zugriff in CodeBuild](access-tokens-github-overview.md).
+ Connect CodeBuild zu Ihrem GitHub Konto her. Dazu können Sie einen der folgenden Schritte ausführen:
  + Sie können in GitHub der Konsole einen Quellanbieter hinzufügen. Sie können eine Verbindung entweder mit einem persönlichen Zugriffstoken, einem Secrets Manager Manager-Secret, einer OAuth App oder einer GitHub App herstellen. Detaillierte Anweisungen finden Sie unter [GitHub und GitHub Enterprise Server-Zugriff in CodeBuild](access-tokens-github-overview.md).
  + Sie können Ihre GitHub Anmeldeinformationen über die [ImportSourceCredentials API](https://docs.aws.amazon.com/cli/latest/reference/codebuild/import-source-credentials.html) importieren. Dies ist nur mit einem persönlichen Zugriffstoken möglich. Wenn Sie eine Verbindung über eine OAuth App herstellen, müssen Sie die Verbindung stattdessen über die Konsole herstellen. Detaillierte Anweisungen finden Sie unter [Stellen Sie eine Connect GitHub mit einem Zugriffstoken (CLI) her](access-tokens-github.md#access-tokens-github-cli).
**Anmerkung**  
Dies ist nur erforderlich, wenn Sie noch keine Verbindung GitHub zu Ihrem Konto hergestellt haben.

## Schritt 1: Erstellen Sie ein CodeBuild Projekt mit einem Webhook
<a name="sample-github-action-runners-create-project"></a>

In diesem Schritt erstellen Sie ein CodeBuild Projekt mit einem Webhook und überprüfen es in der GitHub Konsole. Sie können GitHub Enterprise auch als Quellanbieter wählen. Weitere Informationen zum Erstellen eines Webhooks in GitHub Enterprise finden Sie unter[GitHub manuelle Webhooks](github-manual-webhook.md).

**So erstellen Sie ein CodeBuild Projekt mit einem Webhook**

1. Öffnen Sie die AWS CodeBuild Konsole unter [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter [Erstellen Sie ein Build-Projekt (Konsole)](create-project.md#create-project-console) und [Ausführen eines Build (Konsole)](run-build-console.md).

1. **Wählen Sie unter **Projekttyp** die Option Runner-Projekt aus.**

   In **Runner**:

   1. Wählen Sie für den **Runner-Anbieter** die Option **GitHub**.

   1. Wählen Sie als **Runner-Standort** die Option **Repository** aus.

   1. Wählen Sie für Repository-URL unter **Repository** die Option **https://github.com/user-name/repository-name** aus.
**Anmerkung**  
Standardmäßig empfängt Ihr Projekt nur `WORKFLOW_JOB_QUEUED` Ereignisse für ein einzelnes Repository. Wenn Sie Ereignisse für alle Repositorys innerhalb einer Organisation oder eines Unternehmens erhalten möchten, finden Sie weitere Informationen unter[GitHub globale Webhooks und organisatorische Webhooks](github-global-organization-webhook.md).

1. 
   +  In **Environment** (Umgebung): 
     + Wählen Sie ein unterstütztes **Umgebungsimage** und **Compute** aus. Beachten Sie, dass Sie die Möglichkeit haben, die Image- und Instanzeinstellungen zu überschreiben, indem Sie ein Label in Ihrem GitHub Aktions-Workflow YAML verwenden. Weitere Informationen finden Sie unter [Schritt 2: Aktualisieren Sie Ihren GitHub Aktions-Workflow YAML](#sample-github-action-runners-update-yaml).
   +  In **Buildspec (Build-Spezifikation)**: 
     + Beachten Sie, dass Ihre Buildspec ignoriert wird, sofern sie nicht als Label hinzugefügt `buildspec-override:true` wird. Stattdessen CodeBuild wird es überschrieben, um Befehle zu verwenden, die den selbst gehosteten Runner einrichten.

1. Fahren Sie mit den Standardwerten fort und wählen Sie dann **Build-Projekt erstellen**.

1. Öffnen Sie die GitHub Konsole unter, `https://github.com/user-name/repository-name/settings/hooks` um zu überprüfen, ob ein Webhook erstellt wurde und für die Übermittlung von **Workflow-Auftragsereignissen** aktiviert ist.

## Schritt 2: Aktualisieren Sie Ihren GitHub Aktions-Workflow YAML
<a name="sample-github-action-runners-update-yaml"></a>

In diesem Schritt aktualisieren Sie Ihre GitHub Aktions-Workflow-YAML-Datei, um Ihre Build-Umgebung [https://github.com/](https://github.com/)zu konfigurieren und selbst gehostete GitHub Actions-Runner zu verwenden. CodeBuild Weitere Informationen finden Sie unter [Verwenden von Labels mit selbst gehosteten](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners) Runnern und. [Label-Overrides werden mit dem CodeBuild GitHub -hosted Actions Runner unterstützt](sample-github-action-runners-update-labels.md)

### Aktualisieren Sie Ihren GitHub Aktionen-Workflow (YAML).
<a name="sample-github-action-runners-update-yaml.setup"></a>

Navigieren Sie zu Ihrem GitHub Aktions-Workflow-YAML [https://github.com/](https://github.com/)und aktualisieren Sie die [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)Einstellung, um Ihre Build-Umgebung zu konfigurieren. Dazu können Sie einen der folgenden Schritte ausführen:
+ Sie können den Projektnamen und die Run-ID angeben. In diesem Fall verwendet der Build Ihre bestehende Projektkonfiguration für die Berechnung, das Image, die Image-Version und die Instanzgröße. Der Projektname wird benötigt, um die zugehörigen AWS Einstellungen Ihres GitHub Actions-Jobs mit einem bestimmten CodeBuild Projekt zu verknüpfen. Durch die Aufnahme des Projektnamens in die YAML können Jobs mit den richtigen Projekteinstellungen aufgerufen werden. CodeBuild Durch Angabe der Run-ID CodeBuild wird Ihr Build bestimmten Workflow-Ausführungen zugeordnet und der Build gestoppt, wenn der Workflow-Lauf abgebrochen wird. Weitere Informationen finden Sie unter [`github`Kontext](https://docs.github.com/en/actions/learn-github-actions/contexts#github-context).

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
  ```
**Anmerkung**  
Stellen Sie sicher, dass Ihr Name *<project-name>* mit dem Namen des Projekts übereinstimmt, das Sie im vorherigen Schritt erstellt haben. Wenn es nicht übereinstimmt, CodeBuild wird der Webhook nicht verarbeitet und der GitHub Aktionsworkflow kann hängen bleiben.

  Im Folgenden finden Sie ein Beispiel für einen GitHub Aktions-Workflow-YAML:

  ```
  name: Hello World
  on: [push]
  jobs:
    Hello-World-Job:
      runs-on:
        - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}
      steps:
        - run: echo "Hello World!"
  ```
+ Sie können auch Ihr Bild und Ihren Berechnungstyp im Label überschreiben. Eine Liste der kuratierten Bilder finden Sie unter[Bilder berechnen, die mit dem Runner CodeBuild -hosted GitHub Actions unterstützt werden](sample-github-action-runners-update-yaml.images.md). Informationen zur Verwendung von benutzerdefinierten Bildern finden Sie unter[Label-Overrides werden mit dem CodeBuild GitHub -hosted Actions Runner unterstützt](sample-github-action-runners-update-labels.md). Der Berechnungstyp und das Bild in der Bezeichnung setzen die Umgebungseinstellungen Ihres Projekts außer Kraft. Verwenden Sie die folgende Syntax, um Ihre Umgebungseinstellungen für einen CodeBuild EC2- oder Lambda-Compute-Build zu überschreiben:

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

  Im Folgenden finden Sie ein Beispiel für einen GitHub Aktions-Workflow-YAML:

  ```
  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!"
  ```
+ Sie können die für Ihren Build verwendete Flotte im Label überschreiben. Dadurch werden die in Ihrem Projekt konfigurierten Flotteneinstellungen überschrieben, sodass die angegebene Flotte verwendet wird. Weitere Informationen finden Sie unter [Führen Sie Builds auf Flotten mit reservierter Kapazität aus](fleets.md). Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für einen Amazon EC2 EC2-Compute-Build zu überschreiben:

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

  Verwenden Sie die folgende Syntax, um sowohl die Flotte als auch das für den Build verwendete Image zu überschreiben:

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

  Im Folgenden finden Sie ein Beispiel für einen GitHub Aktions-Workflow-YAML:

  ```
  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!"
  ```
+ Um Ihre GitHub Actions-Jobs auf einem benutzerdefinierten Image auszuführen, können Sie in Ihrem CodeBuild Projekt ein benutzerdefiniertes Image konfigurieren und vermeiden, dass ein Image-Override-Label angegeben wird. CodeBuild verwendet das im Projekt konfigurierte Image, wenn kein Image Override-Label angegeben ist.
+ Optional können Sie Labels angeben, die nicht von den CodeBuild unterstützten Bezeichnungen abweichen. Diese Labels werden ignoriert, um die Attribute des Builds zu überschreiben, aber die Webhook-Anfrage schlägt nicht fehl. Das Hinzufügen `testLabel` als Label verhindert beispielsweise nicht, dass der Build ausgeführt wird.

**Anmerkung**  
Wenn eine von GitHub -hosted runners bereitgestellte Abhängigkeit in der CodeBuild Umgebung nicht verfügbar ist, können Sie die Abhängigkeit mithilfe von GitHub Aktionen in Ihrer Workflow-Ausführung installieren. Sie können die [https://github.com/actions/setup-python](https://github.com/actions/setup-python)Aktion beispielsweise verwenden, um Python für Ihre Build-Umgebung zu installieren.

### Führen Sie die Buildspec-Befehle in den Phasen INSTALL, PRE\$1BUILD und POST\$1BUILD aus
<a name="sample-github-action-runners-update-yaml.buildspec"></a>

 CodeBuild Ignoriert standardmäßig alle Buildspec-Befehle, wenn ein selbst gehosteter Actions-Build ausgeführt wird. GitHub Um Buildspec-Befehle während des Builds auszuführen, `buildspec-override:true` kann dem Label Folgendes als Suffix hinzugefügt werden:

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

Mit diesem Befehl CodeBuild wird ein Ordner mit dem Namen `actions-runner` im primären Quellordner des Containers erstellt. Wenn der GitHub Actions-Runner während der `BUILD` Phase gestartet wird, wird der Runner im `actions-runner` Verzeichnis ausgeführt.

Bei der Verwendung einer Buildspec-Überschreibung in einem selbst GitHub gehosteten Actions-Build gibt es mehrere Einschränkungen:
+ CodeBuild führt während der Phase keine Buildspec-Befehle aus, da der selbst gehostete Runner in der `BUILD` Phase ausgeführt wird. `BUILD`
+ CodeBuild lädt während der Phase keine Primär- oder Sekundärquellen herunter. `DOWNLOAD_SOURCE` Wenn Sie eine Buildspec-Datei konfiguriert haben, wird nur diese Datei von der Primärquelle des Projekts heruntergeladen.
+ Wenn ein Build-Befehl in der `PRE_BUILD` `INSTALL` Oder-Phase fehlschlägt, CodeBuild wird der selbst gehostete Runner nicht gestartet und der Workflow-Job „ GitHub Aktionen“ muss manuell abgebrochen werden.
+ CodeBuild ruft das Runner-Token während der `DOWNLOAD_SOURCE` Phase ab, die eine Ablaufzeit von einer Stunde hat. Wenn Ihre `PRE_BUILD` `INSTALL` Phasen eine Stunde überschreiten, läuft das Runner-Token möglicherweise ab, bevor der GitHub selbst gehostete Runner startet.

## Schritt 3: Überprüfe deine Ergebnisse
<a name="sample-github-action-runners-verify"></a>

Immer wenn ein GitHub Aktionsworkflow ausgeführt wird, CodeBuild werden die Workflow-Auftragsereignisse über den Webhook empfangen. CodeBuild Startet für jeden Job im Workflow einen Build, um einen kurzlebigen GitHub Actions-Runner auszuführen. Der Runner ist für die Ausführung eines einzelnen Workflow-Jobs verantwortlich. Sobald der Job abgeschlossen ist, werden der Runner und der zugehörige Build-Prozess sofort beendet.

Um Ihre Workflow-Job-Logs einzusehen, navigieren Sie zu Ihrem Repository in GitHub, wählen Sie **Aktionen**, wählen Sie den gewünschten Workflow aus und wählen Sie dann den spezifischen **Job** aus, für den Sie die Logs überprüfen möchten.

Sie können die angeforderten Labels im Protokoll überprüfen, während der Job darauf wartet, von einem selbst gehosteten Runner übernommen zu werden. CodeBuild

![\[Das Protokoll des Jobs wird geladen.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/hello-world-loading.png)


Sobald der Job abgeschlossen ist, können Sie das Protokoll des Jobs einsehen.

![\[Das Protokoll des Jobs.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/hello-world-log.png)


## GitHub Konfigurationsoptionen für Actions Runner
<a name="sample-github-action-runners-config"></a>

Sie können die folgenden Umgebungsvariablen in Ihrer Projektkonfiguration angeben, um die Setup-Konfiguration Ihrer selbst gehosteten Runner zu ändern.

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
CodeBuild registriert selbst gehostete Runner unter dem Organisationsnamen, der als Wert dieser Umgebungsvariablen angegeben ist. Weitere Informationen zur Registrierung von Runnern auf Organisationsebene und zu den erforderlichen Berechtigungen finden Sie unter [Konfiguration für einen just-in-time Runner für eine Organisation erstellen](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).

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ENTERPRISE_REGISTRATION_NAME`  
CodeBuild registriert selbst gehostete Runner unter dem Unternehmensnamen, der als Wert dieser Umgebungsvariablen angegeben ist. Weitere Informationen zur Registrierung von Runnern auf Unternehmensebene und zu den erforderlichen Berechtigungen finden Sie unter [Konfiguration für einen just-in-time Runner für ein Unternehmen erstellen](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).  
Enterprise Runner sind standardmäßig nicht für Organisations-Repositorys verfügbar. Damit selbst gehostete Runner Workflow-Jobs annehmen können, müssen Sie möglicherweise Ihre Einstellungen für den Zugriff auf Runner-Gruppen konfigurieren. Weitere Informationen finden Sie unter [Enterprise Runners für Repositorys verfügbar machen](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 registriert selbst gehostete Runner mit der ganzzahligen Runner-Gruppen-ID, die als Wert dieser Umgebungsvariablen gespeichert ist. Standardmäßig ist dieser Wert 1. Weitere Informationen zu selbst gehosteten Runner-Gruppen finden Sie unter [Zugriff auf selbst gehostete Runner mithilfe von Gruppen verwalten](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).

`CODEBUILD_CONFIG_GITHUB_ACTIONS_ORG_REGISTRATION_NAME`  
Um die Runner-Registrierung auf Organisationsebene mithilfe Ihrer Workflow-YAML-Datei für GitHub Aktionen zu konfigurieren, können Sie die folgende Syntax verwenden:  

```
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`  
Um die Runner-Registrierung auf Unternehmensebene mithilfe Ihrer GitHub Actions-Workflow-YAML-Datei zu konfigurieren, können Sie die folgende Syntax verwenden:  

```
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`  
Um die Registrierung von Runnern für eine bestimmte Runner-Gruppen-ID mithilfe Ihrer GitHub Actions-Workflow-YAML-Datei zu konfigurieren, können Sie die folgende Syntax verwenden:  

```
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!"
```

## Webhook-Ereignisse für GitHub Aktionen filtern ()CloudFormation
<a name="sample-github-action-runners-webhooks-cfn"></a>

Der folgende Teil einer CloudFormation Vorlage im YAML-Format erstellt eine Filtergruppe, die einen Build auslöst, wenn sie als wahr ausgewertet wird. Die folgende Filtergruppe spezifiziert eine Workflow-Auftragsanforderung für GitHub Aktionen mit einem Workflow-Namen, der dem regulären Ausdruck entspricht. `\[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\]
```

## Webhook-Ereignisse für GitHub Aktionen filtern ()AWS CDK
<a name="sample-github-action-runners-webhooks-cdk"></a>

Die folgende AWS CDK Vorlage erstellt eine Filtergruppe, die einen Build auslöst, wenn sie als wahr ausgewertet wird. Die folgende Filtergruppe spezifiziert eine Workflow-Auftragsanforderung für GitHub Aktionen.

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

## Webhook-Ereignisse für GitHub Aktionen filtern (Terraform)
<a name="sample-github-action-runners-webhooks-terraform"></a>

Die folgende Terraform-Vorlage erstellt eine Filtergruppe, die einen Build auslöst, wenn sie als wahr ausgewertet wird. Die folgende Filtergruppe spezifiziert eine GitHub Aktions-Workflow-Jobanfrage.

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

## Webhook-Ereignisse für GitHub Aktionen filtern ()AWS CLI
<a name="sample-github-action-runners-webhooks-cli"></a>

Mit den folgenden AWS CLI Befehlen wird ein selbst gehostetes GitHub Actions-Runner-Projekt mit einer Filtergruppe für GitHub Aktions-Workflow-Jobanfragen erstellt, die einen Build auslöst, wenn die Auswertung „true“ ergibt.

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

# Beheben Sie Probleme mit dem Webhook
<a name="action-runner-troubleshoot-webhook"></a>

**Problem:** Der Webhook, den Sie eingerichtet haben, funktioniert [Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren](action-runner.md) nicht oder Ihr Workflow-Job hängt GitHub.

**Mögliche Ursachen:**
+ Ihr **Webhook-Workflow-Job-Ereignis** kann möglicherweise keinen Build auslösen. Überprüfen Sie die **Antwortprotokolle**, um die Antwort oder Fehlermeldung einzusehen.
+ Ihre Jobs wurden aufgrund ihrer Labelkonfiguration dem falschen Runner-Agent zugewiesen. Dieses Problem kann auftreten, wenn einer Ihrer Jobs innerhalb eines einzelnen Workflow-Laufs weniger Labels hat als ein anderer Job. Wenn Sie beispielsweise zwei Jobs mit den folgenden Labels in derselben Workflow-Ausführung haben:
  + **Job 1**: `codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`
  + **Job 2**:`codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}`, `instance-size:medium`

  Wenn Sie einen selbst gehosteten GitHub Actions-Job weiterleiten, GitHub wird der Job an einen beliebigen Runner mit allen für den Job angegebenen Labels weitergeleitet. Dieses Verhalten bedeutet, dass **Job 1** entweder von dem für **Job 1 oder Job** **2** erstellten Runner übernommen werden kann, **Job 2** jedoch nur von dem für **Job 2** erstellten Runner übernommen werden kann, da er ein zusätzliches Label hat. Wenn **Job 1** von dem Runner übernommen wird, der für **Job 2** erstellt wurde, bleibt **Job 2** hängen, da der **Job 1-Runner** das `instance-size:medium` Label nicht hat.

**Empfohlene Lösungen:**

Wenn Sie mehrere Jobs innerhalb derselben Workflow-Ausführung erstellen, verwenden Sie dieselbe Anzahl von Label-Overrides für jeden Job oder weisen Sie jedem Job ein benutzerdefiniertes Label zu, z. B. `job1` oder`job2`.

Wenn der Fehler weiterhin besteht, verwenden Sie die folgenden Anweisungen, um das Problem zu debuggen.

1. Öffnen Sie die GitHub Konsole unter`https://github.com/user-name/repository-name/settings/hooks`, um die Webhook-Einstellungen Ihres Repositorys einzusehen. Auf dieser Seite siehst du einen Webhook, der für dein Repository erstellt wurde.

1. **Wähle **Bearbeiten** und bestätige, dass der Webhook für die Übermittlung von Workflow-Job-Ereignissen aktiviert ist.**  
![\[Workflow-Job-Ereignisse sind in Ihrem Webhook aktiviert.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/github-actions-workflow-jobs.png)

1.  Navigieren Sie zur Registerkarte **Letzte Lieferungen**, suchen Sie das entsprechende `workflow_job.queued` Ereignis und erweitern Sie das Ereignis. 

1.  Überprüfe das Feld „**Labels**“ in der **Payload** und vergewissere dich, dass es den Erwartungen entspricht. 

1.  Überprüfen Sie abschließend die Registerkarte „**Antwort**“, da sie die Antwort oder Fehlermeldung enthält, von CodeBuild der zurückgegeben wurde.   
![\[Die Antwort oder Fehlermeldung, die von zurückgegeben wurde CodeBuild.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/github-actions-workflow-jobs-response.png)

1.  Alternativ können Sie Webhook-Fehler mithilfe GitHub von s debuggen. APIs Sie können die letzten Lieferungen für einen Webhook mithilfe der Webhook-API „[Lieferungen für ein Repository auflisten](https://docs.github.com/en/rest/repos/webhooks?apiVersion=2022-11-28#list-deliveries-for-a-repository-webhook)“ anzeigen: 

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

    Nachdem Sie die Webhook-Lieferung gefunden haben, die Sie debuggen möchten, und sich die Versand-ID notiert haben, können Sie die Webhook-API [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) verwenden. CodeBuildDie Antwort auf die Liefer-Payload des Webhooks finden Sie im folgenden Abschnitt: `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
   ```

**Problem:** Ihre GitHub Aktionen mit aktivierten [Bereitstellungsschutzregeln](https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-deployments/reviewing-deployments) lösen Builds aus, CodeBuild bevor die Bereitstellung genehmigt wurde.

**Mögliche Ursachen: CodeBuild Ruft** die Bereitstellung und die Umgebung ab, die mit dem GitHub Actions-Job verknüpft sind, sofern vorhanden, um zu überprüfen, ob sie genehmigt wurden. Wenn CodeBuild weder die Bereitstellung noch die Umgebung abgerufen werden können, wird der CodeBuild Build möglicherweise vorzeitig ausgelöst.

**Empfohlene Lösungen:** Stellen Sie sicher, dass die mit Ihren CodeBuild Projekten verknüpften Anmeldeinformationen über Leseberechtigungen für Bereitstellungen und Aktionen verfügen. GitHub

# Label-Overrides werden mit dem CodeBuild GitHub -hosted Actions Runner unterstützt
<a name="sample-github-action-runners-update-labels"></a>

In Ihrem GitHub Aktions-Workflow-YAML können Sie eine Vielzahl von Label-Overrides bereitstellen, die Ihren selbst gehosteten Runner-Build modifizieren. Alle Builds, die von nicht erkannt werden, CodeBuild werden ignoriert, aber Ihre Webhook-Anfrage wird nicht fehlschlagen. Zum Beispiel beinhaltet der folgende Workflow-YAML Überschreibungen für Image, Instance-Größe, Flotte und 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!"
```

**Anmerkung**  
Wenn Ihr Workflow-Job hängengeblieben ist GitHub, finden Sie weitere Informationen unter [Beheben Sie Probleme mit dem Webhook](action-runner-troubleshoot-webhook.md) und [Verwenden von benutzerdefinierten](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) Labels zur Weiterleitung von Aufträgen.

`codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}` (Erforderlich)
+ Beispiel: `codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}`
+ Für alle GitHub Aktions-Workflows erforderlich YAMLs. *<project name>*sollte dem Namen des Projekts entsprechen, für das der selbst gehostete Runner-Webhook konfiguriert ist.

`image:<environment-type>-<image-identifier>`
+ Beispiel: `image:arm-3.0`
+ Überschreibt das Image und den Umgebungstyp, die verwendet werden, wenn der selbst gehostete Runner-Build mit einem kuratierten Image gestartet wird. Weitere Informationen zu unterstützten Werten finden Sie unter. [Bilder berechnen, die mit dem Runner CodeBuild -hosted GitHub Actions unterstützt werden](sample-github-action-runners-update-yaml.images.md)
  + Um das Bild und den Umgebungstyp, die mit einem benutzerdefinierten Image verwendet werden, zu überschreiben, verwenden Sie `image:custom-<environment-type>-<custom-image-identifier>`
  + Beispiel: `image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0`
**Anmerkung**  
Wenn sich das benutzerdefinierte Image in einer privaten Registrierung befindet, finden Sie weitere Informationen unter[Konfigurieren Sie private Registrierungsdaten für selbst gehostete Runner](private-registry-sample-configure-runners.md).

`instance-size:<instance-size>`
+ Beispiel: `instance-size:medium`
+ Überschreibt den Instanztyp, der beim Starten des selbst gehosteten Runner-Builds verwendet wurde. Weitere Informationen zu unterstützten Werten finden Sie unter. [Bilder berechnen, die mit dem Runner CodeBuild -hosted GitHub Actions unterstützt werden](sample-github-action-runners-update-yaml.images.md)

`fleet:<fleet-name>`
+ Beispiel: `fleet:myFleet`
+ Überschreibt die in Ihrem Projekt konfigurierten Flotteneinstellungen, um die angegebene Flotte zu verwenden. Weitere Informationen finden Sie unter [Führen Sie Builds auf Flotten mit reservierter Kapazität aus](fleets.md).

`buildspec-override:<boolean>`
+ Beispiel: `buildspec-override:true`
+ Ermöglicht dem Build die Ausführung von Buildspec-Befehlen in den `POST_BUILD` Phasen, und `INSTALL``PRE_BUILD`, sofern auf gesetzt. `true`

## Außerkraftsetzung einzelner Labels (Legacy)
<a name="sample-github-action-runners-update-single-labels"></a>

CodeBuild ermöglicht es Ihnen, mehrere Überschreibungen in einem einzigen Label bereitzustellen, indem Sie Folgendes verwenden:
+ Verwenden Sie die folgende Syntax, um Ihre Umgebungseinstellungen für einen Amazon EC2/Lambda-Compute-Build zu überschreiben:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  ```
+ Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für Amazon EC2 Compute Build zu überschreiben:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  ```
+ Verwenden Sie die folgende Syntax, um sowohl die Flotte als auch das für den Build verwendete Image zu überschreiben:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  ```
+ Um Buildspec-Befehle während des Builds auszuführen, `-with-buildspec` können dem Label als Suffix hinzugefügt werden:

  ```
  runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  ```
+ Optional können Sie eine Überschreibung der Instanzgröße angeben, ohne das Image zu überschreiben. Für Amazon EC2 EC2-Builds können Sie sowohl den Umgebungstyp als auch die Image-ID ausschließen. Bei Lambda-Builds können Sie die Image-ID ausschließen.

# Bilder berechnen, die mit dem Runner CodeBuild -hosted GitHub Actions unterstützt werden
<a name="sample-github-action-runners-update-yaml.images"></a>

In dem Label[Tutorial: Einen CodeBuild -gehosteten GitHub Actions-Runner konfigurieren](action-runner.md), in dem Sie konfiguriert haben, können Sie Ihre Amazon EC2 EC2-Umgebungseinstellungen überschreiben, indem Sie die Werte in den ersten drei Spalten verwenden. CodeBuild stellt die folgenden Amazon EC2 EC2-Compute-Images bereit. Weitere Informationen zur 

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

Darüber hinaus können Sie Ihre Lambda-Umgebungseinstellungen überschreiben, indem Sie die folgenden Werte verwenden. Weitere Hinweise zu CodeBuild Lambda Compute finden Sie unter[Builds auf dem AWS Lambda Computer ausführen](lambda.md). CodeBuild unterstützt die folgenden Lambda-Compute-Images:

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

Weitere Informationen erhalten Sie unter [Berechnungsmodi und Typen der Build-Umgebung](build-env-ref-compute-types.md) und [Docker-Images bereitgestellt von CodeBuild](build-env-ref-available.md).