

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.

# Tutorial: Konfiguriere einen CodeBuild-hosted Buildkite Runner
<a name="sample-runner-buildkite"></a>

Dieses Tutorial zeigt dir, wie du deine CodeBuild Projekte für die Ausführung von Buildkite-Jobs konfigurierst. Weitere Informationen zur Verwendung von Buildkite mit finden Sie unter. CodeBuild [Self-managed Buildkite ist angelaufen AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Um dieses Tutorial abzuschließen, müssen Sie zunächst:
+ Haben Sie Zugang zu einer Buildkite-Organisation. Weitere Informationen zur Einrichtung eines Buildkite-Kontos und einer Buildkite-Organisation findest du in diesem [ Tutorial für die ersten Schritte. ](https://buildkite.com/docs/pipelines/getting-started)
+ Erstellen Sie eine Buildkite-Pipeline, einen Cluster und eine Warteschlange, die für die Verwendung selbst gehosteter Runner konfiguriert sind. Weitere Informationen zum Einrichten dieser Ressourcen finden Sie im [ Buildkite Pipeline Setup Tutorial. ](https://buildkite.com/docs/pipelines/create-your-own)  
![Erstellen Sie ein Projekt in Buildkite](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-first.png)

## Schritt 1: Generieren Sie ein Buildkite Agent-Token
<a name="w2aac26c33c12c13b7"></a>

In diesem Schritt generierst du in Buildkite ein Agententoken, das zur Authentifizierung der selbst gehosteten Runner verwendet wird. CodeBuild Weitere Informationen zu dieser Ressource finden Sie unter [ Buildkite Agent Tokens. ](https://buildkite.com/docs/agent/v3/tokens) 

**Um ein Buildkite Agent-Token zu generieren**

1. Wählen Sie in Ihrem Buildkite-Cluster ** Agent Tokens und dann ** New Token aus. ** **

1. Fügen Sie dem Token eine Beschreibung hinzu und klicken Sie auf Token ** erstellen. **

1. Speichern Sie den Agententoken-Wert, da er später bei der CodeBuild Projekteinrichtung verwendet wird.  
![Agenten-Token in Buildkite](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-createtoken.png)

## Schritt 2: Erstellen Sie ein CodeBuild Projekt mit einem Webhook
<a name="sample-runner-buildkite-create-project"></a>

**Um ein CodeBuild Projekt mit einem Webhook zu erstellen**

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 selbst gehostetes 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).
   +  Wählen Sie in der ** Projektkonfiguration ** das ** Runner-Projekt ** aus. In ** Runner**: 
     +  Wählen Sie als ** Runner-Anbieter ** ** Buildkite ** aus.
     + Wählen Sie für ** Buildkite Agent Token ** die Option ** Create a new agent token using the create secret page aus. ** Sie werden aufgefordert, ein neues Secret AWS Secrets Manager mit einem Geheimwert zu erstellen, der dem Buildkite-Agenten-Token entspricht, das Sie oben generiert haben.
     + (Optional) Wenn Sie CodeBuild verwaltete Anmeldeinformationen für Ihren Job verwenden möchten, wählen Sie unter den Optionen für die ** Buildkite-Quellanmeldeinformationen den Quell-Repository-Anbieter Ihres Jobs aus ** und stellen Sie sicher, dass die Anmeldeinformationen für Ihr Konto konfiguriert sind. Stellen Sie außerdem sicher, dass Ihre Buildkite-Pipeline Checkout über HTTPS verwendet. ** **
**Anmerkung**  
Buildkite benötigt Quelldaten innerhalb der Build-Umgebung, um die Quelle für deinen Job abzurufen. Informationen zu [Authentifizieren von Buildkite bei einem privaten Repository](#sample-runner-buildkite-config) den verfügbaren Optionen für Quellanmeldeinformationen finden Sie unter.
   + (Optional) Unter ** Umgebung**: 
     + Wählen Sie ein unterstütztes ** Umgebungs-Image ** und dann ** Compute aus**. 

       Beachten Sie, dass Sie die Option haben, die Image- und Instanzeinstellungen zu überschreiben, indem Sie in Ihren Buildkite YAML-Schritten ein Label verwenden. Weitere Informationen finden Sie unter [Schritt 4: Aktualisieren Sie Ihre Buildkite-Pipeline-Schritte](#sample-runner-buildkite-update-pipeline).
   + (Optional) In Buildspec: ** ** 
     + Ihre Buildspec wird standardmäßig ignoriert, sofern `buildspec-override: "true"` sie nicht als Label hinzugefügt wird. Stattdessen überschreibt es, CodeBuild um Befehle zu verwenden, die den selbst gehosteten Runner einrichten.
**Anmerkung**  
CodeBuild unterstützt keine Buildspec-Dateien für selbst gehostete Buildkite-Runner-Builds. Für Inline-Buildspecs müssen Sie [ git-credentials in Ihrer Buildspec aktivieren, wenn Sie die Anmeldeinformationen ](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper) für verwaltete Quellen konfiguriert haben CodeBuild 

1. Fahren Sie mit den Standardwerten fort und wählen Sie dann Create build project. ** **

1. Speichern Sie die ** Payload-URL ** und die ** ** Secret-Werte aus dem Popup „Webhook ** ** erstellen“. Folgen Sie entweder den Anweisungen im Popup, um einen neuen Buildkite-Organisations-Webhook zu erstellen, oder fahren Sie mit dem nächsten Abschnitt fort.

## Schritt 3: Erstelle einen Webhook in Buildkite CodeBuild
<a name="sample-runner-buildkite-codebuild-webhook"></a>

In diesem Schritt verwenden Sie die ** Payload-URL ** und die ** ** Secret-Werte aus dem Webhook, um einen neuen CodeBuild Webhook in Buildkite zu erstellen. Dieser Webhook wird verwendet, um Builds auszulösen, CodeBuild wenn ein gültiger Buildkite-Job gestartet wird.

**Um einen neuen Webhook in Buildkite zu erstellen**

1. Öffne die Einstellungsseite deiner Buildkite-Organisation. ** **

1. Wähle unter ** Integrationen die Option ** ** Notification Services aus. **

1. Wählen Sie ** neben dem Feld ** Webhook ** die Option ** Hinzufügen aus. Verwenden Sie auf der ** Seite „Webhook-Benachrichtigung ** hinzufügen“ die folgende Konfiguration:

   1. Fügen Sie unter ** Webhook-URL ** den gespeicherten ** Payload-URL-Wert hinzu. **

   1. Vergewissern Sie ** sich, dass unter ** Token die Option Token ** senden als ausgewählt X-Buildkite-Token ** ist. Fügen Sie Ihren ** geheimen ** Webhook-Wert zum ** Feld ** Token hinzu.

   1. Vergewissern Sie sich, dass das Token ** senden als ausgewählt X-Buildkite-Token ** ist. Fügen Sie Ihren ** geheimen ** Webhook-Wert zum ** Feld ** Token hinzu.

   1. Wählen Sie unter ** Ereignisse ** das `job.scheduled` Webhook-Ereignis aus.

   1. (Optional) Unter ** Pipelines können Sie optional festlegen**, dass nur Builds für eine bestimmte Pipeline ausgelöst werden.

1. Wählen Sie „Webhook-Benachrichtigung ** hinzufügen“. **

## Schritt 4: Aktualisieren Sie Ihre Buildkite-Pipeline-Schritte
<a name="sample-runner-buildkite-update-pipeline"></a>

Aktualisieren Sie in diesem Schritt die Schritte Ihrer Buildkite-Pipeline, um die erforderlichen Labels und optionale Überschreibungen hinzuzufügen. Die vollständige Liste der unterstützten Label-Overrides finden Sie unter. [Label-Overrides werden vom Buildkite-Runner unterstützt CodeBuild-hosted](buildkite-runner-update-labels.md)

**Aktualisieren Sie Ihre Pipeline-Schritte**

1. Öffnen Sie die Seite mit den Buildkite-Pipeline-Schritten, indem Sie Ihre Buildkite-Pipeline auswählen**, ** Einstellungen und dann Schritte auswählen. ** **

   Falls Sie es noch nicht getan haben, wählen Sie In YAML-Schritte ** konvertieren. **  
![Schritte zum Aktualisieren von YAML.](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-steps.png)

1. Sie müssen mindestens ein [ Buildkite-Agent-Tag angeben, das auf den Namen ](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) Ihrer Pipeline verweist. CodeBuild Der Projektname wird benötigt, um die zugehörigen Einstellungen Ihres Buildkite-Jobs AWS mit einem bestimmten Projekt zu verknüpfen. CodeBuild Durch die Aufnahme des Projektnamens in die YAML CodeBuild ist es möglich, Jobs mit den richtigen Projekteinstellungen aufzurufen.

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

   Das Folgende ist ein Beispiel für Buildkite-Pipeline-Schritte, bei denen nur das Projekt-Label-Tag verwendet wird:

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

   Du kannst auch dein Bild und deinen Berechnungstyp im Label überschreiben. Eine Liste der verfügbaren Bilder finden Sie unter. [Berechnet Bilder, die vom Buildkite-Runner unterstützt werden CodeBuild-hosted](buildkite-runner-update-yaml.images.md) Der Berechnungstyp und das Bild im Etikett überschreiben die Umgebungseinstellungen in Ihrem Projekt. Verwenden Sie die folgende Syntax, um Ihre Umgebungseinstellungen für einen CodeBuild EC2- oder Lambda-Compute-Build zu überschreiben:

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

   Im Folgenden finden Sie ein Beispiel für Buildkite-Pipeline-Schritte mit Überschreibungen für Image- und Instance-Größe:

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

   Du kannst die für deinen 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 Builds auf Flotten [ mit reservierter Kapazität ](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html) ausführen.

   Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für einen Amazon EC2-Rechenbuild zu überschreiben:

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

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

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

   Im Folgenden finden Sie ein Beispiel für Buildkite-Pipeline-Schritte mit Flotten- und Image-Overrides:

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

1. Sie können wählen, ob Sie während des selbst gehosteten Buildkite-Runner-Builds Inline-Buildspec-Befehle ausführen möchten (weitere Informationen finden Sie unter). [Führen Sie Buildspec-Befehle für die Phasen INSTALL, PRE\_BUILD und POST\_BUILD aus](sample-runner-buildkite-buildspec.md) Verwenden Sie die folgende Syntax, um anzugeben, dass der CodeBuild Build während Ihres selbst gehosteten Buildkite-Runner-Builds Buildspec-Befehle ausführen soll:

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

   Das Folgende ist ein Beispiel für eine Buildkite-Pipeline mit einer Buildspec-Override:

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

1. Optional können Sie auch Bezeichnungen angeben, die nicht unterstützt werden. CodeBuild Diese Labels werden ignoriert, um die Attribute des Builds zu überschreiben, aber die Webhook-Anforderung schlägt nicht fehl. Das Hinzufügen `myLabel: "testLabel"` als Label verhindert beispielsweise nicht, dass der Build ausgeführt wird.

## Schritt 5: Überprüfen Sie Ihre Ergebnisse
<a name="sample-runner-buildkite-verify"></a>

Immer wenn ein Buildkite-Job in Ihrer Pipeline gestartet CodeBuild wird, erhalten Sie über den `job.scheduled` Buildkite-Webhook ein Webhook-Event. Startet für jeden Job in deinem Buildkite-Build einen Build, um einen kurzlebigen CodeBuild Buildkite-Runner auszuführen. Der Runner ist für die Ausführung eines einzelnen Buildkite-Jobs verantwortlich. Sobald der Job abgeschlossen ist, werden der Runner und der zugehörige Build-Prozess sofort beendet.

Um Ihre Workflow-Jobprotokolle einzusehen, navigieren Sie zu Ihrer Buildkite-Pipeline und wählen Sie den neuesten Build aus (Sie können einen neuen Build auslösen, indem Sie New Build wählen**). ** Sobald der zugehörige CodeBuild Build für jeden deiner Jobs gestartet und den Job übernommen hat, solltest du die Logs für den Job in der Buildkite-Konsole sehen

![Überprüfen Sie die Ergebnisse.](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-log.png)


## Authentifizieren von Buildkite bei einem privaten Repository
<a name="sample-runner-buildkite-config"></a>

Wenn Sie in Ihrer Buildkite-Pipeline ein privates Repository konfiguriert haben, benötigt Buildkite [ zusätzliche Berechtigungen innerhalb der Build-Umgebung, um das Repository abzurufen, da Buildkite keine ](https://buildkite.com/docs/agent/v3/github-ssh-keys) Anmeldeinformationen an selbst gehostete Runner weitergibt, um sie aus privaten Repositorys abzurufen. Um den selbst gehosteten Buildkite Runner Agent gegenüber deinem externen privaten Quell-Repository zu authentifizieren, kannst du eine der folgenden Optionen verwenden.

**Um sich zu authentifizieren mit CodeBuild**

CodeBuild bietet die Verwaltung verwalteter Anmeldeinformationen für unterstützte Quelltypen. Um die CodeBuild Quell-Anmeldeinformationen zum Abrufen des Quell-Repositorys Ihres Jobs zu verwenden, können Sie die folgenden Schritte ausführen:

1. Navigieren Sie in der CodeBuild Konsole zu Projekt ** bearbeiten ** oder erstellen Sie ein neues CodeBuild Projekt mithilfe der Schritte unter[Schritt 2: Erstellen Sie ein CodeBuild Projekt mit einem Webhook](#sample-runner-buildkite-create-project).

1. Wählen Sie unter den Optionen ** für die ** Buildkite-Quellanmeldeinformationen den Quell-Repository-Anbieter Ihres Jobs aus.

   1. Wenn Sie CodeBuild Anmeldeinformationen auf Kontoebene verwenden möchten, stellen Sie sicher, dass diese korrekt konfiguriert sind. Vergewissern Sie sich außerdem, dass git-credentials aktiviert ist, wenn für Ihr Projekt eine Inline-Buildspec konfiguriert ist. [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Wenn Sie Anmeldeinformationen auf Projektebene verwenden möchten, wählen Sie CodeBuild Override-Anmeldeinformationen nur für dieses Projekt ** verwenden aus ** und richten Sie Anmeldeinformationen für Ihr Projekt ein.

1. Navigiere in deinen Buildkite-Pipeline-Einstellungen zu den ** Repository-Einstellungen. ** Setze die Checkout-Einstellungen deines Quell-Repositorys auf ** Checkout with HTTPS **  
![Überprüfe die Ergebnisse.](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Um sich mit Buildkite Secrets zu authentifizieren**

Buildkite unterhält ein [ SSH-Checkout-Plugin, das verwendet werden kann](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin), um den selbst gehosteten Runner mithilfe eines SSH-Schlüssels gegenüber einem externen Quell-Repository zu authentifizieren. Der Schlüsselwert wird als [ Buildkite-Geheimnis gespeichert ](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) und automatisch vom selbst gehosteten Buildkite-Runner-Agenten abgerufen, wenn versucht wird, ein privates Repository abzurufen. Um das Ssh-Checkout-Plugin für deine Buildkite-Pipeline zu konfigurieren, kannst du die folgenden Schritte ausführen:

1. Generieren Sie einen privaten und öffentlichen SSH-Schlüssel mit Ihrer E-Mail-Adresse, z. `ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"`

1. Fügen Sie den öffentlichen Schlüssel zu Ihrem privaten Quell-Repository hinzu. Du kannst zum Beispiel [ dieser Anleitung folgen](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account), um einem GitHub Konto einen Schlüssel hinzuzufügen.

1. Fügen Sie Ihrem Buildkite-Cluster einen [ neuen geheimen ](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) SSH-Schlüssel hinzu. Wählen Sie in Ihrem Buildkite-Cluster ** Secrets ** → New Secret aus. ** ** Fügen Sie im ** Feld ** Schlüssel einen Namen für Ihr Geheimnis hinzu und fügen Sie Ihren privaten SSH-Schlüssel in das Feld ** Wert ** ein:  
![Überprüfen Sie die Ergebnisse.](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-secret.png)

1. Navigiere in deiner Buildkite-Pipeline zu deinen Repository-Einstellungen und richte Checkout so ein, dass SSH verwendet ** wird. **  
![Überprüfe die Ergebnisse.](https://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-repo.png)

1. Aktualisieren Sie Ihre Pipeline-YAML-Schritte, um das `git-ssh-checkout` Plugin zu verwenden. Die folgende Pipeline-YAML-Datei verwendet beispielsweise die Checkout-Aktion mit dem obigen geheimen Buildkite-Schlüssel:

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

1. Wenn Sie darin einen selbst gehosteten Buildkite-Runner-Job ausführen CodeBuild, verwendet Buildkite jetzt automatisch Ihren konfigurierten geheimen Wert, wenn Sie Ihr privates Repository abrufen

## Optionen zur Konfiguration des Runners
<a name="sample-buildkite-runner-auth"></a>

Sie können die folgenden Umgebungsvariablen in Ihrer Projektkonfiguration angeben, um die Setup-Konfiguration Ihrer selbst gehosteten Runner zu ändern:
+ `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`: CodeBuild ruft den geheimen Wert ab AWS Secrets Manager , der als Wert dieser Umgebungsvariablen konfiguriert ist, um den selbst gehosteten Buildkite-Runner-Agenten zu registrieren. Diese Umgebungsvariable muss vom Typ sein`SECRETS_MANAGER`, und der Wert sollte der Name Ihres Geheimnisses in Secrets Manager sein. Eine Buildkite-Agent-Token-Umgebungsvariable ist für alle Buildkite-Runner-Projekte erforderlich.
+ `CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE`: Lädt standardmäßig Quellzugangsdaten auf Konto- oder Projektebene in die Build-Umgebung, da diese Anmeldeinformationen vom Buildkite-Agenten verwendet werden, um das Quell-Repository des Jobs abzurufen. CodeBuild Um dieses Verhalten zu deaktivieren, können Sie Ihrem Projekt diese Umgebungsvariable mit dem Wert auf hinzufügen. Dadurch wird verhindert`true`, dass Quell-Anmeldeinformationen in die Build-Umgebung geladen werden.