

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: Einen CodeBuild -gehosteten Buildkite-Runner konfigurieren
<a name="sample-runner-buildkite"></a>

Dieses Tutorial zeigt Ihnen, wie Sie Ihre CodeBuild Projekte für die Ausführung von Buildkite-Jobs konfigurieren. Weitere Informationen zur Verwendung von Buildkite finden Sie unter. CodeBuild [Selbstverwalteter Buildkite-Runner in AWS CodeBuild](buildkite-runner.md)<a name="sample-runner-buildkite-prerequisites"></a>

Um dieses Tutorial abzuschließen, müssen Sie zunächst:
+ Haben Sie Zugriff auf eine Buildkite-Organisation. [Weitere Informationen zur Einrichtung eines Buildkite-Kontos und einer Buildkite-Organisation finden Sie in diesem Tutorial „Erste 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)  
![\[Projekt in Buildkite erstellen\]](http://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 generieren Sie ein Agent-Token in Buildkite, 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 Wert des Agententokens, da er später bei der CodeBuild Projekteinrichtung verwendet wird.  
![\[Agenten-Token in Buildkite\]](http://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** die Option **Runner-Projekt** aus. In **Runner**: 
     +  Wählen Sie für den **Runner-Anbieter** **Buildkite**.
     + Wählen Sie für **Buildkite Agent Token** die Option **Create a new agent token by use the create secret** aus. Sie werden aufgefordert, ein neues Geheimnis AWS Secrets Manager mit einem geheimen Wert zu erstellen, der dem oben generierten Buildkite-Agent-Token entspricht.
     + (Optional) Wenn Sie CodeBuild verwaltete Anmeldeinformationen für Ihren Job verwenden möchten, wählen Sie den Quell-Repository-Anbieter Ihres Jobs unter **Buildkite-Quellanmeldedaten** aus und überprüfen Sie, ob 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 Quellanmeldedaten innerhalb der Build-Umgebung, um die Quelle Ihres Jobs abrufen zu können. Die verfügbaren Optionen [Buildkite in einem privaten Repository authentifizieren](#sample-runner-buildkite-config) für Quellanmeldedaten finden Sie unter.
   + (Optional) In der **Umgebung**: 
     + Wählen Sie ein unterstütztes **Umgebungsimage** und **rechnen Sie**. 

       Beachten Sie, dass Sie die Möglichkeit 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 sie sie, 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 die Option [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)in Ihrer Buildspec aktivieren, wenn Sie verwaltete Quellanmeldedaten konfiguriert haben CodeBuild 

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

1. Speichern Sie die **Payload-URL** und die **geheimen** 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: Erstellen Sie einen Webhook in Buildkite CodeBuild
<a name="sample-runner-buildkite-codebuild-webhook"></a>

In diesem Schritt verwenden Sie die Werte **Payload-URL** und **Secret** 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. **Navigieren Sie zur Einstellungsseite Ihrer Buildkite-Organisation.**

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

1. Wählen Sie neben dem **Webhook-Feld** **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 unter **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>

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

**Aktualisieren Sie Ihre Pipeline-Schritte**

1. **Navigieren Sie zu Ihrer Seite mit den Buildkite-Pipeline-Schritten, indem Sie Ihre Buildkite-Pipeline auswählen, **Einstellungen** und dann Schritte auswählen.**

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

1. Sie müssen mindestens ein [Buildkite-Agent-Tag angeben, das](https://buildkite.com/docs/agent/v3/cli-start#agent-targeting) auf den Namen 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 können Jobs mit den richtigen Projekteinstellungen aufgerufen werden. CodeBuild 

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

   Im Folgenden finden Sie 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\""
   ```

   Sie können auch Ihr Bild und Ihren Berechnungstyp im Label überschreiben. Eine Liste der verfügbaren Bilder finden Sie unter. [Compute Images, die mit dem -gehosteten Buildkite-Runner unterstützt werden CodeBuild](buildkite-runner-update-yaml.images.md) Der Berechnungstyp und das Bild in der Bezeichnung ü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ößen:

   ```
   agents:
     project: "codebuild-myProject"
     image: "arm-3.0"
     instance-size: "small"
   steps:
     - command: "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 [Ausführen von Builds auf Flotten mit reservierter Kapazität](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html).

   Verwenden Sie die folgende Syntax, um Ihre Flotteneinstellungen für einen Amazon EC2 EC2-Compute-Build 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 sich dafür entscheiden, während des selbst gehosteten Buildkite-Runner-Builds Inline-Buildspec-Befehle auszuführen (weitere Informationen finden Sie unter). [Führen Sie die buildspec-Befehle für die Phasen INSTALL, PRE\$1BUILD und POST\$1BUILD aus](sample-runner-buildkite-buildspec.md) Verwenden Sie die folgende Syntax, um anzugeben, dass der CodeBuild Build Buildspec-Befehle während Ihres selbst gehosteten Buildkite-Runner-Builds ausführen soll:

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

   Im Folgenden finden Sie ein Beispiel für eine Buildkite-Pipeline mit einer Buildspec-Überschreibung:

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

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

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

Immer wenn ein Buildkite-Job in Ihrer Pipeline gestartet CodeBuild wird, erhält er über den `job.scheduled` Buildkite-Webhook ein Webhook-Ereignis. Startet für jeden Job in Ihrem 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 Ihrer Jobs gestartet und den Job übernommen hat, sollten Sie in der Buildkite-Konsole Logs für den Job sehen

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


## Buildkite in einem privaten Repository authentifizieren
<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](https://buildkite.com/docs/agent/v3/github-ssh-keys) Repository abzurufen, da Buildkite keine Anmeldeinformationen an selbst gehostete Runner weitergibt, um Daten aus privaten Repositorys abzurufen. Um den selbst gehosteten Runner-Agent von Buildkite in Ihrem externen privaten Quell-Repository zu authentifizieren, können Sie eine der folgenden Optionen verwenden.

**Um sich zu authentifizieren mit CodeBuild**

CodeBuild bietet die Verwaltung von Anmeldeinformationen für unterstützte Quelltypen. Um CodeBuild Quellanmeldedaten 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 mithilfe der Schritte unter ein neues CodeBuild Projekt[Schritt 2: Erstellen Sie ein CodeBuild Projekt mit einem Webhook](#sample-runner-buildkite-create-project).

1. Wählen Sie unter **Buildkite-Quellanmeldedaten 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. Wenn für Ihr Projekt eine Inline-Buildspec konfiguriert ist, stellen Sie außerdem sicher, dass diese aktiviert ist. [ git-credential-helper](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper)

   1. Wenn Sie CodeBuild Anmeldeinformationen auf Projektebene verwenden möchten, wählen Sie **Anmeldeinformationen außer Kraft setzen nur für dieses Projekt verwenden** und richten Sie Anmeldeinformationen für Ihr Projekt ein.

1. Navigieren Sie in Ihren Buildkite-Pipeline-Einstellungen zu **Repository-Einstellungen**. Stellen Sie die Checkout-Einstellungen Ihres Quell-Repositorys auf **Checkout using HTTPS ein**  
![\[Überprüfe die Ergebnisse.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-repo-https.png)

**Um sich mit Buildkite-Geheimnissen zu authentifizieren**

Buildkite unterhält ein [SSH-Checkout-Plugin](https://github.com/buildkite-plugins/git-ssh-checkout-buildkite-plugin), mit dem der selbst gehostete Runner mithilfe eines SSH-Schlüssels bei einem externen Quell-Repository authentifiziert werden kann. Der Schlüsselwert wird als [geheimer Buildkite-Schlüssel gespeichert und automatisch vom selbst gehosteten Runner-Agent von Buildkite](https://buildkite.com/docs/pipelines/security/secrets/buildkite-secrets) abgerufen, wenn versucht wird, ein privates Repository abzurufen. Um das SSH-Checkout-Plugin für Ihre Buildkite-Pipeline zu konfigurieren, können Sie die folgenden Schritte ausführen:

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

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

1. Fügen Sie Ihrem Buildkite-Cluster einen [neuen geheimen SSH-Schlüssel](https://buildkite.com/docs/pipelines/hosted-agents/code-access#private-repositories-with-other-providers-add-the-ssh-key-secret) 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:**  
![\[Ergebnisse überprüfen.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-secret.png)

1. **Navigieren Sie in Ihrer Buildkite-Pipeline zu Ihren Repository-Einstellungen und stellen Sie beim Checkout die Verwendung von SSH ein.**  
![\[Überprüfen Sie die Ergebnisse.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/buildkite-repo.png)

1. Aktualisieren Sie Ihre YAML-Pipeline-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 Ihr privates Repository abgerufen wird

## Konfigurationsoptionen für Runner
<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, der als Wert dieser Umgebungsvariablen konfiguriert ist, um den selbst gehosteten AWS Secrets Manager Runner-Agent von Buildkite 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`: Standardmäßig CodeBuild werden Quellanmeldedaten auf Konto- oder Projektebene in die Build-Umgebung geladen, da diese Anmeldeinformationen vom Buildkite-Agenten verwendet werden, um das Quell-Repository des Jobs abzurufen. Um dieses Verhalten zu deaktivieren, können Sie Ihrem Projekt diese Umgebungsvariable hinzufügen, wobei der Wert auf gesetzt ist. Dadurch wird verhindert`true`, dass Quellanmeldedaten in die Build-Umgebung geladen werden.