

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.

# Baut ein AWS CodeBuild
<a name="builds-working"></a>

Ein *Build* stellt eine Reihe von Aktionen dar, die ausgeführt werden, AWS CodeBuild um Ausgabeartefakte (z. B. eine JAR-Datei) auf der Grundlage einer Reihe von Eingabeartefakten (z. B. einer Sammlung von Java-Klassendateien) zu erstellen.

Die folgenden Regeln gelten, wenn Sie mehrere Builds ausführen:
+ Wenn möglich, werden Builds gleichzeitig ausgeführt. Die maximale Anzahl gleichzeitig ausgeführter Builds ist variabel. Weitere Informationen finden Sie unter [Kontingente für AWS CodeBuild](limits.md). 
+ Wenn für das Build-Projekt ein Limit für gleichzeitige Builds festgelegt ist, geben Builds einen Fehler zurück, wenn die Anzahl der laufenden Builds das Limit für gleichzeitige Builds für das Projekt erreicht. Weitere Informationen finden Sie unter Limit für [gleichzeitige Builds aktivieren](create-project.md#enable-concurrent-build-limit.console).
+ Wenn für das Build-Projekt kein Limit für gleichzeitige Builds festgelegt ist, werden Builds in die Warteschlange gestellt, wenn die Anzahl der laufenden Builds das Limit für gleichzeitige Builds für die Plattform und den Rechnertyp erreicht. Die maximale Anzahl von Builds in einer Warteschlange ist das Fünffache des Grenzwerts für gleichzeitig ausgeführte Builds. Weitere Informationen finden Sie unter [Kontingente für AWS CodeBuild](limits.md).

  Ein Build in einer Warteschlange, der nach der für die Zeitüberschreitung angegebenen Anzahl von Minuten noch nicht gestartet wurde, wird aus der Warteschlange entfernt. Die Vorgabe für die Zeitüberschreitung beträgt 8 Stunden. Sie können die Zeitüberschreitung der Build-Warteschlange beim Ausführen des Builds auf einen Wert zwischen fünf Minuten und acht Stunden einstellen. Weitere Informationen finden Sie unter [Manuelles Ausführen von AWS CodeBuild Builds](run-build.md).

  Es ist nicht möglich, vorherzusagen, in welcher Reihenfolge die Builds in der Warteschlange gestartet werden. 

**Anmerkung**  
Sie können auf den Verlauf eines Builds für ein Jahr zugreifen.

Sie können diese Aufgaben bei der Arbeit mit Builds durchführen:

**Topics**
+ [Manuelles Ausführen von AWS CodeBuild Builds](run-build.md)
+ [Builds auf dem AWS Lambda Computer ausführen](lambda.md)
+ [Führen Sie Builds auf Flotten mit reservierter Kapazität aus](fleets.md)
+ [Builds stapelweise ausführen](batch-build.md)
+ [Führen Sie parallel Tests in Batch-Builds aus](parallel-test.md)
+ [Cache-Builds zur Verbesserung der Leistung](build-caching.md)
+ [Debug ist eingebaut AWS CodeBuild](debug-builds.md)
+ [Builds löschen AWS CodeBuild](delete-builds.md)
+ [Retry Builds manuell einbauen AWS CodeBuild](retry-build.md)
+ [Retry wird automatisch eingebaut AWS CodeBuild](auto-retry-build.md)
+ [Stopp baut ein AWS CodeBuild](stop-build.md)
+ [Stoppen Sie Batch-Builds AWS CodeBuild](stop-batch-build.md)
+ [Trigger wird automatisch AWS CodeBuild erstellt](build-triggers.md)
+ [Build-Details anzeigen in AWS CodeBuild](view-build-details.md)
+ [Sehen Sie sich eine Liste der eingebauten Geräte IDs an AWS CodeBuild](view-build-list.md)
+ [Eine Liste der Builds IDs für ein Build-Projekt anzeigen in AWS CodeBuild](view-builds-for-project.md)

# Manuelles Ausführen von AWS CodeBuild Builds
<a name="run-build"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um einen Build in auszuführen CodeBuild.

**Topics**
+ [Builds lokal mit dem AWS CodeBuild Agenten ausführen](use-codebuild-agent.md)
+ [Ausführen eines Build (Konsole)](run-build-console.md)
+ [Ausführen eines Build (AWS CLI)](run-build-cli.md)
+ [Führen Sie einen Batch-Build (AWS CLI) aus](run-batch-build-cli.md)
+ [Ausführung von Builds automatisch starten (AWS CLI)](run-build-cli-auto-start.md)
+ [Ausführung von Builds automatisch beenden (AWS CLI)](run-build-cli-auto-stop.md)
+ [Ausführen eines Build (AWS SDKs)](run-build-sdks.md)

# Builds lokal mit dem AWS CodeBuild Agenten ausführen
<a name="use-codebuild-agent"></a>

Sie können den AWS CodeBuild Agenten verwenden, um CodeBuild Builds auf einem lokalen Computer auszuführen. Es sind Agenten für x86\$164- und ARM-Plattformen verfügbar.

Sie können auch Benachrichtigungen abonnieren, wenn neue Versionen des Agenten veröffentlicht werden. 

## Voraussetzungen
<a name="use-codebuild-agent.prerequisites"></a>

Bevor Sie beginnen, müssen Sie Folgendes tun:
+ Installieren Sie Git auf Ihrem lokalen Computer.
+ Installieren und richten Sie [Docker](https://www.docker.com/) auf Ihrem lokalen Computer ein.

## Richten Sie das Build-Image ein
<a name="use-codebuild-agent.setup-image"></a>

Sie müssen das Build-Image nur einrichten, wenn Sie den Agenten zum ersten Mal ausführen oder wenn sich das Image geändert hat.

**Um das Build-Image einzurichten**

1. [Wenn Sie ein kuratiertes Amazon Linux 2-Image verwenden möchten, können Sie es aus dem CodeBuild öffentlichen Amazon ECR-Repository unter https://gallery.ecr abrufen. aws/codebuild/amazonlinux-x86\$164-standard](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard) mit dem folgenden Befehl:

   ```
   $ docker pull public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0
   ```

   Wenn Sie ein anderes Linux-Image verwenden möchten, führen Sie alternativ die folgenden Schritte aus:

   1. Klonen Sie das CodeBuild Image-Repo:

      ```
      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
      ```

   1. Wechseln Sie in das Image-Verzeichnis. Verwenden Sie für dieses Beispiel das `aws/codebuild/standard:5.0` Bild:

      ```
      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
      ```

   1. Erstellen Sie das Bild. Dies dauert einige Minuten. 

      ```
      $ docker build -t aws/codebuild/standard:5.0 .
      ```

1. Laden Sie den CodeBuild Agenten herunter.

   Führen Sie den folgenden Befehl aus, um die x86\$164-Version des Agenten herunterzuladen:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:latest
   ```

   Führen Sie den folgenden Befehl aus, um die ARM-Version des Agenten herunterzuladen:

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
   ```

1. <a name="codebuild-agent-sha"></a>Der CodeBuild Agent ist unter [https://gallery.ecr verfügbar. aws/codebuild/local-baut](https://gallery.ecr.aws/codebuild/local-builds). 

   Die SHA-Signatur (Secure Hash Algorithm) für die x86\$164-Version des Agenten lautet:

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   Die SHA-Signatur für die ARM-Version des Agenten lautet:

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   Sie können das SHA verwenden, um die Version des Agenten zu identifizieren. Um die SHA-Signatur des Agenten zu sehen, führen Sie den folgenden Befehl aus und suchen Sie unter`RepoDigests`: 

   ```
   $ docker inspect public.ecr.aws/codebuild/local-builds:latest
   ```

## Führen Sie den CodeBuild Agenten aus
<a name="use-codebuild-agent.run-agent"></a>

**Um den CodeBuild Agenten auszuführen**

1. Wechseln Sie in das Verzeichnis, das die Quelle Ihres Build-Projekts enthält.

1. Laden Sie das Skript [codebuild\$1build.sh](https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh) herunter:

   ```
   $ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
   $ chmod +x codebuild_build.sh
   ```

1. Führen Sie das `codebuild_build.sh` Skript aus und geben Sie Ihr Container-Image und das Ausgabeverzeichnis an.

   Führen Sie den folgenden Befehl aus, um einen x86\$164-Build auszuführen:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory>
   ```

   Führen Sie den folgenden Befehl aus, um einen ARM-Build auszuführen:

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64
   ```

   *<container-image>*Ersetzen Sie es durch den Namen des Container-Images, z. B. `aws/codebuild/standard:5.0` oder`public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0`.

   Das Skript startet das Build-Image und führt den Build für das Projekt im aktuellen Verzeichnis aus. Um den Speicherort des Build-Projekts anzugeben, fügen Sie die `-s <build project directory>` Option zum Skriptbefehl hinzu.

## Erhalten Sie Benachrichtigungen für neue CodeBuild Agentenversionen
<a name="receive-codebuild-agent-notifications"></a>

Sie können Amazon SNS SNS-Benachrichtigungen abonnieren, sodass Sie benachrichtigt werden, wenn neue Versionen des AWS CodeBuild Agenten veröffentlicht werden. 

**Um CodeBuild Agentenbenachrichtigungen zu abonnieren**

1. Öffnen Sie die Amazon SNS SNS-Konsole unter [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home). 

1. Ändern Sie in der Navigationsleiste die AWS Region auf **USA Ost (Nord-Virginia**), sofern sie nicht bereits ausgewählt ist. Sie müssen diese AWS Region auswählen, da die Amazon SNS SNS-Benachrichtigungen, die Sie abonnieren, in dieser Region erstellt werden. 

1. Wählen Sie im Navigationsbereich **Subscriptions** aus. 

1. Wählen Sie **Create subscription**. 

1. Gehen **Sie unter Abonnement erstellen** wie folgt vor: 

   1. Verwenden Sie für **Topic ARN** den folgenden Amazon-Ressourcennamen (ARN): 

      ```
      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
      ```

   1. Wählen Sie für **Protocol (Protokoll)** die Option **Email (E-Mail)** oder **SMS**. 

   1. Wählen Sie unter **Endpoint (Endpunkt)** aus, worüber (per E-Mail oder SMS) die Benachrichtigungen empfangen werden sollen. Geben Sie eine E-Mail-Adresse, Adresse oder Telefonnummer einschließlich Vorwahl ein. 

   1. Wählen Sie **Create subscription** (Abonnement erstellen) aus. 

   1. Wählen Sie **E-Mail**, um eine E-Mail zu erhalten, in der Sie aufgefordert werden, Ihr Abonnement zu bestätigen. Befolgen Sie die Anweisungen in der E-Mail zum Abschließen Ihres Abonnements. 

      Wenn Sie diese Benachrichtigungen nicht mehr erhalten möchten, führen Sie die folgenden Schritte aus, um sich abzumelden. 

**Um sich von CodeBuild Agentenbenachrichtigungen abzumelden**

1. Öffnen Sie die Amazon SNS SNS-Konsole unter [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home). 

1. Wählen Sie im Navigationsbereich **Subscriptions** aus. 

1. Wählen Sie das Abonnement und unter **Actions (Aktionen)** die Option **Delete subscriptions (Abonnements löschen)** aus. Wenn Sie aufgefordert werden, Ihre Entscheidung zu bestätigen, wählen Sie **Delete** aus. 

# Ausführen eines Build (Konsole)
<a name="run-build-console"></a>

Um einen Build mit auszuführen CodeBuild, überspringen Sie diese Schritte und folgen Sie den Anweisungen unter[Verwenden Sie CodeBuild mit CodePipeline](how-to-create-pipeline.md). AWS CodePipeline 

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. Wählen Sie im linken Navigationsbereich **Build projects** aus.

1. Wählen Sie in der Liste der Build-Projekte das Build-Projekt aus.

1. Sie können den Build mit den Standard-Build-Projekteinstellungen ausführen oder die Build-Einstellungen nur für diesen Build überschreiben.

   1. Wenn Sie den Build mit den Standardeinstellungen für das Build-Projekt ausführen möchten, wählen Sie **Build starten**. Der Build wird sofort gestartet.

   1. Wenn Sie die Standardeinstellungen für das Build-Projekt überschreiben möchten, wählen Sie **Build mit Überschreibungen starten** aus. Auf der Seite „**Build starten**“ können Sie Folgendes überschreiben:
      + **Konfiguration erstellen**
      + **Quelle**
      + **Überschreibungen von Umgebungsvariablen**

      Wenn Sie erweiterte Überschreibungen auswählen müssen, wählen Sie **Erweiterte Build-Überschreibungen**. Auf dieser Seite können Sie Folgendes überschreiben:
      + **Konfiguration erstellen**
      + **Quelle**
      + **Umgebung**
      + **Buildspec**
      + **Artefakte**
      + **Protokolle**

      Wenn Sie Ihre Override-Auswahl getroffen haben, wählen Sie **Build starten** aus.

Weitere Informationen zu diesem Build finden Sie unter [Anzeigen von Build-Details (Konsole)](view-build-details.md#view-build-details-console).

# Ausführen eines Build (AWS CLI)
<a name="run-build-cli"></a>

**Anmerkung**  
Um einen Build mit auszuführen AWS CodeBuild, überspringen Sie diese Schritte und folgen Sie den Anweisungen unter[Erstellen Sie eine Pipeline, die CodeBuild (AWS CLI) verwendet](how-to-create-pipeline-cli.md). CodePipeline   
Weitere Informationen zur Verwendung von AWS CLI with CodeBuild finden Sie unter[Befehlszeilenreferenz](cmd-ref.md).

1. Führen Sie den Befehl `start-build` auf eine der folgenden Weisen aus:

   ```
   aws codebuild start-build --project-name <project-name>
   ```

   Sie können diesen Befehl verwenden, wenn Sie ein Build ausführen möchten, dass die neueste Version des Build-Eingabeartifakts und die vorhandenen Einstellungen des Build-Projekts einsetzt.

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   Verwenden Sie diesen Befehl, wenn Sie einen Build mit einer früheren Version des Build-Eingabeartefakts verwenden oder die Einstellungen für Build-Ausgabeartefakte, Umgebungsvariablen, Build-Spezifikationen oder Standard-Build-Zeitbeschränkungen überschreiben möchten.

1. Wenn Sie den **start-build** Befehl mit der `--project-name` Option ausführen, ersetzen Sie ihn durch den Namen des Build-Projekts, und fahren Sie dann *<project-name>* mit Schritt 6 dieses Verfahrens fort. Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unter [Namen von Build-Projekten anzeigen](view-project-list.md).

1. Wenn Sie den **start-build** Befehl mit der `--idempotency-token` Option ausführen, ist ein eindeutiger Bezeichner oder ein Token, bei dem die Groß- und Kleinschreibung beachtet wird, in der `start-build` Anforderung enthalten. Das Token ist nach der Anforderung 5 Minuten gültig. Wenn Sie die `start-build` Anfrage mit demselben Token wiederholen, aber einen Parameter ändern, wird ein Fehler wegen Nichtübereinstimmung der Parameter CodeBuild zurückgegeben.

1. Wenn Sie den **start-build** Befehl mit der Option `--generate-cli-skeleton` ausführen, werden Daten im JSON-Format in der Ausgabe angezeigt. Kopieren Sie die Daten in eine Datei (z. B.`start-build.json`) an einem Speicherort auf dem lokalen Computer oder in der Instanz, in der der installiert AWS CLI ist. Ändern Sie die kopierten Daten, damit diese mit dem nachfolgenden Format übereinstimmen und speichern Sie die Ergebnisse:

   ```
   {
     "projectName": "projectName",
     "sourceVersion": "sourceVersion",
     "artifactsOverride": {
       "type": "type",
       "location": "location",
       "path": "path",
       "namespaceType": "namespaceType",
       "name": "artifactsOverride-name",
       "packaging": "packaging"
     },
     "buildspecOverride": "buildspecOverride",
     "cacheOverride": {
       "location": "cacheOverride-location",
       "type": "cacheOverride-type"
     },
     "certificateOverride": "certificateOverride",
     "computeTypeOverride": "computeTypeOverride",
     "environmentTypeOverride": "environmentTypeOverride",
     "environmentVariablesOverride": {
       "name": "environmentVariablesOverride-name",
       "value": "environmentVariablesValue",
       "type": "environmentVariablesOverride-type"
     },
     "gitCloneDepthOverride": "gitCloneDepthOverride",
     "imageOverride": "imageOverride",
     "idempotencyToken": "idempotencyToken",
     "insecureSslOverride": "insecureSslOverride",
     "privilegedModeOverride": "privilegedModeOverride",
     "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride",
     "reportBuildStatusOverride": "reportBuildStatusOverride",
     "timeoutInMinutesOverride": "timeoutInMinutesOverride",
     "sourceAuthOverride": "sourceAuthOverride",
     "sourceLocationOverride": "sourceLocationOverride",
     "serviceRoleOverride": "serviceRoleOverride",
     "sourceTypeOverride": "sourceTypeOverride"
   }
   ```

   Ersetzen die folgenden Platzhalter:
   + *projectName*: Erforderliche Zeichenfolge. Der Name des Build-Projekts, der für diesen Build zu verwenden ist. 
   + *sourceVersion*: Optionale Zeichenfolge. Eine Version des Quellcodes, der wie folgt zu erstellen ist:
     + Für Amazon S3 die Versions-ID, die der Version der Eingabe-ZIP-Datei entspricht, die Sie erstellen möchten. Wenn *sourceVersion* nicht angegeben, wird die neueste Version verwendet.
     + Für CodeCommit die Commit-ID, die der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn nicht angegeben, *sourceVersion* wird die HEAD-Commit-ID des Standardzweigs verwendet. (Sie können keinen Tag-Namen für angeben*sourceVersion*, aber Sie können die Commit-ID des Tags angeben.)
     + Für GitHub die Commit-ID, die Pull-Request-ID, den Branch-Namen oder den Tag-Namen, der der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn eine Pull-Anforderungs-ID angegeben ist, muss diese das Format `pr/pull-request-ID` verwenden (Beispiel: `pr/25`). Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn nicht angegeben, *sourceVersion* wird die HEAD-Commit-ID des Standard-Branches verwendet. 
     + Für Bitbucket, Commit-ID, Branch-Name oder Tag-Name, die/der der Version des Quellcodes entspricht, die Sie erstellen möchten. Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn nicht angegeben, *sourceVersion* wird die HEAD-Commit-ID des Standard-Branches verwendet. 
   + Die folgenden Platzhalter gelten für `artifactsOverride`.
     + *type*: Optional. Die Art des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
     + *location*: Optional. Der Speicherort des Build-Ausgabeartefakt, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
     + *path*: Optional. Der Pfad des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
     + *namespaceType*: Optional. Der Pfadtyp des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
     + *name*: Optional. Der Name des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
     + *packaging*: Optional. Die Verpackungsart des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist.
   + *buildspecOverride*: Optional. Eine Build-Spezifikationsdeklaration, die für diesen Build den Build überschreibt, der im Build-Projekt festgelegt ist. Wenn dieser Wert festgelegt ist, kann es sich entweder um eine Inline-Definition einer Build-Spezifikation, den Pfad zu einer alternativen buildspec-Datei relativ zum Wert der integrierten Umgebungsvariablen `CODEBUILD_SRC_DIR` oder den Pfad zu einem S3-Bucket handeln. Der S3-Bucket muss sich in derselben AWS -Region wie das Build-Projekt befinden. Geben Sie die buildspec-Datei mit ihrem ARN an (z. B. `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`). Wenn der Wert nicht angegeben oder eine leere Zeichenfolge ist, muss der Quellcode eine `buildspec.yml`-Datei im Stammverzeichnis enthalten. Weitere Informationen finden Sie unter [Dateiname der Build-Spezifikation und Speicherort](build-spec-ref.md#build-spec-ref-name-storage).
   + Die folgenden Platzhalter gelten für `cacheOverride`.
     + *cacheOverride-location*: Optional. Der Speicherort eines `ProjectCache`-Objekts für diesen Build, der das im Build-Projekt angegebene `ProjectCache`-Objekt überschreibt. `cacheOverride` ist optional und akzeptiert ein `ProjectCache`-Objekt. `location` ist in einem `ProjectCache`-Objekt erforderlich.
     + *cacheOverride-type*: Optional. Der Typ eines `ProjectCache`-Objekts für diesen Build, der das im Build-Projekt angegebene `ProjectCache`-Objekt überschreibt. `cacheOverride` ist optional und akzeptiert ein `ProjectCache`-Objekt. `type` ist in einem `ProjectCache`-Objekt erforderlich.
   + *certificateOverride*: Optional. Der Name eines Zertifikats für diesen Build, das das im Build-Projekt angegebene überschreibt.
   + *environmentTypeOverride*: Optional. Ein Containertyp für diesen Build, der den im Build-Projekt angegebenen überschreibt. Die aktuell gültige Zeichenfolge ist `LINUX_CONTAINER`.
   + Die folgenden Platzhalter gelten für `environmentVariablesOverride`.
     + *environmentVariablesOverride-name*: Optional. Der Name einer Umgebungsvariable in dem Build\$1Projekt, deren Wert Sie für diesen Build überschreiben möchten.
     + *environmentVariablesOverride-type*: Optional. Der Typ der Umgebungsvariablen im Build-Projekt, deren Wert für diesen Build überschrieben werden soll.
     + *environmentVariablesValue*: Optional. Der Wert der Umgebungsvariablen, der im Build-Projekt festgelegt wurde und für diesen Build überschrieben werden soll.
   + *gitCloneDepthOverride*: Optional. Der Wert für **Git clone depth**, der in dem Build-Projekt festgelegt ist, dessen Wert Sie für diesen Build überschreiben möchten. Wenn Ihr Quelltyp Amazon S3 ist, wird dieser Wert nicht unterstützt.
   + *imageOverride*: Optional. Der Name eines Abbilds für diesen Build, das das im Build-Projekt angegebene überschreibt.
   + *idempotencyToken*: Optional. Eine Zeichenfolge, die als Token dient und angibt, dass die Build-Anforderung idempotent ist. Sie können eine beliebige Zeichenfolge mit maximal 64 Zeichen verwenden. Das Token ist nach der Start-Build-Anfrage 5 Minuten lang gültig. Wenn Sie die Start-Build-Anfrage mit demselben Token wiederholen, aber einen Parameter ändern, wird ein CodeBuild Parameterkonflikt-Fehler zurückgegeben. 
   + *insecureSslOverride*: Optionaler boolescher Wert, der angibt, ob die im Build-Projekt angegebene unsichere TLS-Einstellung überschrieben werden soll. Die unsichere TLS-Einstellung bestimmt, ob TLS-Warnungen ignoriert werden sollen, während die Verbindung zum Projektquellcode hergestellt wird. Diese Überschreibung gilt nur, wenn die Quelle des Builds Enterprise Server ist GitHub .
   + *privilegedModeOverride*: Optionaler boolescher Wert. Ist der Wert "true" festgelegt, überschreibt der Build den privilegierten Modus im Build-Projekt.
   +  *queuedTimeoutInMinutesOverride*: Optionale Ganzzahl, die angibt, wie viele Minuten ein Build in die Warteschlange gestellt werden darf, bevor das Timeout eintritt. Der kleinste Wert beträgt fünf Minuten, der größte Wert beträgt 480 Minuten (8 Stunden). 
   + *reportBuildStatusOverride*: Optionaler boolescher Wert, der angibt, ob Ihrem Quellanbieter der Status des Beginns und des Abschlusses eines Builds gesendet werden soll. Wenn Sie dies mit einem anderen Quellanbieter als GitHub GitHub Enterprise Server oder Bitbucket festlegen, wird ein invalidInputException ausgelöst.
   + *sourceAuthOverride*: Optionale Zeichenfolge. Ein Autorisierungstyp für diesen Build, der den im Build-Projekt angegebenen überschreibt. Diese Überschreibung gilt nur, wenn die Quelle des Build-Projekts Bitbucket oder GitHub ist.
   + *sourceLocationOverride*: Optionale Zeichenfolge. Ein Speicherort, der für diesen Build den Quellspeicherort überschreibt, der im Build-Projekt definiert ist.
   + *serviceRoleOverride*: Optionale Zeichenfolge. Der Name einer Servicerolle für diesen Build, die die im Build-Projekt angegebene Servicerolle überschreibt.
   + *sourceTypeOverride*: Optionale Zeichenfolge. Ein Quelleingabetyp für diesen Build, der die im Build-Projekt definierte Quelleingabe überschreibt. Gültige Zeichenfolgen sind `NO_SOURCE`, `CODECOMMIT`, `CODEPIPELINE`, `GITHUB`, `S3`, `BITBUCKET` und `GITHUB_ENTERPRISE`.
   + *timeoutInMinutesOverride*: Optionale Zahl. Die Anzahl der Minuten der Build-Zeitbeschränkung, die für diesen Build den Build überschreiben, der im Build-Projekt festgelegt ist. 

   Wir empfehlen, dass Sie eine Umgebungsvariable mit einem sensiblen Wert wie einer AWS Zugriffsschlüssel-ID, einem AWS geheimen Zugriffsschlüssel oder einem Passwort als Parameter im Amazon EC2 Systems Manager Parameter Store speichern. CodeBuild kann einen im Amazon EC2 Systems Manager Parameter Store gespeicherten Parameter nur verwenden, wenn der Name dieses Parameters mit beginnt `/CodeBuild/` (z. B.`/CodeBuild/dockerLoginPassword`). Sie können die CodeBuild Konsole verwenden, um einen Parameter in Amazon EC2 Systems Manager zu erstellen. Wählen Sie **Create a parameter (Parameter erstellen)** aus und befolgen Sie dann die Anweisungen. (In diesem Dialogfeld können Sie für **KMS-Schlüssel** optional den ARN eines AWS KMS Schlüssels in Ihrem Konto angeben. Amazon EC2 Systems Manager verwendet diesen Schlüssel, um den Wert des Parameters beim Speichern zu verschlüsseln und beim Abrufen zu entschlüsseln.) Wenn Sie die CodeBuild Konsole verwenden, um einen Parameter zu erstellen, beginnt die Konsole den Parameter mit dem Wert, `/CodeBuild/` während er gespeichert wird. Wenn Sie jedoch die Amazon EC2 Systems Manager Parameter Store-Konsole verwenden, um einen Parameter zu erstellen, müssen Sie den Namen des Parameters mit `/CodeBuild/` beginnen und **Type** auf **Secure String** setzen. Weitere Informationen finden Sie unter [AWS Systems Manager Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) und [Exemplarische Vorgehensweise: Erstellen und Testen eines String-Parameters (Konsole)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) im *Amazon EC2 Systems Manager Manager-Benutzerhandbuch*.

   Wenn Ihr Build-Projekt auf Parameter Store von Amazon EC2 Systems Manager gespeicherte Parameter verweist, muss die Service-Rolle des Build-Projekts die `ssm:GetParameters` Aktion zulassen. Wenn Sie zuvor **in Ihrem Konto die Option Neue Servicerolle erstellen** ausgewählt haben, wird CodeBuild diese Aktion automatisch in die Standard-Servicerolle für Ihr Build-Projekt aufgenommen. Wenn Sie jedoch **Choose an existing service role from your account** ausgewählt haben, müssen Sie diese Aktion separat in Ihre Service-Rolle aufnehmen.

   Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen. Wenn das Docker-Image beispielsweise bereits eine Umgebungsvariable mit dem Namen `MY_VAR` und einem Wert von `my_value` enthält und Sie eine Umgebungsvariable mit dem Namen `MY_VAR` und einem Wert von `other_value` festlegen, wird `my_value` durch `other_value` ersetzt. Wenn das Docker-Image demgegenüber bereits eine Umgebungsvariable mit dem Namen `PATH` und einem Wert von `/usr/local/sbin:/usr/local/bin` enthält und Sie eine Umgebungsvariable mit dem Namen `PATH` und einem Wert von `$PATH:/usr/share/ant/bin` festlegen, wird `/usr/local/sbin:/usr/local/bin` durch den Literalwert `$PATH:/usr/share/ant/bin` ersetzt. 

   Legen Sie keine Umgebungsvariable mit einem Namen fest, der mit `CODEBUILD_` beginnt. Dieses Präfix ist zur -internen Verwendung reserviert.

   Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wird der Wert der Umgebungsvariable folgendermaßen bestimmt:
   + Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.
   + Der Wert in der Build-Projektdefinition folgt darauf.
   + Der Wert in der Deklaration in der buildspec-Datei hat die niedrigste Priorität.

   Weitere Informationen zu gültigen Werten für diese Platzhalter finden Sie unter [Erstellen eines Build-Projekts (AWS CLI)](create-project.md#create-project-cli). Eine Liste der neuesten Einstellungen für ein Build-Projekt finden Sie unter [Details zum Build-Projekt anzeigen](view-project-details.md).

1. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie den Befehl `start-build` erneut aus.

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. Bei Erfolg enthält die Ausgabe Daten wie in der [So führen Sie den Build aus](getting-started-overview.md#getting-started-run-build-cli)-Anleitung beschrieben.

Um mit den detaillierten Informationen über diesen Build zu arbeiten, notieren Sie sich den Wert `id` im der Ausgabe und zeigen Sie sich dann [Anzeigen von Build-Details (AWS CLI)](view-build-details.md#view-build-details-cli) an.

# Führen Sie einen Batch-Build (AWS CLI) aus
<a name="run-batch-build-cli"></a>

1. Führen Sie den Befehl `start-build-batch` auf eine der folgenden Weisen aus:

   ```
   aws codebuild start-build-batch --project-name <project-name>
   ```

   Sie können diesen Befehl verwenden, wenn Sie ein Build ausführen möchten, dass die neueste Version des Build-Eingabeartifakts und die vorhandenen Einstellungen des Build-Projekts einsetzt.

   ```
   aws codebuild start-build-batch --generate-cli-skeleton > <json-file>
   ```

   Verwenden Sie diesen Befehl, wenn Sie einen Build mit einer früheren Version des Build-Eingabeartefakts verwenden oder die Einstellungen für Build-Ausgabeartefakte, Umgebungsvariablen, Build-Spezifikationen oder Standard-Build-Zeitbeschränkungen überschreiben möchten.

1. Wenn Sie den **start-build-batch** Befehl mit der `--project-name` Option ausführen, ersetzen Sie ihn durch den Namen des Build-Projekts, und fahren Sie dann *<project-name>* mit Schritt 6 dieses Verfahrens fort. Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unter [Namen von Build-Projekten anzeigen](view-project-list.md).

1. Wenn Sie den **start-build-batch** Befehl mit der `--idempotency-token` Option ausführen, ist ein eindeutiger Bezeichner (Token), bei dem die Groß- und Kleinschreibung beachtet wird, in der `start-build-batch` Anforderung enthalten. Das Token ist nach der Anforderung 5 Minuten gültig. Wenn Sie die `start-build-batch` Anforderung mit demselben Token wiederholen, aber einen Parameter ändern, wird ein Fehler CodeBuild zurückgegeben, bei dem die Parameter nicht übereinstimmen.

1. Wenn Sie den **start-build-batch** Befehl mit der `--generate-cli-skeleton` Option ausführen, werden Daten im JSON-Format in die Datei ausgegeben. *<json-file>* Diese Datei ähnelt dem durch den **start-build** Befehl erstellten Grundgerüst, wurde jedoch um das folgende Objekt erweitert. Weitere Hinweise zu den gängigen Objekten finden Sie unter[Ausführen eines Build (AWS CLI)](run-build-cli.md).

   Ändern Sie diese Datei, um alle Build-Overrides hinzuzufügen, und speichern Sie Ihre Ergebnisse.

   ```
     "buildBatchConfigOverride": {
       "combineArtifacts": combineArtifacts,
       "restrictions": {
         "computeTypesAllowed": [
           allowedComputeTypes
         ],
         "maximumBuildsAllowed": maximumBuildsAllowed
       },
       "serviceRole": "batchServiceRole",
       "timeoutInMins": batchTimeout
     }
   ```

   Das `buildBatchConfigOverride` Objekt ist eine [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)Struktur, die die Überschreibungen der Batch-Build-Konfiguration für diesen Build enthält.  
*combineArtifacts*  
Ein boolescher Wert, der angibt, ob die Build-Artefakte für den Batch-Build zu einem einzigen Artefakt-Speicherort zusammengefasst werden sollen.  
*allowedComputeTypes*  
Ein Array von Zeichenfolgen, die die Datenverarbeitungstypen angeben, die für den Stapel-Build zulässig sind. Informationen zu diesen Werten finden Sie unter [Berechnungstypen für die Build-Umgebung](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).   
*maximumBuildsAllowed*  
Gibt die maximal zulässige Anzahl von Builds an.  
*batchServiceRole*  
Gibt die Servicerollen-ARN für das Stapel-Build-Projekt an.  
*batchTimeout*  
Gibt die maximale Zeitspanne in Minuten an, in der die Stapelerstellung abgeschlossen werden muss.

1. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie den Befehl `start-build-batch` erneut aus.

   ```
   aws codebuild start-build-batch --cli-input-json file://start-build.json
   ```

1. Bei Erfolg wird die JSON-Darstellung eines [BuildBatch](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BuildBatch.html)Objekts in der Konsolenausgabe angezeigt. Ein Beispiel für diese Daten finden Sie in der [StartBuildBatch Antwortsyntax](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_ResponseSyntax).

# Ausführung von Builds automatisch starten (AWS CLI)
<a name="run-build-cli-auto-start"></a>

Wenn Ihr Quellcode in einem GitHub oder einem GitHub Enterprise Server-Repository gespeichert ist, können Sie GitHub Webhooks verwenden, um Ihren Quellcode jedes Mal AWS CodeBuild neu erstellen zu lassen, wenn eine Codeänderung in das Repository übertragen wird.

Führen Sie den Befehl **create-webhook** wie folgt aus:

```
aws codebuild create-webhook --project-name <project-name>
```

*<project-name>*ist der Name des Build-Projekts, das den Quellcode enthält, der neu erstellt werden soll.

Denn GitHub in der Ausgabe erscheinen Informationen, die den folgenden ähneln:

```
{
  "webhook": {
    "url": "<url>"
  }
}
```

*<url>*ist die URL zum GitHub Webhook.

Für GitHub Enterprise Server erscheinen in der Ausgabe Informationen, die den folgenden ähneln:

![\[Beispiel für Ausgabeinformationen.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. Kopieren Sie den geheimen Schlüssel und Nutzlast-URL aus der Ausgabe. Sie benötigen sie, um einen Webhook in GitHub Enterprise Server hinzuzufügen. 

1. Wählen Sie in GitHub Enterprise Server das Repository aus, in dem Ihr CodeBuild Projekt gespeichert ist. Wählen Sie **Settings (Einstellungen)**, **Hooks & services (Hooks und Services)** und anschließend **Add webhook (Webhook hinzufügen)** aus. 

1. Geben Sie die Nutzlast-URL und den geheimen Schlüssels ein, übernehmen Sie die Standardeinstellungen für die anderen Felder, und wählen Sie dann **Add webhook**.

# Ausführung von Builds automatisch beenden (AWS CLI)
<a name="run-build-cli-auto-stop"></a>

Wenn Ihr Quellcode in einem GitHub oder einem GitHub Enterprise Server-Repository gespeichert ist, können Sie GitHub Webhooks so einrichten, dass Ihr Quellcode jedes Mal AWS CodeBuild neu erstellt wird, wenn eine Codeänderung in das Repository übertragen wird. Weitere Informationen finden Sie unter [Ausführung von Builds automatisch starten (AWS CLI)](run-build-cli-auto-start.md).

Wenn Sie dieses Verhalten aktiviert haben, können Sie es ausschalten, indem Sie den `delete-webhook`-Befehl wie folgt ausführen:

```
aws codebuild delete-webhook --project-name <project-name>
```
+ wo *<project-name>* ist der Name des Build-Projekts, das den Quellcode enthält, der neu erstellt werden soll.

Ist dieser Befehl erfolgreich, werden in der Ausgabe keine Informationen und Fehler angezeigt.

**Anmerkung**  
Dadurch wird nur der Webhook aus Ihrem CodeBuild Projekt gelöscht. Sie sollten den Webhook auch aus Ihrem Repository GitHub oder Ihrem GitHub Enterprise Server-Repository löschen.

# Ausführen eines Build (AWS SDKs)
<a name="run-build-sdks"></a>

Um einen Build mit auszuführen AWS CodeBuild, überspringen Sie diese Schritte und folgen Sie [Verwenden Sie AWS CodeBuild with AWS CodePipeline , um Code zu testen und Builds auszuführen](how-to-create-pipeline.md) stattdessen den Anweisungen unter. CodePipeline 

Informationen zur Verwendung CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Builds auf dem AWS Lambda Computer ausführen
<a name="lambda"></a>

AWS Lambda Compute bietet optimierte Startgeschwindigkeiten für Ihre Builds. AWS Lambda unterstützt schnellere Builds aufgrund einer geringeren Startlatenz. AWS Lambda skaliert außerdem automatisch, sodass Builds nicht in der Warteschlange warten, bis sie ausgeführt werden. Es gibt jedoch einige Anwendungsfälle, die AWS Lambda nicht unterstützt werden, und wenn sie Sie betreffen, verwenden Sie die EC2-Rechenleistung. Weitere Informationen finden Sie unter [Einschränkungen der AWS Lambda Datenverarbeitung](#lambda.limitations).

**Topics**
+ [Welche Tools und Laufzeiten werden in der kuratierten Laufzeitumgebung enthalten sein, auf der Docker-Images ausgeführt werden? AWS Lambda](#lambda.tools)
+ [Was ist, wenn das kuratierte Bild nicht die Tools enthält, die ich benötige?](#lambda.custom)
+ [In welchen Regionen wird AWS Lambda Rechenleistung unterstützt CodeBuild?](#lambda.regions)
+ [Einschränkungen der AWS Lambda Datenverarbeitung](#lambda.limitations)
+ [Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit](sample-lambda-sam-gradle.md)
+ [Erstellen Sie eine einseitige React-App mit CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Aktualisieren Sie eine Lambda-Funktionskonfiguration mit CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Welche Tools und Laufzeiten werden in der kuratierten Laufzeitumgebung enthalten sein, auf der Docker-Images ausgeführt werden? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda unterstützt die folgenden Tools: AWS CLI v2, AWS SAM CLI, Git, Go, Java, Node.js, Python, Pip, Ruby und.NET.

## Was ist, wenn das kuratierte Bild nicht die Tools enthält, die ich benötige?
<a name="lambda.custom"></a>

Wenn das kuratierte Image nicht die Tools enthält, die Sie benötigen, können Sie ein Docker-Image für die benutzerdefinierte Umgebung bereitstellen, das die erforderlichen Tools enthält.

**Anmerkung**  
Lambda unterstützt keine Funktionen, die Container-Images mit mehreren Architekturen verwenden. Weitere Informationen finden Sie unter [Erstellen einer Lambda-Funktion mithilfe eines Container-Images](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) im *AWS Lambda Entwicklerhandbuch*.

Beachten Sie, dass Sie die folgenden Amazon ECR-Berechtigungen benötigen, um benutzerdefinierte Images für Lambda-Berechnungen zu verwenden:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Beachten Sie auch, dass `curl` or installiert sein `wget` muss, um benutzerdefinierte Images verwenden zu können.

## In welchen Regionen wird AWS Lambda Rechenleistung unterstützt CodeBuild?
<a name="lambda.regions"></a>

In CodeBuild, AWS Lambda Datenverarbeitung wird in den folgenden Ländern unterstützt AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt), Europa (Irland) und Südamerika (São Paulo). Weitere Informationen darüber, AWS-Regionen wo verfügbar CodeBuild ist, finden Sie unter [AWS Services nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Einschränkungen der AWS Lambda Datenverarbeitung
<a name="lambda.limitations"></a>

Es gibt einige Anwendungsfälle, die AWS Lambda nicht unterstützt werden, und wenn sie sich auf Sie auswirken, verwenden Sie die EC2-Berechnung:
+ AWS Lambda unterstützt keine Tools, für die Root-Rechte erforderlich sind. Verwenden Sie für Tools wie `yum` oder `rpm` den EC2-Compute-Typ oder andere Tools, für die keine Root-Rechte erforderlich sind.
+ AWS Lambda unterstützt keine Docker-Builds oder -Runs.
+ AWS Lambda unterstützt das Schreiben in Dateien außerhalb `/tmp` nicht. Die mitgelieferten Paketmanager sind so konfiguriert, dass sie das `/tmp` Verzeichnis standardmäßig zum Herunterladen und Referenzieren von Paketen verwenden.
+ AWS Lambda unterstützt den Umgebungstyp nicht `LINUX_GPU_CONTAINER` und wird unter Windows Server Core 2019 nicht unterstützt.
+ AWS Lambda unterstützt keine Zwischenspeicherung, benutzerdefinierte Build-Timeouts, Warteschlangen-Timeout, Build-Badges, privilegierten Modus, benutzerdefinierte Laufzeitumgebungen oder Laufzeiten von mehr als 15 Minuten.
+ AWS Lambda unterstützt keine VPC-Konnektivität, einen festen Bereich von CodeBuild Quell-IP-Adressen, EFS, die Installation von Zertifikaten oder SSH-Zugriff mit Session Manager.

# Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit
<a name="sample-lambda-sam-gradle"></a>

The AWS Serverless Application Model (AWS SAM) ist ein Open-Source-Framework für die Erstellung serverloser Anwendungen. Weitere Informationen finden Sie im [AWS Serverless Application Model Repository](https://github.com/aws/serverless-application-model) unter. GitHub Das folgende Java-Beispiel verwendet Gradle, um eine AWS Lambda Funktion zu erstellen und zu testen. Danach wird die AWS SAM CLI verwendet, um die CloudFormation Vorlage und das Bereitstellungspaket bereitzustellen. Durch die Verwendung von CodeBuild Lambda werden die Build-, Test- und Bereitstellungsschritte automatisch abgewickelt, sodass die Infrastruktur schnell aktualisiert werden kann, ohne dass in einem einzigen Build manuell eingegriffen werden muss.

## Richten Sie Ihr Repository AWS SAM ein
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Erstellen Sie ein AWS SAM `Hello World` Projekt mit der AWS SAM CLI.

**Um Ihr AWS SAM Projekt zu erstellen**

1. Folgen Sie den Anweisungen im *AWS Serverless Application Model Entwicklerhandbuch* zur [Installation der AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) auf Ihrem lokalen Computer.

1. Führen Sie die folgende Projektkonfiguration aus `sam init` und wählen Sie sie aus.

   ```
   Which template source would you like to use?: 1 - AWS Quick Start Templates
   Choose an AWS Quick Start application template: 1 - Hello World Example
   Use the most popular runtime and package type? (Python and zip) [y/N]: N
   Which runtime would you like to use?: 8 - java21
   What package type would you like to use?: 1 - Zip
   Which dependency manager would you like to use?: 1 - gradle
   Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N
   Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N
   Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:  N
   Project name [sam-app]: <insert project name>
   ```

1. Laden Sie den AWS SAM Projektordner in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda-Java-Projekt
<a name="sample-lambda-sam-gradle.create-project"></a>

Erstellen Sie ein AWS CodeBuild Lambda-Java-Projekt und richten Sie die für den Build erforderlichen IAM-Berechtigungen ein.

**So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt**

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.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** **Java** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:corretto21** aus.
   + **Lassen **Sie** für Servicerolle die Option Neue Servicerolle ausgewählt.** Notieren Sie sich den **Rollennamen**. Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole. 

1. Wählen Sie im Navigationsbereich **Rollen** und dann die Ihrem Projekt zugeordnete Servicerolle aus. Sie finden Ihre Projektrolle in, CodeBuild indem Sie Ihr Build-Projekt auswählen, **Bearbeiten**, **Umgebung** und dann **Servicerolle** auswählen.

1. Wählen Sie die Registerkarte **Trust Relationships** (Vertrauensstellungen) und dann **Edit trust policy** (Vertrauensrichtlinie bearbeiten) aus.

1. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *-IAM-Benutzerhandbuch*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:*",
                   "lambda:*",
                   "iam:*",
                   "apigateway:*",
                   "s3:*"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

 CodeBuild Liest Build-Befehle aus einer Buildspec und führt sie aus, um Ihre Lambda-Funktion zu erstellen, zu testen und bereitzustellen.

**Um Ihr Projekt (Buildspec) einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt und dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   env:
     variables:
       GRADLE_DIR: "HelloWorldFunction"
   phases:
     build:
       commands:
         - echo "Running unit tests..."
         - cd $GRADLE_DIR; gradle test; cd ..
         - echo "Running build..."
         - sam build --template-file template.yaml
         - echo "Running deploy..."
         - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml
         - yes | sam deploy
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Stellen Sie Ihre AWS SAM Lambda-Infrastruktur bereit
<a name="sample-lambda-sam-gradle.deploy"></a>

Verwenden Sie CodeBuild Lambda, um Ihre Lambda-Infrastruktur automatisch bereitzustellen

**Um Ihre Lambda-Infrastruktur bereitzustellen**

1. Wählen Sie **Start build (Build starten)**. Dadurch wird Ihre AWS SAM Anwendung automatisch erstellt, getestet und bereitgestellt. AWS Lambda CloudFormation

1. Sobald der Build abgeschlossen ist, navigieren Sie zur AWS Lambda Konsole und suchen Sie unter dem AWS SAM Projektnamen nach Ihrer neuen Lambda-Funktion.

1. Testen Sie Ihre Lambda-Funktion, indem Sie unter der **Funktionsübersicht** **API Gateway** auswählen und dann auf die **API-Endpunkt-URL** klicken. Sie sollten eine Seite mit der Meldung `"message": "hello world"` geöffnet sehen.

## Säubern Sie Ihre Infrastruktur
<a name="sample-lambda-sam-gradle.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die Ressourcen, die mit Ihrer AWS SAM Vorlage und erstellt wurden CodeBuild.

**Um Ihre Infrastruktur zu bereinigen**

1. Navigieren Sie zur CloudFormation Konsole und wählen Sie die`aws-sam-cli-managed-default`.

1. Leeren Sie unter **Ressourcen** den Bereitstellungs-Bucket`SamCliSourceBucket`.

1. Löschen Sie den `aws-sam-cli-managed-default` Stack.

1. Löschen Sie den CloudFormation Stapel, der Ihrem AWS SAM Projekt zugeordnet ist. Dieser Stapel sollte denselben Namen wie Ihr AWS SAM Projekt haben.

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

# Erstellen Sie eine einseitige React-App mit CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) ist eine Möglichkeit, einseitige React-Anwendungen zu erstellen. Das folgende Beispiel für Node.js verwendet Node.js, um die Quellartefakte aus Create React App zu erstellen, und gibt die Build-Artefakte zurück.

## Richten Sie Ihr Quell-Repository und Ihren Artefakt-Bucket ein
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Erstellen Sie mit yarn und Create React App ein Quell-Repository für Ihr Projekt.

**Um das Quell-Repository und den Artefakt-Bucket einzurichten**

1. Führen Sie auf Ihrem lokalen Computer aus, `yarn create react-app <app-name>` um eine einfache React-App zu erstellen.

1. Laden Sie den Projektordner der React-App in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda Node.js Projekt
<a name="sample-lambda-react-nodejs.create-project"></a>

Erstellen Sie ein AWS CodeBuild Lambda Node.js -Projekt.

**So erstellen Sie Ihr CodeBuild Lambda Node.js Projekt**

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.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** die Option **Node.js** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:nodejs20** aus.

1. In **Artifacts (Artefakte)**:
   + Wählen Sie als **Typ** **Amazon S3** aus.
   + Wählen Sie als **Bucket-Namen den Bucket** für Projektartefakte aus, den Sie zuvor erstellt haben.
   + Wählen Sie für das **Verpacken von Artefakten** die Option **Zip** aus.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

 CodeBuild Liest Build-Befehle aus einer Buildspec-Datei und führt sie aus, um Ihre React-App zu erstellen.

**Um dein Projekt buildspec einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Erstelle deine React-App und führe sie aus
<a name="sample-lambda-react-nodejs.build"></a>

Erstellen Sie die React-App auf CodeBuild Lambda, laden Sie die Build-Artefakte herunter und führen Sie die React-App lokal aus.

**Um Ihre React-App zu erstellen und auszuführen**

1. Wählen Sie **Start build (Build starten)**.

1. Sobald der Build abgeschlossen ist, navigieren Sie zu Ihrem Amazon S3 S3-Projektartefakt-Bucket und laden Sie das React-App-Artefakt herunter.

1. Entpacken Sie das React-Build-Artefakt und fügen Sie es `run npm install -g serve && serve -s build` in den Projektordner ein.

1. Der `serve` Befehl stellt die statische Site auf einem lokalen Port bereit und druckt die Ausgabe auf Ihrem Terminal aus. Sie können die Localhost-URL unter `Local:` der Terminalausgabe aufrufen, um Ihre React-App anzuzeigen.

Weitere Informationen zum Umgang mit der Bereitstellung für einen React-basierten Server finden Sie unter [React-App-Deployment erstellen](https://create-react-app.dev/docs/deployment/).

## Bereinigen Sie Ihre Infrastruktur
<a name="sample-lambda-react-nodejs.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die für Ihr CodeBuild Projekt erstellten Ressourcen.

**Um Ihre Infrastruktur zu bereinigen**

1. Löschen Sie Ihre Projektartefakte — Amazon S3 S3-Bucket

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

# Aktualisieren Sie eine Lambda-Funktionskonfiguration mit CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

Das folgende Python-Beispiel verwendet [Boto3](https://aws.amazon.com/sdk-for-python/) und CodeBuild Lambda Python, um die Konfiguration einer Lambda-Funktion zu aktualisieren. Dieses Beispiel kann erweitert werden, um andere Ressourcen programmgesteuert zu verwalten. AWS Weitere Informationen finden Sie in der [Boto3-Dokumentation](https://aws.amazon.com/sdk-for-python/).

## Voraussetzungen
<a name="sample-lambda-boto3-python.prerequisites"></a>

Erstellen oder suchen Sie eine Lambda-Funktion in Ihrem Konto.

In diesem Beispiel wird davon ausgegangen, dass Sie in Ihrem Konto bereits eine Lambda-Funktion erstellt haben und diese Funktion CodeBuild zur Aktualisierung der Umgebungsvariablen der Lambda-Funktion verwenden werden. Weitere Informationen zum Einrichten einer Lambda-Funktion finden CodeBuild Sie im [Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit](sample-lambda-sam-gradle.md) Beispiel oder unter [AWS Lambda](https://aws.amazon.com/lambda/).

## Richten Sie Ihr Quell-Repository ein
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Erstellen Sie ein Quell-Repository, um Ihr Boto3-Python-Skript zu speichern.

**Um das Quell-Repository einzurichten**

1. Kopieren Sie das folgende Python-Skript in eine neue Datei namens`update_lambda_environment_variables.py`.

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Laden Sie die Python-Datei in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda-Python-Projekt
<a name="sample-lambda-boto3-python.create-project"></a>

Erstellen Sie ein CodeBuild Lambda-Python-Projekt.

**So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt**

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.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** **Python** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:python3.12** aus.
   + **Lassen **Sie** für Servicerolle die Option Neue Servicerolle ausgewählt.** Notieren Sie sich den **Rollennamen**. Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole. 

1. Wählen Sie im Navigationsbereich **Rollen** und dann die Ihrem Projekt zugeordnete Servicerolle aus. Sie finden Ihre Projektrolle in, CodeBuild indem Sie Ihr Build-Projekt auswählen, **Bearbeiten**, **Umgebung** und dann **Servicerolle** auswählen.

1. Wählen Sie die Registerkarte **Trust Relationships** (Vertrauensstellungen) und dann **Edit trust policy** (Vertrauensrichtlinie bearbeiten) aus.

1. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *-IAM-Benutzerhandbuch*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Um die Lambda-Funktion zu aktualisieren, liest das Skript Umgebungsvariablen aus der Buildspec, um den Namen, den Namen der Umgebungsvariablen und den Wert der Umgebungsvariablen der Lambda-Funktion zu ermitteln.

**Um Ihr Projekt (buildspec) einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Aktualisieren Sie Ihre Lambda-Konfiguration
<a name="sample-lambda-boto3-python.update"></a>

Verwenden Sie CodeBuild Lambda Python, um die Konfiguration Ihrer Lambda-Funktion automatisch zu aktualisieren.

**Um die Konfiguration Ihrer Lambda-Funktion zu aktualisieren**

1. Wählen Sie **Start build (Build starten)**.

1. Sobald der Build abgeschlossen ist, navigieren Sie zu Ihrer Lambda-Funktion.

1. Wählen Sie **Konfiguration** und dann **Umgebungsvariablen** aus. Sie sollten eine neue Umgebungsvariable mit Schlüssel `FEATURE_ENABLED` und Wert sehen`true`.

## Säubern Sie Ihre Infrastruktur
<a name="sample-lambda-boto3-python.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die für Ihr CodeBuild Projekt erstellten Ressourcen.

**Um Ihre Infrastruktur zu bereinigen**

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

1. Wenn Sie für dieses Beispiel eine Lambda-Funktion erstellt haben, wählen Sie **Aktionen** und **Funktion löschen, um Ihre Lambda-Funktion** zu bereinigen.

## Erweiterungen
<a name="sample-lambda-boto3-python.extensions"></a>

Wenn Sie dieses Beispiel erweitern möchten, um andere AWS Ressourcen mit AWS CodeBuild Lambda Python zu verwalten:
+ Aktualisieren Sie das Python-Skript, um die neuen Ressourcen mit Boto3 zu ändern.
+ Aktualisieren Sie die mit Ihrem CodeBuild Projekt verknüpfte IAM-Rolle, sodass sie über Berechtigungen für die neuen Ressourcen verfügt.
+ Fügen Sie Ihrer Buildspec alle neuen Umgebungsvariablen hinzu, die mit den neuen Ressourcen verknüpft sind.

# Führen Sie Builds auf Flotten mit reservierter Kapazität aus
<a name="fleets"></a>

CodeBuild bietet die folgenden Rechenflotten:
+ Flotten auf Abruf
+ Flotten mit reservierter Kapazität

Mit On-Demand-Flotten CodeBuild bietet es Rechenleistung für Ihre Builds. Die Maschinen werden zerstört, wenn der Bau abgeschlossen ist. On-Demand-Flotten werden vollständig verwaltet und verfügen über automatische Skalierungsfunktionen zur Bewältigung von Nachfragespitzen.

**Anmerkung**  
On-Demand-Flotten unterstützen macOS nicht.

CodeBuild bietet auch Flotten mit reservierter Kapazität, die von Amazon EC2 betriebene Instances enthalten, die von verwaltet werden. CodeBuild Mit Flotten mit reservierter Kapazität konfigurieren Sie eine Reihe von dedizierten Instances für Ihre Build-Umgebung. Diese Maschinen bleiben inaktiv und sind bereit, Builds oder Tests sofort zu verarbeiten, wodurch die Build-Dauer reduziert wird. Mit Flotten mit reservierter Kapazität sind Ihre Maschinen immer in Betrieb und es fallen weiterhin Kosten an, solange sie bereitgestellt werden.

**Wichtig**  
Unabhängig davon, wie lange Sie eine Instance ausführen, fällt für Flotten mit reservierter Kapazität eine anfängliche Gebühr pro Instanz an. Danach können zusätzliche Kosten anfallen. Weitere Informationen finden Sie unter [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).

**Topics**
+ [Erstellen Sie eine Flotte mit reservierter Kapazität](#fleets.how-to)
+ [Best Practices](#fleets.best-practices)
+ [Kann ich eine Flotte mit reservierter Kapazität für mehrere Projekte gemeinsam nutzen? CodeBuild](#fleets.share)
+ [Wie funktioniert attributebasiertes Rechnen?](#fleets.attribute-compute)
+ [Kann ich manuell eine Amazon EC2 EC2-Instance für meine Flotte angeben?](#fleets.manual-input-compute)
+ [Welche Regionen unterstützen Flotten mit reservierter Kapazität?](#fleets.regions)
+ [Wie konfiguriere ich eine macOS-Flotte mit reservierter Kapazität?](#fleets.configure-macos)
+ [Wie konfiguriere ich ein benutzerdefiniertes Amazon Machine Image (AMI) für eine Flotte mit reservierter Kapazität?](#fleets.custom-ami)
+ [Einschränkungen von Flotten mit reservierter Kapazität](#fleets.limitations)
+ [Flotteneigenschaften mit reservierter Kapazität](fleets.reserved-capacity-fleets.md)
+ [Stichproben mit reservierter Kapazität AWS CodeBuild](reserved-capacity-samples.md)

## Erstellen Sie eine Flotte mit reservierter Kapazität
<a name="fleets.how-to"></a>

Gehen Sie wie folgt vor, um eine Flotte mit reservierter Kapazität zu erstellen.

**Um eine Flotte mit reservierter Kapazität zu erstellen**

1. Melden Sie sich bei [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) an AWS-Managementkonsole und öffnen Sie die AWS CodeBuild Konsole.

1. **Wählen Sie im Navigationsbereich die Option **Flotte berechnen und anschließend Flotte** erstellen aus.**

1. Geben **Sie im Textfeld „Flottenname berechnen**“ einen Namen für Ihre Flotte ein.

1. **Wählen Sie im Drop-down-Menü Betriebssystem das Betriebssystem aus.**

1. **Wählen Sie im Dropdownmenü Architektur die Architektur aus.**

1. (Optional) Wählen Sie **Instance-Ausführungsmodus verwenden — optional**, um die Ausführung direkt auf einer Amazon EC2 EC2-Instance statt auf einem Docker-Container durchzuführen. Wählen Sie dann eine **Hauptversion und eine **Nebenversion**** aus.

1. (Optional) Gehen Sie **unter Zusätzliche Konfiguration** wie folgt vor:
   + Wählen Sie **VPC konfigurieren — optional**, um Ihre Flotte mit einer VPC zu verbinden, um während der Nutzung auf private Ressourcen zuzugreifen.
     + Wählen Sie im Dropdownmenü **VPC** eine VPC aus, auf die Ihre CodeBuild Flotte zugreifen soll.
     + Wählen Sie im Dropdownmenü **Subnetze** die Subnetze aus, die Sie für die Einrichtung Ihrer VPC-Konfiguration verwenden CodeBuild sollten.
     + Wählen Sie im Dropdownmenü **Sicherheitsgruppen** die Sicherheitsgruppen aus, die für die Zusammenarbeit mit Ihrer VPC verwendet werden CodeBuild sollen.
     + Wählen Sie im Feld **Fleet Service Role** eine bestehende Servicerolle aus.
**Anmerkung**  
Stellen Sie sicher, dass Ihre Flottenrolle über die erforderlichen Berechtigungen verfügt. Weitere Informationen finden Sie unter [Erlaubt einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).
     + Wenn Sie sich für das Amazon Linux-Betriebssystem entschieden haben, wählen Sie **Proxykonfigurationen definieren — optional**, um die Netzwerkzugriffskontrolle für Ihre Reserved Capacity-Instances anzuwenden.
     + Wählen Sie unter **Standardverhalten**, ob ausgehender Datenverkehr an alle Ziele standardmäßig zugelassen oder verweigert werden soll.
     + Wählen Sie für **Proxyregeln** die Option **Proxyregel hinzufügen** aus, um Zieldomänen anzugeben oder IPs um die Netzwerkzugriffskontrolle zuzulassen oder zu verweigern.
   + Wählen Sie **Benutzerdefiniertes AMI konfigurieren — optional**, um ein benutzerdefiniertes Amazon Machine Image (AMI) zu verwenden.
     + Wählen Sie im **AMI-Dropdown-Menü** ein Amazon Machine Image (AMI) für Ihre Flotte aus.
     + Wählen Sie im Feld **Fleet Service Role** eine bestehende Servicerolle aus.
**Anmerkung**  
Stellen Sie sicher, dass Ihre Flottenrolle über die erforderlichen Berechtigungen verfügt. Weitere Informationen finden Sie unter [Erlaubt einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Wählen Sie **unter Kapazitätskonfiguration** im **Modus Berechnungsauswahl** eine der folgenden Optionen aus:
   + Wenn Sie **Geführte Auswahl** wählen, gehen Sie wie folgt vor:
     + Wählen Sie für **Compute** den Instance-Typ aus, der in dieser Flotte enthalten ist.
     + Geben Sie im Textfeld **Kapazität** die Mindestanzahl von Instanzen in der Flotte ein.
     + (Optional) Gehen Sie **unter Zusätzliche Konfiguration** wie folgt vor:
       + Wählen Sie **Skalierung konfigurieren — optional** aus, um Ihre Flotte auf der Grundlage dieser Konfiguration automatisch zu skalieren. Wählen Sie im Drop-down-Menü **Skalierungsmodus — optional** das Verhalten aus, wenn der Bedarf die Flottenkapazität übersteigt.
   + Wenn Sie „**Benutzerdefinierte Instanz**“ wählen, gehen Sie wie folgt vor:
     + Wählen Sie im Drop-down-Menü **Compute-Instanztyp** den Instanztyp aus, der in dieser Flotte enthalten ist.
     + Geben Sie im Textfeld **Zusätzliche EBS-Volumegröße — optional** das Volumen ein, das zusätzlich zu den bereitgestellten 64 GB Festplattenspeicher hinzukommt.
     + Geben Sie im Textfeld **Kapazität** die Mindestanzahl von Instances in der Flotte ein.
     + (Optional) Gehen Sie **unter Zusätzliche Konfiguration** wie folgt vor:
       + Wählen Sie **Skalierung konfigurieren — optional** aus, um Ihre Flotte auf der Grundlage dieser Konfiguration automatisch zu skalieren. Wählen Sie im Drop-down-Menü **Skalierungsmodus — optional** das Verhalten aus, wenn der Bedarf die Flottenkapazität übersteigt.

1. Wählen Sie **Rechenflotte erstellen** aus.

1. Nachdem die Rechenflotte erstellt wurde, erstellen Sie ein neues CodeBuild Projekt oder bearbeiten Sie ein vorhandenes. Wählen Sie unter **Umgebung** unter **Bereitstellungsmodell** die Option **Reservierte Kapazität** und dann unter **Flottenname die angegebene Flotte** aus.

## Best Practices
<a name="fleets.best-practices"></a>

Wenn Sie Flotten mit reservierter Kapazität verwenden, empfehlen wir Ihnen, diese bewährten Methoden zu befolgen.
+ Wir empfehlen, den Quell-Cache-Modus zu verwenden, um die Build-Performance durch Zwischenspeichern der Quelle zu verbessern.
+ Wir empfehlen die Verwendung von Docker-Layer-Caching, um die Build-Performance zu verbessern, indem vorhandene Docker-Ebenen zwischengespeichert werden.

## Kann ich eine Flotte mit reservierter Kapazität für mehrere Projekte gemeinsam nutzen? CodeBuild
<a name="fleets.share"></a>

Ja, Sie können die Auslastung der Kapazität einer Flotte maximieren, indem Sie sie projektübergreifend einsetzen.

**Wichtig**  
Wenn Sie die Funktion für reservierte Kapazität verwenden, können Daten, die auf Flotteninstanzen zwischengespeichert wurden, einschließlich Quelldateien, Docker-Layern und zwischengespeicherten Verzeichnissen, die in der Buildspec angegeben sind, für andere Projekte innerhalb desselben Kontos zugänglich sein. Dies ist beabsichtigt und ermöglicht es Projekten innerhalb desselben Kontos, Flotteninstanzen gemeinsam zu nutzen.

## Wie funktioniert attributebasiertes Rechnen?
<a name="fleets.attribute-compute"></a>

Wenn Sie sich für Ihre Flotte entscheiden `ATTRIBUTE_BASED_COMPUTE``computeType`, können Sie die Attribute in einem neuen Feld mit dem Namen angeben. `computeConfiguration` Zu diesen Attributen gehören vCPUs, Arbeitsspeicher, Festplattenspeicher und`machineType`. Das `machineType` ist entweder `GENERAL` oder`NVME`. Nachdem Sie eines oder einige der verfügbaren Attribute angegeben haben, CodeBuild wird ein Berechnungstyp aus den verfügbaren unterstützten Instanztypen als finalisiert `computeConfiguration` ausgewählt.

**Anmerkung**  
CodeBuild wählt die günstigste Instanz aus, die alle Eingabeanforderungen erfüllt. Der ArbeitsspeicherCPUs, V und der Festplattenspeicher der ausgewählten Instances werden alle größer oder gleich den Eingabeanforderungen sein. Sie können die gelösten Probleme `computeConfiguration` in der erstellten oder aktualisierten Flotte überprüfen.

Wenn Sie eine Eingabe machen`computeConfiguration`, die nicht erfüllt werden kann CodeBuild, erhalten Sie eine Validierungsausnahme. Beachten Sie außerdem, dass das Flottenüberlaufverhalten bei Bedarf durch das Verhalten in der Warteschlange außer Kraft gesetzt wird, wenn das nicht auf Abruf verfügbar `computeConfiguration` ist.

## Kann ich manuell eine Amazon EC2 EC2-Instance für meine Flotte angeben?
<a name="fleets.manual-input-compute"></a>

Ja, Sie können Ihre gewünschte Amazon EC2 EC2-Instance direkt in der Konsole eingeben, indem Sie **Custom instance** auswählen oder den API-Parameter konfigurieren. `InstanceType` Dieses Feld wird im Folgenden verwendet APIs: CreateFleet, UpdateFleet CreateProject, UpdateProject und StartBuild. Weitere Informationen finden Sie unter [Compute instance type](fleets.reserved-capacity-fleets.md#compute).

## Welche Regionen unterstützen Flotten mit reservierter Kapazität?
<a name="fleets.regions"></a>

Reservierte Kapazität Amazon Linux- und Windows-Flotten werden in den folgenden Ländern unterstützt AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt), Europa (Irland) und Südamerika (São Paulo). Weitere Informationen darüber, AWS-Regionen wo verfügbar CodeBuild ist, finden Sie unter [AWS Services nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

MacOS Medium-Flotten mit reservierter Kapazität werden in den folgenden Ländern unterstützt AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon), Asien-Pazifik (Sydney) und Europa (Frankfurt). Reservierte Kapazität macOS Large-Flotten werden in den folgenden AWS-Regionen Ländern unterstützt: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon) und Asien-Pazifik (Sydney).

## Wie konfiguriere ich eine macOS-Flotte mit reservierter Kapazität?
<a name="fleets.configure-macos"></a>

**So konfigurieren Sie eine macOS-Flotte mit reservierter Kapazität**

1. Melden Sie sich bei [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) an AWS-Managementkonsole und öffnen Sie die AWS CodeBuild Konsole.

1. **Wählen Sie im Navigationsbereich die Option **Flotte berechnen und anschließend Flotte** erstellen aus.**

1. Geben **Sie im Textfeld „Flottenname berechnen**“ einen Namen für Ihre Flotte ein.

1. Wählen Sie im Dropdownmenü **Betriebssystem** die Option **macOS** aus.

1. Wählen Sie im Feld **Compute** einen der folgenden Computermaschinentypen aus: **Apple M2, 24 GB Arbeitsspeicher, 8 V CPUs** oder **Apple M2, 32 GB Speicher, 12 CPUs V.**

1. Geben Sie im Textfeld **Kapazität** die Mindestanzahl von Instances in der Flotte ein.

1. (Optional) Informationen zur Verwendung eines benutzerdefinierten Images für Ihre Flotte finden Sie unter [Wie konfiguriere ich ein benutzerdefiniertes Amazon Machine Image (AMI) für eine Flotte mit reservierter Kapazität?](#fleets.custom-ami) Stellen Sie sicher, dass Ihr Amazon Machine Image (AMI) die erforderlichen Voraussetzungen erfüllt.

1. (Optional) Um eine VPC mit Ihrer Flotte zu konfigurieren, gehen Sie unter **Zusätzliche Konfiguration** wie folgt vor:
   + Wählen Sie im Drop-down-Menü **VPC — optional** eine VPC aus, auf die Ihre CodeBuild Flotte zugreifen wird.
   + Wählen Sie im Dropdownmenü **Subnetze** die Subnetze aus, die Sie für die Einrichtung Ihrer VPC-Konfiguration verwenden CodeBuild sollten.
   + Wählen Sie im Dropdownmenü **Sicherheitsgruppen** die Sicherheitsgruppen aus, die für die Zusammenarbeit mit Ihrer VPC verwendet werden CodeBuild sollen.
   + Wählen Sie im Feld **Flotten-Servicerolle** eine bestehende Servicerolle aus.
**Anmerkung**  
Stellen Sie sicher, dass Ihre Flottenrolle über die erforderlichen Berechtigungen verfügt. Weitere Informationen finden Sie unter [Erlaubt einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Wählen Sie **Create Compute Fleet** und warten Sie, bis die Flotteninstanz gestartet wird. Nach dem Start wird die Kapazität dort sein`n/n`, wo sie bereitgestellt *n* wird.

1. Erstellen Sie nach dem Start der Rechenflotte ein neues CodeBuild Projekt oder bearbeiten Sie ein vorhandenes. Wählen Sie unter **Umgebung** unter **Bereitstellungsmodell** die Option **Reservierte Kapazität** und dann unter **Flottenname die angegebene Flotte** aus.

## Wie konfiguriere ich ein benutzerdefiniertes Amazon Machine Image (AMI) für eine Flotte mit reservierter Kapazität?
<a name="fleets.custom-ami"></a>

**So konfigurieren Sie ein benutzerdefiniertes Amazon Machine Image (AMI) für eine Flotte mit reservierter Kapazität**

1. Melden Sie sich bei [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) an AWS-Managementkonsole und öffnen Sie die AWS CodeBuild Konsole.

1. **Wählen Sie im Navigationsbereich die Option **Flotte berechnen und anschließend Flotte** erstellen aus.**

1. Geben **Sie im Textfeld „Flottenname berechnen**“ einen Namen für Ihre Flotte ein.

1. Wählen Sie **Benutzerdefiniertes Image** für Ihre Flotte und stellen Sie sicher, dass Ihr Amazon Machine Image (AMI) die folgenden Voraussetzungen erfüllt:
   + Wenn Ihr Umgebungstyp ist`MAC_ARM`, stellen Sie sicher, dass Ihre **AMI-Architektur** 64-Bit ist`Mac-Arm`.
   + Wenn Ihr Umgebungstyp ist`LINUX_EC2`, stellen Sie sicher, dass Ihre **AMI-Architektur** 64-Bit ist`x86`.
   + Wenn Ihr Umgebungstyp ist`ARM_EC2`, stellen Sie sicher, dass Ihre **AMI-Architektur** 64-Bit ist`Arm`.
   + Wenn Ihr Umgebungstyp ist`WINDOWS_EC2`, stellen Sie sicher, dass Ihre **AMI-Architektur** 64-Bit ist`x86`.
   + Das AMI ermöglicht der CodeBuild **Serviceorganisation ARN**. Eine Liste der Organisationen finden ARNs Sie unter[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami).
   + Wenn das AMI mit einem AWS KMS Schlüssel verschlüsselt ist, muss der AWS KMS Schlüssel auch die CodeBuild **Service-Organisations-ID** zulassen. Eine Liste der Organisationen finden IDs Sie unter[Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami). Weitere Informationen zu AWS KMS Schlüsseln finden Sie unter [Organisationen zulassen und OUs einen KMS-Schlüssel verwenden](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html#allow-org-ou-to-use-key) im *Amazon EC2 EC2-Benutzerhandbuch*. Um der CodeBuild Organisation die Erlaubnis zur Verwendung eines KMS-Schlüssels zu erteilen, fügen Sie der Schlüsselrichtlinie die folgende Erklärung hinzu:

     ```
     {
         "Sid": "Allow access for organization root",
         "Effect": "Allow",
         "Principal": "*",
         "Action": [
             "kms:Describe*",
             "kms:List*",
             "kms:Get*",
             "kms:Encrypt",
             "kms:Decrypt",
             "kms:ReEncrypt*",
             "kms:GenerateDataKey*",
             "kms:CreateGrant"
         ],
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:PrincipalOrgID": "o-123example"
             }
         }
     }
     ```
   + Erteilen Sie im Feld **Fleet Service Role** die folgenden Amazon EC2 EC2-Berechtigungen:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                    "ec2:DescribeImages",
                    "ec2:DescribeSnapshots"
                 ],
                 "Resource": "*"
             }
         ]
     }
     ```

------

## Einschränkungen von Flotten mit reservierter Kapazität
<a name="fleets.limitations"></a>

Es gibt einige Anwendungsfälle, die von Flotten mit reservierter Kapazität nicht unterstützt werden. Wenn sie Sie betreffen, sollten Sie stattdessen Flotten auf Abruf verwenden:
+ Flotten mit reservierter Kapazität unterstützen keine Kennzahlen zur Build-Auslastung.
+ MacOS-Flotten mit reservierter Kapazität unterstützen keine Debug-Sitzung.

Weitere Informationen zu Grenzwerten und Kontingenten finden Sie unter. [Computerflotten](limits.md#fleet-limits)

# Flotteneigenschaften mit reservierter Kapazität
<a name="fleets.reserved-capacity-fleets"></a>

Eine Flotte mit reservierter Kapazität umfasst die folgenden Eigenschaften. Weitere Informationen zu Flotten mit reservierter Kapazität finden Sie unter[Führen Sie Builds auf Flotten mit reservierter Kapazität aus](fleets.md). 

**Betriebssystem**  
Das Betriebssystem. Die folgenden Betriebssysteme sind verfügbar:  
+ Amazon Linux
+ macOS
+ Windows Server 2019
+ Windows Server 2022

**Architektur**  
Die Prozessorarchitektur. Die folgenden Architekturen sind verfügbar:  
+ x86\$164
+ Arm64

**Umgebungstyp**  
Die Umgebungstypen, die verfügbar sind, wenn **Amazon Linux** ausgewählt ist. Die folgenden Umgebungstypen sind verfügbar:  
+ Linux EC2
+ Linux-GPU

**Instanztyp berechnen**  
Die Rechenkonfigurationen für Flotteninstanzen.    
**Geführte Auswahl**  
Geben Sie verschiedene Berechnungstypen an, indem Sie Einstellungen für vCPU, Arbeitsspeicher und Festplattenspeicher auswählen. Informationen zur Verfügbarkeit von Berechnungstypen nach Regionen finden Sie unter[Informationen zu Umgebungstypen mit reservierter Kapazität](build-env-ref-compute-types.md#environment-reserved-capacity.types).  
**Benutzerdefinierte Instanz**  
Geben Sie den gewünschten Instanztyp manuell an.

**Capacity (Kapazität)**  
Die anfängliche Anzahl der Maschinen, die der Flotte zugewiesen wurden. Sie definiert die Anzahl der Builds, die parallel ausgeführt werden können.

**Verhalten bei Überlauf**  
Definiert das Verhalten, wenn die Anzahl der Builds die Flottenkapazität überschreitet.    
**On-Demand**  
Overflow-Builds werden bei CodeBuild Bedarf ausgeführt.  
Wenn Sie Ihr Überlaufverhalten bei der Erstellung einer VPC-verbundenen Flotte auf On-Demand-Einstellung festlegen möchten, stellen Sie sicher, dass Sie Ihrer Projektservice-Rolle die erforderlichen VPC-Berechtigungen hinzufügen. Weitere Informationen finden Sie unter [Beispiel einer Richtlinienanweisung für den CodeBuild Zugriff auf AWS Dienste, die für die Erstellung einer VPC-Netzwerkschnittstelle erforderlich](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-create-vpc-network-interface) sind.
Wenn Sie Ihr Overflow-Verhalten auf On-Demand-Modus setzen möchten, beachten Sie, dass Overflow-Builds separat in Rechnung gestellt werden, ähnlich wie bei Amazon EC2 auf Abruf. Weitere Informationen finden Sie unter [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).  
**Warteschlange**  
Build-Läufe werden in eine Warteschlange gestellt, bis ein Computer verfügbar ist. Dadurch werden zusätzliche Kosten begrenzt, da keine zusätzlichen Maschinen zugewiesen werden.

**Amazon-Maschinenbilder (AMI)**  
Die Amazon Machine Image (AMI) -Eigenschaften für Ihre Flotte. Die folgenden Eigenschaften werden unterstützt von CodeBuild:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/fleets.reserved-capacity-fleets.html)

**Zusätzliche Konfiguration**    
**VPC — optional**  
Die VPC, auf die Ihre CodeBuild Flotte zugreifen wird. Weitere Informationen finden Sie unter [Verwendung AWS CodeBuild mit Amazon Virtual Private Cloud](vpc-support.md).  
Wenn beim Aufruf der StartBuild API eine Flottenüberschreibung angegeben wird, CodeBuild wird die VPC-Konfiguration des Projekts ignoriert.  
**Subnets**  
Die VPC-Subnetze, die zum Einrichten Ihrer VPC-Konfiguration CodeBuild verwendet werden. Beachten Sie, dass Flotten mit reservierter Kapazität nur ein Subnetz in einer einzigen Availablity Zone unterstützen. Stellen Sie außerdem sicher, dass Ihre Subnetze ein NAT-Gateway enthalten.  
**Sicherheitsgruppen**  
Die VPC-Sicherheitsgruppen, die mit Ihrer VPC CodeBuild verwendet werden. Stellen Sie sicher, dass Ihre Sicherheitsgruppen ausgehende Verbindungen zulassen.  
**Rolle im Flottenservice**  
Definiert die Servicerolle für Ihre Flotte anhand einer vorhandenen Servicerolle in Ihrem Konto.  
**Definieren Sie Proxykonfigurationen — optional**  
Proxykonfigurationen, die die Netzwerkzugriffskontrolle auf Ihre reservierten Kapazitätsinstanzen anwenden. Weitere Informationen finden Sie unter [Verwendung AWS CodeBuild mit einem verwalteten Proxyserver](run-codebuild-in-managed-proxy-server.md).  
Proxykonfigurationen unterstützen VPC, Windows oder macOS nicht.  
**Standardverhalten**  
Definiert das Verhalten des ausgehenden Datenverkehrs.    
**Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf**  
Lässt standardmäßig ausgehenden Verkehr zu allen Zielen zu.  
**Deny (Verweigern)**  
Verweigert standardmäßig ausgehenden Verkehr an alle Ziele.  
**Proxy-Regeln**  
Gibt Zieldomänen an IPs , für die die Netzwerkzugriffskontrolle zugelassen oder verweigert werden soll.

# Stichproben mit reservierter Kapazität AWS CodeBuild
<a name="reserved-capacity-samples"></a>

Diese Beispiele können verwendet werden, um mit Flotten mit reservierter Kapazität zu experimentieren. CodeBuild

**Topics**
+ [Zwischenspeichern einer Stichprobe mit reservierter Kapazität](#reserved-capacity-samples.caching)

## Zwischenspeichern einer Stichprobe mit reservierter Kapazität
<a name="reserved-capacity-samples.caching"></a>

In einem Cache können wiederverwendbare Teile Ihrer Build-Umgebung gespeichert werden, die dann für mehrere Builds verwendet werden können. In diesem Beispiel wurde gezeigt, wie Sie das Caching innerhalb Ihres Build-Projekts mithilfe reservierter Kapazität aktivieren können. Weitere Informationen finden Sie unter [Cache-Builds zur Verbesserung der Leistung](build-caching.md).

Sie können damit beginnen, einen oder mehrere Cache-Modi in Ihren Projekteinstellungen anzugeben:

```
Cache:
        Type: LOCAL
        Modes:
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**Anmerkung**  
Stellen Sie sicher, dass der privilegierte Modus aktiviert ist, um den Docker-Layer-Cache verwenden zu können.

Die Buildspec-Einstellungen Ihres Projekts sollten wie folgt aussehen:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - touch /codebuild/cache/workspace/foobar.txt
            - git checkout -b cached_branch
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1
            - echo testing local custom cache
            - touch foo
            - mkdir bar && ln -s foo bar/foo2
            - mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

Sie können damit beginnen, einen Build mit dem neuen Projekt auszuführen, um den Cache zu laden. Sobald dies abgeschlossen ist, sollten Sie einen weiteren Build mit einer übergeordneten Buildspezifikation starten, ähnlich der folgenden:

```
version: 0.2
      phases:
        build:
          commands:
            - echo testing local source cache
            - git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi
            - ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi
            - echo testing local docker layer cache
            - docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi
            - echo testing local custom cache
            - "[ -f foo ] || exit 1"
            - "[ -L bar/foo2 ] || exit 1"
            - "[ -f bar/bar/foo3 ] || exit 1"
            - "[ -f bar/bar/foo4 ] || exit 1"
      cache:
        paths:
           - './foo'
           - './bar/**/*'
           - './bar/bar/foo3'
```

# Builds stapelweise ausführen
<a name="batch-build"></a>

Sie können AWS CodeBuild es verwenden, um gleichzeitige und koordinierte Builds eines Projekts mit Batch-Builds auszuführen. 

**Topics**
+ [Rolle „Sicherheit“](#batch_security_role)
+ [Batch-Build-Typen](#batch_build_types)
+ [Batch-Berichtsmodus](#batch-report-mode)
+ [Weitere Informationen](#batch_more_info)

## Rolle „Sicherheit“
<a name="batch_security_role"></a>

Stapel-Builds führen eine neue Sicherheitsrolle in der Stapelkonfiguration ein. Diese neue Rolle ist erforderlich, da sie in der Lage sein CodeBuild muss`StartBuild`, die `RetryBuild` Aktionen`StopBuild`, und in Ihrem Namen aufzurufen, um Builds als Teil eines Batches auszuführen. Kunden sollten aus zwei Gründen eine neue Rolle verwenden und nicht dieselbe Rolle, die sie in ihrem Build nutzen:
+ Wenn Sie der Build-Rolle die Berechtigungen `StartBuild`, `StopBuild` und `RetryBuild` erteilen, kann ein einzelnes Build mehr Builds über buildspec zu starten.
+ CodeBuild Batch-Builds enthalten Einschränkungen, die die Anzahl der Builds und Berechnungstypen einschränken, die für die Builds im Batch verwendet werden können. Wenn die Build-Rolle über diese Berechtigungen verfügt, können die Builds selbst diese Einschränkungen möglicherweise umgehen.

## Batch-Build-Typen
<a name="batch_build_types"></a>

CodeBuild unterstützt die folgenden Batch-Build-Typen:

**Topics**
+ [Diagramm erstellen](#batch_build_graph)
+ [Liste erstellen](#batch_build_list)
+ [Matrix erstellen](#batch_build_matrix)
+ [Fanout erstellen](#batch_build_fanout)

### Diagramm erstellen
<a name="batch_build_graph"></a>

Ein Build-Diagramm definiert eine Reihe von Aufgaben, die von anderen Aufgaben im Stapel abhängig sind. 

Das folgende Beispiel definiert ein Build-Diagramm, das eine Abhängigkeitskette erstellt. 

```
batch:
  fast-fail: false
  build-graph:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      depend-on:
        - build1
    - identifier: build3
      env:
        variables:
          BUILD_ID: build3
      depend-on:
        - build2
    - identifier: build4
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build5
      env:
        fleet: fleet_name
```

In diesem Beispiel:
+ `build1`wird zuerst ausgeführt, weil es keine Abhängigkeiten hat.
+ `build2`hat eine Abhängigkeit von`build1`, `build2` wird also nach `build1` Abschluss ausgeführt.
+ `build3`ist abhängig von`build2`, `build3` wird also nach `build2` Abschluss ausgeführt.

Weitere Hinweise zur Buildspec-Syntax von Build Graph finden Sie unter. [`batch/build-graph`](batch-build-buildspec.md#build-spec.batch.build-graph)

### Liste erstellen
<a name="batch_build_list"></a>

Eine Build-Liste definiert eine Reihe von Aufgaben, die parallel ausgeführt werden. 

Das folgende Beispiel definiert eine Build-Liste. Die `build2` Builds `build1` und werden parallel ausgeführt.

```
batch:
  fast-fail: false
  build-list:
    - identifier: build1
      env:
        variables:
          BUILD_ID: build1
      ignore-failure: false
    - identifier: build2
      buildspec: build2.yml
      env:
        variables:
          BUILD_ID: build2
      ignore-failure: true
    - identifier: build3
      env:
        compute-type: ARM_LAMBDA_1GB
    - identifier: build4
      env:
        fleet: fleet_name
    - identifier: build5
      env:
        compute-type: GENERAL_LINUX_XLAGRE
```

Weitere Hinweise zur Buildspec-Syntax der Buildliste finden Sie unter. [`batch/build-list`](batch-build-buildspec.md#build-spec.batch.build-list)

### Matrix erstellen
<a name="batch_build_matrix"></a>

Eine Build-Matrix definiert Aufgaben mit unterschiedlichen Konfigurationen, die parallel ausgeführt werden. CodeBuild erstellt für jede mögliche Konfigurationskombination einen separaten Build. 

Das folgende Beispiel zeigt eine Buildmatrix mit zwei Buildspec-Dateien und drei Werten für eine Umgebungsvariable.

```
batch:
  build-matrix:
    static:
      ignore-failure: false
    dynamic:
      buildspec: 
        - matrix1.yml
        - matrix2.yml
      env:
        variables:
          MY_VAR:
            - VALUE1
            - VALUE2
            - VALUE3
```

In diesem Beispiel werden sechs Builds CodeBuild erstellt:
+ `matrix1.yml` mit `$MY_VAR=VALUE1`
+ `matrix1.yml` mit `$MY_VAR=VALUE2`
+ `matrix1.yml` mit `$MY_VAR=VALUE3`
+ `matrix2.yml` mit `$MY_VAR=VALUE1`
+ `matrix2.yml` mit `$MY_VAR=VALUE2`
+ `matrix2.yml` mit `$MY_VAR=VALUE3`

Jeder Build hat die folgenden Einstellungen:
+ `ignore-failure`eingestellt auf `false`
+ `env/type`eingestellt auf `LINUX_CONTAINER`
+ `env/image`eingestellt auf `aws/codebuild/amazonlinux-x86_64-standard:4.0`
+ `env/privileged-mode`eingestellt auf `true`

Diese Builds laufen parallel.

Weitere Hinweise zur Buildspec-Syntax der Buildmatrix finden Sie unter. [`batch/build-matrix`](batch-build-buildspec.md#build-spec.batch.build-matrix)

### Fanout erstellen
<a name="batch_build_fanout"></a>

Ein Build-Fanout definiert eine Aufgabe, die im Batch in mehrere Builds aufgeteilt wird. Dies kann für die parallel Ausführung von Tests verwendet werden. CodeBuild erstellt einen separaten Build für jeden Shard von Testfällen, der auf dem im `parallelism` Feld festgelegten Wert basiert.

Das folgende Beispiel definiert ein Build-Fanout, das fünf Builds erstellt, die parallel ausgeführt werden.

```
version: 0.2

batch:
   fast-fail: false 
   build-fanout:
     parallelism: 5
     ignore-failure: false

phases:
  install:
    commands:
      - npm install
   build:
    commands:
      - mkdir -p test-results
      - cd test-results
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'
```

In diesem Beispiel werden unter der Annahme, dass 100 Tests ausgeführt werden müssen, fünf Builds CodeBuild erstellt, die jeweils 20 Tests parallel ausführen.

Weitere Hinweise zur Buildgraph-Buildspec-Syntax finden Sie unter. [`batch/build-fanout`](batch-build-buildspec.md#build-spec.batch.build-fanout)

## Batch-Berichtsmodus
<a name="batch-report-mode"></a>

Wenn der Quellanbieter für dein Projekt Bitbucket oder GitHub Enterprise ist und dein Projekt so konfiguriert ist, dass Build-Status an den Quellanbieter gemeldet werden, kannst du auswählen, wie deine Batch-Build-Status an den Quellanbieter gesendet werden sollen. GitHub Du kannst wählen, ob die Status als ein einziger aggregierter Statusbericht für den Batch gesendet werden sollen oder ob der Status jedes Builds im Batch einzeln gemeldet werden soll.

Weitere Informationen finden Sie unter den folgenden Themen:
+ [Batch-Konfiguration (erstellen)](create-project.md#create-project-console-batch-config)
+ [Batch-Konfiguration (Update)](change-project.md#change-project-console-batch-config)

## Weitere Informationen
<a name="batch_more_info"></a>

Weitere Informationen finden Sie unter den folgenden Themen:
+ [Buildspec-Referenz für Batch-Build](batch-build-buildspec.md)
+ [Batch-Konfiguration](create-project.md#create-project-console-batch-config)
+ [Führen Sie einen Batch-Build (AWS CLI) aus](run-batch-build-cli.md)
+ [Stoppen Sie Batch-Builds AWS CodeBuild](stop-batch-build.md)

# Führen Sie parallel Tests in Batch-Builds aus
<a name="parallel-test"></a>

Sie können es verwenden AWS CodeBuild , um parallel Tests in Batch-Builds auszuführen. Die parallele Testausführung ist ein Testansatz, bei dem mehrere Testfälle gleichzeitig in verschiedenen Umgebungen, Computern oder Browsern ausgeführt werden, anstatt sequentiell ausgeführt zu werden. Dieser Ansatz kann die Gesamtdauer der Testausführung erheblich reduzieren und die Testeffizienz verbessern. CodeBuildIn können Sie Ihre Tests auf mehrere Umgebungen aufteilen und gleichzeitig ausführen.

Zu den wichtigsten Vorteilen der parallel Testausführung gehören:

1. **Verkürzte Ausführungszeit** — Tests, die nacheinander Stunden dauern würden, können innerhalb von Minuten abgeschlossen werden.

1. **Bessere Ressourcennutzung — Nutzt** die verfügbaren Computerressourcen effizient.

1. **Früheres Feedback** — Schnellerer Abschluss des Tests bedeutet schnelleres Feedback an Entwickler.

1. **Kostengünstig** — Spart auf lange Sicht sowohl Zeit als auch Rechenkosten.

Bei der Implementierung der parallel Testausführung werden üblicherweise zwei Hauptansätze in Betracht gezogen: separate Umgebungen und Multithreading. Beide Methoden zielen zwar auf eine gleichzeitige Testausführung ab, unterscheiden sich jedoch erheblich in ihrer Implementierung und Effektivität. Separate Umgebungen erzeugen isolierte Instanzen, in denen jede Testsuite unabhängig ausgeführt wird, während Multithreading mehrere Tests gleichzeitig innerhalb desselben Prozessraums unter Verwendung verschiedener Threads ausführt.

Zu den wichtigsten Vorteilen separater Umgebungen gegenüber Multithreading gehören:

1. **Isolierung** — Jeder Test wird in einer vollständig isolierten Umgebung ausgeführt, wodurch Interferenzen zwischen den Tests vermieden werden.

1. **Ressourcenkonflikte** — Keine Konkurrenz um gemeinsam genutzte Ressourcen, wie sie beim Multithreading häufig auftritt.

1. **Stabilität** — Weniger anfällig für Rennbedingungen und Synchronisationsprobleme.

1. **Einfacheres Debuggen** — Wenn Tests fehlschlagen, ist es einfacher, die Ursache zu identifizieren, da jede Umgebung unabhängig ist.

1. **Statusverwaltung** — Probleme mit gemeinsam genutzten Zuständen, die Multithread-Tests betreffen, lassen sich mühelos verwalten.

1. **Bessere Skalierbarkeit** — Es können problemlos weitere Umgebungen ohne Komplexität hinzugefügt werden.

**Topics**
+ [Support in AWS CodeBuild](#parallel-test-support)
+ [parallel Testausführung in Batch-Builds aktivieren](parallel-test-enable.md)
+ [Verwenden Sie den `codebuild-tests-run` CLI-Befehl](parallel-test-tests-run.md)
+ [Verwenden Sie den `codebuild-glob-search` CLI-Befehl](parallel-test-glob-search.md)
+ [Über das Aufteilen von Tests](parallel-test-splitting.md)
+ [Führen Sie einzelne Build-Berichte automatisch zusammen](parallel-test-auto-merge.md)
+ [Beispiel für parallele Testausführung für verschiedene Testframeworks](sample-parallel-test.md)

## Support in AWS CodeBuild
<a name="parallel-test-support"></a>

AWS CodeBuild bietet robuste Unterstützung für die parallel Testausführung durch seine Batch-Build-Funktion, die speziell für die Ausführung in separaten Umgebungen entwickelt wurde. Diese Implementierung passt perfekt zu den Vorteilen isolierter Testumgebungen.

**Batch-Build mit Testverteilung**  
CodeBuildDie Batch-Build-Funktionalität ermöglicht die Erstellung mehrerer Build-Umgebungen, die gleichzeitig ausgeführt werden. Jede Umgebung arbeitet als vollständig isolierte Einheit mit eigenen Rechenressourcen, eigener Laufzeitumgebung und Abhängigkeiten. Über die Batch-Build-Konfiguration können Sie angeben, wie viele parallel Umgebungen sie benötigen und wie die Tests auf sie verteilt werden sollen.

**Testen Sie Sharding CLI**  
CodeBuild enthält über sein CLI-Tool einen integrierten Testverteilungsmechanismus`codebuild-tests-run`, der Tests automatisch in verschiedene Umgebungen unterteilt.

**Aggregation von Berichten**  
Eine der wichtigsten Stärken der Implementierung CodeBuild ist die Fähigkeit, die Aggregation von Testergebnissen nahtlos zu handhaben. Tests werden zwar in separaten Umgebungen ausgeführt, sammelt aber CodeBuild automatisch die Testberichte aus jeder Umgebung und kombiniert sie zu einem einheitlichen Testbericht auf Batch-Build-Ebene. Diese Konsolidierung bietet einen umfassenden Überblick über die Testergebnisse und behält gleichzeitig die Effizienzvorteile der parallel Ausführung bei.

Das folgende Diagramm erklärt das vollständige Konzept der parallel Testausführung in AWS CodeBuild.

![\[Konzeptdiagramm der parallel Testausführung.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/parallel-test.png)


# parallel Testausführung in Batch-Builds aktivieren
<a name="parallel-test-enable"></a>

Um Tests parallel auszuführen, aktualisieren Sie die Batch-Build-Buildspec-Datei so, dass sie das Build-Fanout-Feld und die Anzahl der parallel Builds enthält, um die Testsuite in dem Feld aufzuteilen, wie unten gezeigt. `parallelism` Das `parallelism` Feld gibt an, wie viele unabhängige Executoren eingerichtet sind, um die Testsuite auszuführen.

Um die Tests in mehreren parallel Ausführungsumgebungen auszuführen, setzen Sie das `parallelism` Feld auf einen Wert größer als Null. Im Beispiel unten `parallelism` ist es auf fünf gesetzt, was bedeutet, dass fünf identische Builds CodeBuild gestartet werden, die einen Teil der Testsuite parallel ausführen.

Sie können den [codebuild-tests-run](parallel-test-tests-run.md)CLI-Befehl verwenden, um Ihre Tests aufzuteilen und auszuführen. Ihre Testdateien werden aufgeteilt und ein Teil Ihrer Tests wird in jedem Build ausgeführt. Dies reduziert die Gesamtzeit, die für die Ausführung der gesamten Testsuite benötigt wird. Im folgenden Beispiel werden die Tests in fünf Teile aufgeteilt und die Teilungspunkte werden anhand des Namens der Tests berechnet.

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  install:
    commands:
      - npm install jest-junit --save-dev
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - |
        codebuild-tests-run \
         --test-command 'npx jest --runInBand --coverage' \
         --files-search "codebuild-glob-search '**/_tests_/**/*.test.js'" \
         --sharding-strategy 'equal-distribution'

  post_build:
    commands:
      - codebuild-glob-search '**/*.xml'  
      - echo "Running post-build steps..."
      - echo "Build completed on `date`"

reports:
  test-reports:
    files:
      - '**/junit.xml'               
    base-directory: .
    discard-paths: yes           
    file-format: JUNITXML
```

Wenn Berichte für Build-Fanout-Build konfiguriert sind, werden die Testberichte für jeden Build separat generiert. Diese können auf der Registerkarte **Berichte** der entsprechenden Builds in der Konsole eingesehen werden. AWS CodeBuild 

Weitere Hinweise zur Ausführung parallel Tests im Batch finden Sie unter[Beispiel für parallele Testausführung für verschiedene Testframeworks](sample-parallel-test.md).

# Verwenden Sie den `codebuild-tests-run` CLI-Befehl
<a name="parallel-test-tests-run"></a>

AWS CodeBuild stellt CLI bereit, die den Testbefehl und den Speicherort der Testdatei als Eingabe verwendet. Die CLI mit diesen Eingaben teilt die Tests in eine Anzahl von Shards auf, wie im `parallelism` Feld angegeben, basierend auf den Testdateinamen. Die Zuweisung der Testdateien zum Shard wird durch die Sharding-Strategie entschieden.

```
codebuild-tests-run \
    --files-search "codebuild-glob-search '**/__tests__/*.js'" \
    --test-command 'npx jest --runInBand --coverage' \
    --sharding-strategy 'equal-distribution'
```

In der folgenden Tabelle werden die Felder für den `codebuild-tests-run` CLI-Befehl beschrieben.


| Feldname | Typ | Erforderlich oder optional | Definition | 
| --- | --- | --- | --- | 
|  `test-command`  |  Zeichenfolge  |  Erforderlich  |  Dieser Befehl wird zum Ausführen der Tests verwendet.  | 
|  `files-search`  |  Zeichenfolge  |  Erforderlich  |  Dieser Befehl gibt eine Liste von Testdateien. Sie können den AWS CodeBuild bereitgestellten [codebuild-glob-search](parallel-test-glob-search.md)CLI-Befehl oder ein anderes Dateisuchtool Ihrer Wahl verwenden.  Stellen Sie sicher, dass der `files-search` Befehl Dateinamen ausgibt, die jeweils durch eine neue Zeile getrennt sind.   | 
|  `sharding-strategy`  |  Enum  |  Optional  |  Zulässige Werte: `equal-distribution` (Standard), `stability` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/parallel-test-tests-run.html) Weitere Informationen finden Sie unter [Über das Aufteilen von Tests](parallel-test-splitting.md).  | 

Die `codebuild-tests-run` CLI identifiziert zunächst die Liste der Testdateien mithilfe des im `files-search` Parameter angegebenen Befehls. Anschließend bestimmt sie unter Verwendung der angegebenen Sharding-Strategie eine Teilmenge von Testdateien, die für den aktuellen Shard (Umgebung) bestimmt sind. Schließlich wird diese Teilmenge von Testdateien in eine durch Leerzeichen getrennte Liste formatiert und vor der Ausführung an das Ende des im Parameter angegebenen Befehls angehängt. `test-command`

Für Testframeworks, die keine durch Leerzeichen getrennten Listen akzeptieren, bietet die `codebuild-tests-run` CLI über die `CODEBUILD_CURRENT_SHARD_FILES` Umgebungsvariable eine flexible Alternative. Diese Variable enthält eine durch Zeilenumbrüche getrennte Liste von Testdateipfaden, die für den aktuellen Build-Shard bestimmt sind. Durch die Nutzung dieser Umgebungsvariablen können Sie sich leicht an verschiedene Anforderungen des Test-Frameworks anpassen und dabei auch diejenigen berücksichtigen, die Eingabeformate erwarten, die sich von durch Leerzeichen getrennten Listen unterscheiden. Darüber hinaus können Sie die Namen der Testdateien auch gemäß den Anforderungen des Testframeworks formatieren. Das Folgende ist ein Beispiel für die Verwendung von `CODEBUILD_CURRENT_SHARD_FILES` unter Linux mit dem Django-Framework. Hier `CODEBUILD_CURRENT_SHARD_FILES` wird verwendet, um Dateipfade in *Punktnotation* abzurufen, die von Django unterstützt werden:

```
codebuild-tests-run \
    —files-search "codebuild-glob-search '/tests/test_.py'" \
    —test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \
    —sharding-strategy 'equal-distribution'
```

**Anmerkung**  
Beachten Sie, dass die `CODEBUILD_CURRENT_SHARD_FILES` Umgebungsvariable nur innerhalb des Bereichs der `codebuild-tests-run` CLI verwendet werden kann.  
Wenn Sie den Befehl `CODEBUILD_CURRENT_SHARD_FILES` inside test-command verwenden, setzen Sie ihn außerdem `CODEBUILD_CURRENT_SHARD_FILES` in doppelte Anführungszeichen, wie im obigen Beispiel gezeigt.

# Verwenden Sie den `codebuild-glob-search` CLI-Befehl
<a name="parallel-test-glob-search"></a>

AWS CodeBuild bietet ein integriertes CLI-Tool namens`codebuild-glob-search`, mit dem Sie auf der Grundlage eines oder mehrerer Glob-Muster nach Dateien in Ihrem Arbeitsverzeichnis suchen können. Dieses Tool kann besonders nützlich sein, wenn Sie Tests für bestimmte Dateien oder Verzeichnisse in Ihrem Projekt ausführen möchten.

## Usage
<a name="parallel-test-glob-search.usage"></a>

Die `codebuild-glob-search` CLI hat die folgende Verwendungssyntax:

```
codebuild-glob-search <glob_pattern1> [<glob_pattern2> ...]
```
+ `<glob_pattern1>``<glob_pattern2>`, usw.: Ein oder mehrere Glob-Muster, die mit den Dateien in Ihrem Arbeitsverzeichnis abgeglichen werden sollen.
+ `*`: Entspricht einer beliebigen Zeichenfolge (mit Ausnahme von Pfadtrennzeichen).
+ `**`: Entspricht einer beliebigen Zeichenfolge (einschließlich Pfadtrennzeichen).

**Anmerkung**  
Stellen Sie sicher, dass die globale Zeichenfolge Anführungszeichen enthält. Verwenden Sie den Befehl, um die Ergebnisse des Mustervergleichs zu überprüfen. `echo`  

```
version: 0.2

phases:
  build:
    commands:
      - echo $(codebuild-glob-search '**/__tests__/*.js')
      - codebuild-glob-search '**/__tests__/*.js' | xargs -n 1 echo
```

## Ausgabe
<a name="parallel-test-glob-search.output"></a>

Die CLI gibt eine durch Zeilenumbrüche getrennte Liste von Dateipfaden aus, die den angegebenen Glob-Mustern entsprechen. Die zurückgegebenen Dateipfade sind relativ zum Arbeitsverzeichnis.

Wenn keine Dateien gefunden werden, die den angegebenen Mustern entsprechen, gibt die CLI eine Meldung aus, dass keine Dateien gefunden wurden.

Beachten Sie, dass Verzeichnisse, die aufgrund eines bestimmten Musters gefunden wurden, von den Suchergebnissen ausgeschlossen werden.

## Beispiel
<a name="parallel-test-glob-search.example"></a>

Wenn Sie nur nach Dateien im Testverzeichnis und seinen Unterverzeichnissen mit einer `.js` Erweiterung suchen möchten, können Sie den folgenden Befehl mit der `codebuild-glob-search` CLI verwenden:

```
codebuild-glob-search '**/__tests__/*.js'
```

Dieser Befehl sucht nach allen Dateien mit einer `.js` Erweiterung innerhalb des `__tests__` Verzeichnisses und seiner Unterverzeichnisse, wie im Muster angegeben.

# Über das Aufteilen von Tests
<a name="parallel-test-splitting"></a>

AWS CodeBuild Mit der Funktion zum Aufteilen von Tests können Sie die Ausführung Ihrer Testsuite auf mehrere Recheninstanzen parallelisieren und so die gesamte Testlaufzeit reduzieren. Diese Funktion wird über die Batch-Konfiguration in Ihren CodeBuild Projekteinstellungen und das `codebuild-tests-run` Hilfsprogramm in Ihrer Buildspec-Datei aktiviert.

Die Tests werden auf der Grundlage der angegebenen Sharding-Strategie aufgeteilt. CodeBuild bietet zwei Sharding-Strategien, wie unten beschrieben:

Gleichmäßige Verteilung  
Die `equal-distribution` Sharding-Strategie unterteilt die Tests auf der Grundlage der alphabetischen Reihenfolge der Testdateinamen auf parallel Builds. Bei diesem Ansatz werden zuerst die Testdateien sortiert und dann mithilfe einer Methode verteilt, die auf Blöcken basiert. Dabei wird sichergestellt, dass ähnliche Dateien zu Testzwecken gruppiert werden. Es wird empfohlen, wenn es sich um einen relativ kleinen Satz von Testdateien handelt. Diese Methode zielt zwar darauf ab, jedem Shard ungefähr die gleiche Anzahl von Dateien zuzuweisen, mit einem maximalen Unterschied von eins, garantiert jedoch keine Stabilität. Wenn Testdateien in nachfolgenden Builds hinzugefügt oder entfernt werden, kann sich die Verteilung vorhandener Dateien ändern, was möglicherweise zu einer Neuzuweisung zwischen den Shards führen kann.

Stabilität  
Die `stability` Sharding-Strategie verwendet einen konsistenten Hashing-Algorithmus, um Tests auf mehrere Shards aufzuteilen und so sicherzustellen, dass die Dateiverteilung stabil bleibt. Wenn neue Dateien hinzugefügt oder entfernt werden, stellt dieser Ansatz sicher, dass die vorhandenen file-to-shard Zuweisungen weitgehend unverändert bleiben. Für große Testsuiten wird empfohlen, die Stabilitätsoption zu verwenden, um die Tests gleichmäßig auf die Shards zu verteilen. Dieser Mechanismus zielt auf eine nahezu gleichmäßige Verteilung ab und stellt sicher, dass jeder Shard eine ähnliche Anzahl von Dateien mit nur minimaler Varianz erhält. Die Stabilitätsstrategie garantiert zwar keine ideale Gleichverteilung, bietet aber eine nahezu gleichmäßige Verteilung, wodurch die Konsistenz der Dateizuweisungen zwischen den Builds gewahrt bleibt, auch wenn Dateien hinzugefügt oder entfernt werden.

Um das Testsplitting zu aktivieren, müssen Sie den Batch-Bereich in Ihren CodeBuild Projekteinstellungen konfigurieren und dabei die gewünschte `parallelism` Stufe und andere relevante Parameter angeben. Darüber hinaus müssen Sie das `codebuild-tests-run` Hilfsprogramm zusammen mit den entsprechenden Testbefehlen und der Aufteilungsmethode in Ihre Buildspec-Datei aufnehmen.

# Führen Sie einzelne Build-Berichte automatisch zusammen
<a name="parallel-test-auto-merge"></a>

 AWS CodeBuild Unterstützt bei Fanout-Batch-Builds das automatische Zusammenführen einzelner Build-Berichte zu einem konsolidierten Bericht auf Batch-Ebene. Diese Funktion bietet einen umfassenden Überblick über die Testergebnisse und die Codeabdeckung für alle Builds innerhalb eines Batches.

## Funktionsweise
<a name="parallel-test-auto-merge.how"></a>

Bei der Ausführung von `fanout` Batch-Builds generiert jeder einzelne Build [Testberichte](test-reporting.md). CodeBuild konsolidiert dann automatisch identische Berichte aus verschiedenen Builds zu einem einheitlichen Bericht, der an den Batch-Build angehängt wird. Diese konsolidierten Berichte sind über das [ BatchGetBuildBatches](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BatchGetBuildBatches.html#CodeBuild-BatchGetBuildBatches-response-buildBatches)`reportArns`API-Feld leicht zugänglich und können auch auf der Registerkarte „**Berichte**“ der Konsole eingesehen werden. Diese Zusammenführungsfunktion erstreckt sich auch auf automatisch erkannte Berichte.

Konsolidierte Berichte werden unter [Berichtsgruppen](test-report-group.md) erstellt, die entweder in der Buildspec angegeben sind oder von automatisch erkannt werden. CodeBuild Sie können die Trends der zusammengeführten Berichte direkt unter diesen Berichtsgruppen analysieren und so wertvolle Einblicke in die allgemeine Build-Performance und Qualitätskennzahlen für historische Builds desselben Build-Batch-Projekts gewinnen.

Für jeden einzelnen Build innerhalb des Batches CodeBuild werden automatisch separate Berichtsgruppen erstellt. Diese folgen einer bestimmten Benennungskonvention und kombinieren den Namen der Batch-Build-Berichtsgruppe mit dem Suffix von`BuildFanoutShard<shard_number>`, wobei das `shard_number` für die Nummer des Shards steht, in dem die Berichtsgruppe erstellt wurde. Diese Organisation ermöglicht es Ihnen, Trends sowohl auf konsolidierter als auch auf individueller Build-Ebene zu verfolgen und zu analysieren, sodass Sie die Build-Prozesse flexibel überwachen und bewerten können.

Der Batch-Build-Bericht folgt derselben Struktur wie die [einzelnen Build-Berichte](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Report.html). Die folgenden Schlüsselfelder auf der Registerkarte „**Bericht**“ sind spezifisch für Batch-Build-Berichte:

**Status des Batch-Build-Berichts**  
Der Status von Batch-Build-Berichten folgt je nach Berichtstyp bestimmten Regeln:  
+ Testberichte:
  + Erfolgreich: Der Status wird auf erfolgreich gesetzt, wenn alle einzelnen Build-Berichte erfolgreich waren.
  + Fehlgeschlagen: Der Status wird auf „Fehlgeschlagen“ gesetzt, wenn ein einzelner Build-Bericht fehlgeschlagen ist.
  + Unvollständig: Der Status wird als unvollständig markiert, wenn ein einzelner Build-Bericht fehlt oder einen unvollständigen Status hat.
+ Berichte zur Codeabdeckung:
  + Vollständig: Der Status wird auf abgeschlossen gesetzt, wenn alle einzelnen Build-Berichte abgeschlossen sind.
  + Fehlgeschlagen: Der Status wird auf „Fehlgeschlagen“ gesetzt, wenn ein einzelner Build-Bericht fehlgeschlagen ist.
  + Unvollständig: Der Status wird als unvollständig markiert, wenn ein einzelner Build-Bericht fehlt oder einen unvollständigen Status hat.

**Zusammenfassung des Tests**  
Der zusammengeführte Testbericht konsolidiert die folgenden Felder aus allen einzelnen Build-Berichten:  
+ duration-in-nano-seconds: Maximale Testdauer in Nanosekunden für alle einzelnen Build-Berichte.
+ total: Die kombinierte Anzahl aller Testfälle, summiert die Gesamtzahl der Tests aus jedem Build.
+ Statusanzahl: Bietet eine konsolidierte Ansicht der Teststatuswerte wie „bestanden“, „Fehlgeschlagen“ oder „Übersprungen“, die berechnet werden, indem die Anzahl der einzelnen Statustypen für alle einzelnen Builds aggregiert wird.

**Zusammenfassung der Codeabdeckung**  
Der zusammengeführte Bericht zur Codeabdeckung kombiniert Felder aus allen einzelnen Builds anhand der folgenden Berechnungen:  
+ abgedeckte Branchen: Summe aller abgedeckten Branchen aus einzelnen Berichten.
+ Fehlende Filialen: Summe aller verpassten Filialen aus einzelnen Berichten.
+ branch-coverage-percentage: `(Total covered branches / Total branches) * 100`
+ abgedeckte Zeilen: Summe aller abgedeckten Zeilen aus einzelnen Berichten.
+ verpasste Zeilen: Summe aller verpassten Zeilen aus einzelnen Berichten.
+ lines-coverage-percentage: `(Total covered lines / Total lines) * 100`

**Ausführungs-ID**  
Der Batch-Build-ARN.

**Testfälle**  
Der zusammengeführte Bericht enthält eine konsolidierte Liste aller Testfälle aus einzelnen Builds, auf die sowohl über die [DescribeTestCases](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeTestCases.html)API als auch über den Batch-Build-Bericht in der Konsole zugegriffen werden kann.

**Geltungsbereiche des Codes**  
Der zusammengeführte Codeabdeckungsbericht enthält konsolidierte Informationen zur Abdeckung von Leitungen und Filialen für jede Datei in allen einzelnen Builds, auf die sowohl über die [DescribeCodeCoverages](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeCodeCoverages.html)API als auch über den Batch-Build-Bericht in der Konsole zugegriffen werden kann. Hinweis: Für Dateien, die von mehreren Testdateien abgedeckt werden, die auf verschiedene Shards verteilt sind, verwendet der zusammengeführte Bericht die folgenden Auswahlkriterien:  

1. Die Primärauswahl basiert auf der höchsten Linienabdeckung unter den Shards.

1. Wenn die Linienabdeckung bei mehreren Shards gleich ist, wird der Shard mit der höchsten Zweigabdeckung ausgewählt.

# Beispiel für parallele Testausführung für verschiedene Testframeworks
<a name="sample-parallel-test"></a>

Sie können den `codebuild-tests-run` CLI-Befehl verwenden, um Ihre Tests auf parallel Ausführungsumgebungen aufzuteilen und auszuführen. Der folgende Abschnitt enthält `buildspec.yml` Beispiele für verschiedene Frameworks, die die Verwendung des `codebuild-tests-run` Befehls veranschaulichen.
+ Jedes der folgenden Beispiele umfasst eine `parallelism` Stufe von fünf, was bedeutet, dass fünf identische Ausführungsumgebungen erstellt werden, auf die Sie Ihre Tests verteilen können. Sie können eine `parallelism` Stufe auswählen, die zu Ihrem Projekt passt, indem Sie den `parallelism` Wert im `build-fanout` Abschnitt ändern.
+ Jedes Beispiel unten zeigt, wie Sie Ihre Tests so konfigurieren, dass sie nach dem Namen der Testdatei aufgeteilt werden, was standardmäßig der Fall ist. Dadurch werden die Tests gleichmäßig auf die parallel Ausführungsumgebungen verteilt.

Bevor Sie beginnen, finden Sie [Führen Sie parallel Tests in Batch-Builds aus](parallel-test.md) weitere Informationen unter.

Eine vollständige Liste der Optionen bei der Verwendung des `codebuild-tests-run` CLI-Befehls finden Sie unter[Verwenden Sie den `codebuild-tests-run` CLI-Befehl](parallel-test-tests-run.md).

**Topics**
+ [Konfigurieren Sie parallel Tests mit Django](sample-parallel-test-django.md)
+ [Konfigurieren Sie parallel Tests mit Elixir](sample-parallel-test-elixir.md)
+ [parallel Tests mit Go konfigurieren](sample-parallel-test-go.md)
+ [parallel Tests mit Java (Maven) konfigurieren](sample-parallel-test-java-maven.md)
+ [parallel Tests mit Javascript konfigurieren (Jest)](sample-parallel-test-javascript.md)
+ [Konfigurieren Sie parallel Tests mit Kotlin](sample-parallel-test-kotlin.md)
+ [Konfigurieren Sie parallel Tests mit PHPUnit](sample-parallel-test-phpunit.md)
+ [Konfigurieren Sie parallel Tests mit Pytest](sample-parallel-test-python.md)
+ [Konfigurieren Sie parallel Tests mit Ruby (Cucumber)](sample-parallel-test-ruby-cucumber.md)
+ [parallel Tests mit Ruby (RSpec) konfigurieren](sample-parallel-test-ruby.md)

# Konfigurieren Sie parallel Tests mit Django
<a name="sample-parallel-test-django"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Django auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - sudo yum install -y python3 python3-pip 
      - python3 -m ensurepip --upgrade 
      - python3 -m pip install django
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Django Tests'
      - |
        codebuild-tests-run \
         --test-command 'python3 manage.py test $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed -E "s/\//__/g; s/\.py$//; s/__/./g")' \ 
         --files-search "codebuild-glob-search '**/tests/*test_*.py'" \
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo 'Test execution completed'
```

Das obige Beispiel zeigt die Verwendung der Umgebungsvariablen`CODEBUILD_CURRENT_SHARD_FILES`. `CODEBUILD_CURRENT_SHARD_FILES`Wird verwendet, um Dateipfade mit Punktnotation abzurufen, die von Django unterstützt werden. Verwenden Sie doppelte Anführungszeichen `CODEBUILD_CURRENT_SHARD_FILES` innerhalb von Anführungszeichen, wie oben gezeigt.

# Konfigurieren Sie parallel Tests mit Elixir
<a name="sample-parallel-test-elixir"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Elixir auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5

phases:
  install:
    commands:
      - echo 'Installing Elixir dependencies'
      - sudo apt update
      - sudo DEBIAN_FRONTEND=noninteractive apt install -y elixir
      - elixir --version
      - mix --version
  pre_build:
    commands:
      - echo 'Prebuild'
  build:
    commands:
      - echo 'Running Elixir Tests'
      - |
        codebuild-tests-run \
         --test-command 'mix test' \
         --files-search "codebuild-glob-search '**/test/**/*_test.exs'" \ 
         --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# parallel Tests mit Go konfigurieren
<a name="sample-parallel-test-go"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Go auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Fetching Go version'
      - go version
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running go Tests'
      - go mod init calculator
      - cd calc
      - |
        codebuild-tests-run \
         --test-command "go test -v calculator.go" \
         --files-search "codebuild-glob-search '**/*test.go'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Im obigen Beispiel enthält die `calculator.go` Funktion einfache mathematische Funktionen zum Testen und alle Testdateien und `calculator.go` Dateien befinden sich im `calc` Ordner.

# parallel Tests mit Java (Maven) konfigurieren
<a name="sample-parallel-test-java-maven"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Java auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false 
  build-fanout:
    parallelism: 5
    ignore-failure: false
    
phases:
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo "Running mvn test"
      - |
        codebuild-tests-run \
          --test-command 'mvn test -Dtest=$(echo "$CODEBUILD_CURRENT_SHARD_FILES" | sed "s|src/test/java/||g; s/\.java//g; s|/|.|g; s/ /,/g" | tr "\n" "," | sed "s/,$//")' \
          --files-search "codebuild-glob-search '**/test/**/*.java'"
         
  post_build:
    commands:
      - echo "Running post-build steps..."
      - echo "Test execution completed"
```

Im angegebenen Beispiel `CODEBUILD_CURRENT_SHARD_FILES` enthält die Umgebungsvariable Testdateien im aktuellen Shard, getrennt durch Zeilenumbrüche. Diese Dateien werden in eine durch Kommas getrennte Liste von Klassennamen in dem Format konvertiert, das vom Parameter für Maven akzeptiert wird. `-Dtest`

# parallel Tests mit Javascript konfigurieren (Jest)
<a name="sample-parallel-test-javascript"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Javascript auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: true
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Node.js dependencies'
      - apt-get update
      - apt-get install -y nodejs
      - npm install
      - npm install --save-dev jest-junit
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running JavaScript Tests'
      - |
         codebuild-tests-run \
          --test-command "npx jest" \
          --files-search "codebuild-glob-search '**/test/**/*.test.js'" \
          --sharding-strategy 'stability'
    post_build:
      commands:
        - echo 'Test execution completed'
```

# Konfigurieren Sie parallel Tests mit Kotlin
<a name="sample-parallel-test-kotlin"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Kotlin auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 2
    ignore-failure: false

phases:
  install:
    runtime-versions:
      java: corretto11 
    commands:
      - echo 'Installing dependencies'
      - KOTLIN_VERSION="1.8.20" # Replace with your desired version
      - curl -o kotlin-compiler.zip -L "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip"
      - unzip kotlin-compiler.zip -d /usr/local
      - export PATH=$PATH:/usr/local/kotlinc/bin
      - kotlin -version
      - curl -O https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.8.2/junit-platform-console-standalone-1.8.2.jar
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Kotlin Tests'
      - |
        codebuild-tests-run \
          --test-command 'kotlinc src/main/kotlin/*.kt $(echo "$CODEBUILD_CURRENT_SHARD_FILES" | tr "\n" " ") -d classes -cp junit-platform-console-standalone-1.8.2.jar' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
      - |
        codebuild-tests-run \
          --test-command '
            java -jar junit-platform-console-standalone-1.8.2.jar --class-path classes \
              $(for file in $CODEBUILD_CURRENT_SHARD_FILES; do
                 class_name=$(basename "$file" .kt)
                 echo "--select-class $class_name"
               done)
          ' \
          --files-search "codebuild-glob-search 'src/test/kotlin/*.kt'"
  post_build:
    commands:
      - echo "Test execution completed"
```

Im obigen Beispiel wird die `codebuild-tests-run` CLI zweimal verwendet. Während des ersten Laufs kompiliert Kotlinc die Dateien. Die `CODEBUILD_CURRENT_SHARD_FILES` Variable ruft die dem aktuellen Shard zugewiesenen Testdateien ab, die dann in eine durch Leerzeichen getrennte Liste umgewandelt werden. JUnit Führt im zweiten Lauf die Tests aus. Ruft erneut `CODEBUILD_CURRENT_SHARD_FILES` die Testdateien ab, die dem aktuellen Shard zugewiesen sind, aber diesmal werden sie in Klassennamen umgewandelt.

# Konfigurieren Sie parallel Tests mit PHPUnit
<a name="sample-parallel-test-phpunit"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung PHPUnit auf einer Linux-Plattform zeigt:

```
version: 0.2
 
batch:
   fast-fail: false
   build-fanout:
     parallelism: 5
     ignore-failure: false
 
phases:
   install:
     commands:
       - echo 'Install dependencies'
       - composer require --dev phpunit/phpunit
   pre_build:
     commands:
       - echo 'prebuild'
   build:
     commands:
       - echo 'Running phpunit Tests'
       - composer dump-autoload
       - | 
         codebuild-tests-run \
          --test-command "./vendor/bin/phpunit --debug" \ 
          --files-search "codebuild-glob-search '**/tests/*Test.php'"
   post_build:
       commands:
         - echo 'Test execution completed'
```

# Konfigurieren Sie parallel Tests mit Pytest
<a name="sample-parallel-test-python"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Pytest auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - apt-get update
      - apt-get install -y python3 python3-pip
      - pip3 install --upgrade pip
      - pip3 install pytest
  build:
    commands:
      - echo 'Running Python Tests'
      - |
         codebuild-tests-run \
          --test-command 'python -m pytest' \
          --files-search "codebuild-glob-search 'tests/test_*.py'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Pytest auf einer Windows-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Python dependencies'
      - pip install pytest
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running pytest'
      - |
        & codebuild-tests-run `
         --test-command 'pytest @("$env:CODEBUILD_CURRENT_SHARD_FILES" -split \"`r?`n\")'  `
         --files-search "codebuild-glob-search '**/test_*.py' '**/*_test.py'" `
         --sharding-strategy 'equal-distribution' 
  post_build:
    commands:
      - echo "Test execution completed"
```

Im obigen Beispiel wird die `CODEBUILD_CURRENT_SHARD_FILES` Umgebungsvariable verwendet, um Testdateien abzurufen, die dem aktuellen Shard zugewiesen sind und als Array an den Befehl pytest übergeben werden.

# Konfigurieren Sie parallel Tests mit Ruby (Cucumber)
<a name="sample-parallel-test-ruby-cucumber"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung mit Cucumber auf einer Linux-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - gem install bundler
      - bundle install
  pre_build:
    commands:
      - echo 'prebuild'
  build:
    commands:
      - echo 'Running Cucumber Tests'
      - cucumber --init
      - |
        codebuild-tests-run \
         --test-command "cucumber" \
         --files-search "codebuild-glob-search '**/*.feature'"
  post_build:
    commands:
      - echo "Test execution completed"
```

# parallel Tests mit Ruby (RSpec) konfigurieren
<a name="sample-parallel-test-ruby"></a>

Das Folgende ist ein Beispiel für eine`buildspec.yml`, die die parallel Testausführung RSpec auf einer Ubuntu-Plattform zeigt:

```
version: 0.2

batch:
  fast-fail: false
  build-fanout:
    parallelism: 5
    ignore-failure: false

phases:
  install:
    commands:
      - echo 'Installing Ruby dependencies'
      - apt-get update
      - apt-get install -y ruby ruby-dev build-essential
      - gem install bundler
      - bundle install
  build:
    commands:
      - echo 'Running Ruby Tests'
      - |
         codebuild-tests-run \
          --test-command 'bundle exec rspec' \
          --files-search "codebuild-glob-search 'spec/**/*_spec.rb'" \
          --sharding-strategy 'equal-distribution'
  post_build:
    commands:
      - echo "Test execution completed"
```

# Cache-Builds zur Verbesserung der Leistung
<a name="build-caching"></a>

Sie können Zeit sparen, wenn beim Erstellen Ihres Projekts ein Cache verwendet wird. In einem Cache können wiederverwendbare Teile Ihrer Build-Umgebung gespeichert werden, die dann für mehrere Builds verwendet werden können. Ihr Build-Projekt kann eine von zwei Arten von Caching verwenden: Amazon S3 oder lokal. Wenn Sie einen lokalen Cache verwenden, müssen Sie mindestens einen von drei Cache-Modi auswählen: Quellcache, Docker-Ebenen-Cache und benutzerdefinierter Cache. 

**Anmerkung**  
Der Docker-Ebenen-Cache-Modus ist nur für die Linux-Umgebung verfügbar. Wenn Sie diesen Modus wählen, müssen Sie Ihren Build im privilegierten Modus ausführen. CodeBuild Der privilegierte Modus für Projekte gewährt seinem Container Zugriff auf alle Geräte. Weitere Informationen finden Sie unter [Laufzeitberechtigungen und Linux-Funktionen](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) auf der Docker-Docs-Website.

**Topics**
+ [Amazon S3 S3-Caching](caching-s3.md)
+ [Lokales Caching](caching-local.md)
+ [Geben Sie einen lokalen Cache an](specify-caching-local.md)

# Amazon S3 S3-Caching
<a name="caching-s3"></a>

Amazon S3 S3-Caching speichert den Cache in einem Amazon S3 S3-Bucket, der auf mehreren Build-Hosts verfügbar ist. Dies ist eine gute Option für kleine bis mittelgroße Build-Artefakte, deren Erstellung teurer ist als das Herunterladen.

Um Amazon S3 in einem Build zu verwenden, können Sie die Pfade für die Dateien angeben, in denen Sie zwischenspeichern möchten`buildspec.yml`. CodeBuild speichert und aktualisiert den Cache automatisch an dem für das Projekt konfigurierten Amazon S3 S3-Speicherort. Wenn Sie die Dateipfade nicht angeben, CodeBuild werden gängige Sprachabhängigkeiten nach besten Kräften zwischengespeichert, um Ihnen zu helfen, die Builds zu beschleunigen. Sie können die Cache-Details in den Build-Logs einsehen.

Wenn Sie mehrere Versionen des Caches haben möchten, können Sie außerdem einen Cache-Schlüssel in der definieren`buildspec.yml`. CodeBuild speichert den Cache im Kontext dieses Cache-Schlüssels und erstellt eine eindeutige Cache-Kopie, die nach der Erstellung nicht aktualisiert wird. Die Cache-Schlüssel können auch projektübergreifend gemeinsam genutzt werden. Funktionen wie dynamische Schlüssel, Cache-Versionierung und gemeinsame Nutzung des Caches zwischen Builds sind nur verfügbar, wenn ein Schlüssel angegeben wird.

Weitere Informationen zur Cachesyntax in der Buildspec-Datei finden Sie [Cache](build-spec-ref.md#build-spec.cache) in der Buildspec-Referenz.

**Topics**
+ [Generieren Sie dynamische Schlüssel](#caching-s3-dynamic)
+ [codebuild-hash-files](#caching-s3-dynamic.codebuild-hash-files)
+ [Cache-Version](#caching-s3-version)
+ [Gemeinsame Nutzung von Caches zwischen Projekten](#caching-s3-sharing)
+ [Buildspec-Beispiele](#caching-s3-examples)

## Generieren Sie dynamische Schlüssel
<a name="caching-s3-dynamic"></a>

Ein Cache-Schlüssel kann Shell-Befehle und Umgebungsvariablen enthalten, um ihn einzigartig zu machen und automatische Cache-Aktualisierungen zu ermöglichen, wenn sich der Schlüssel ändert. Sie können beispielsweise einen Schlüssel mithilfe des Hash der `package-lock.json` Datei definieren. Wenn sich die Abhängigkeiten in dieser Datei ändern, ändert sich der Hash — und damit der Cache-Schlüssel —, was die automatische Erstellung eines neuen Caches auslöst.

```
cache:
    key: npm-key-$(codebuild-hash-files package-lock.json)
```

CodeBuild wertet den Ausdruck aus, um den endgültigen Schlüssel `$(codebuild-hash-files package-lock.json)` zu erhalten:

```
npm-key-abc123
```

Sie können einen Cache-Schlüssel auch mithilfe von Umgebungsvariablen definieren, wie `CODEBUILD_RESOLVED_SOURCE_VERSION` z. Dadurch wird sichergestellt, dass bei jeder Änderung Ihrer Quelle ein neuer Schlüssel generiert wird, was dazu führt, dass automatisch ein neuer Cache gespeichert wird:

```
cache:
   key: npm-key-$CODEBUILD_RESOLVED_SOURCE_VERSION
```

CodeBuild wertet den Ausdruck aus und erhält den endgültigen Schlüssel:

```
npm-key-046e8b67481d53bdc86c3f6affdd5d1afae6d369
```

## codebuild-hash-files
<a name="caching-s3-dynamic.codebuild-hash-files"></a>

`codebuild-hash-files`ist ein CLI-Tool, das mithilfe von Glob-Mustern einen SHA-256-Hash für eine Reihe von Dateien im CodeBuild Quellverzeichnis berechnet:

```
codebuild-hash-files <glob-pattern-1> <glob-pattern-2> ...
```

Hier sind einige Beispiele für die Verwendung von: `codebuild-hash-files`

```
codebuild-hash-files package-lock.json
codebuild-hash-files '**/*.md'
```

## Cache-Version
<a name="caching-s3-version"></a>

Die Cache-Version ist ein Hash, der aus den Pfaden der zwischengespeicherten Verzeichnisse generiert wird. Wenn zwei Caches unterschiedliche Versionen haben, werden sie beim Abgleichen als unterschiedliche Caches behandelt. Beispielsweise werden die folgenden beiden Caches als unterschiedlich betrachtet, da sie auf unterschiedliche Pfade verweisen:

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "pip-dependencies/**/*"
```

```
version: 0.2

phases:
  build:
    commands:
      - pip install pandas==2.2.3 --target tmp/pip-dependencies
cache:
  key: pip-dependencies 
  paths:
    - "tmp/pip-dependencies/**/*"
```

## Gemeinsame Nutzung von Caches zwischen Projekten
<a name="caching-s3-sharing"></a>

Sie können das `cacheNamespace` API-Feld unter dem `cache` Abschnitt verwenden, um einen Cache für mehrere Projekte gemeinsam zu nutzen. Dieses Feld definiert den Umfang des Caches. Um einen Cache gemeinsam zu nutzen, müssen Sie wie folgt vorgehen:
+ Verwenden Sie dasselbe`cacheNamespace`.
+ Geben Sie denselben Cache an`key`.
+ Definieren Sie identische Cache-Pfade.
+ Verwenden Sie dieselben Amazon S3 S3-Buckets und `pathPrefix` falls festgelegt.

Dies gewährleistet Konsistenz und ermöglicht die gemeinsame Nutzung des Caches zwischen Projekten.

### Geben Sie einen Cache-Namespace (Konsole) an
<a name="caching-s3-sharing.console"></a>

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. Wählen Sie **Create project** (Projekt erstellen) aus. 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 **Artefakte** die Option Zusätzliche Konfiguration aus.**

1. Wählen Sie als **Cachetyp** **Amazon S3** aus.

1. Geben Sie für **Cache-Namespace — optional** einen Namespace-Wert ein.  
![\[Cache-Namespace-Parameter in der Konsole. CodeBuild\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/s3-cache-namespace.png)

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

### Geben Sie einen Cache-Namespace an ()AWS CLI
<a name="caching-s3-sharing.cli"></a>

Sie können den `--cache` Parameter in verwenden, AWS CLI um einen Cache-Namespace anzugeben.

```
--cache '{"type": "S3", "location": "your-s3-bucket", "cacheNamespace": "test-cache-namespace"}'
```

## Buildspec-Beispiele
<a name="caching-s3-examples"></a>

Hier sind einige Buildspec-Beispiele für gängige Sprachen:

**Topics**
+ [Abhängigkeiten von Node.js zwischenspeichern](#caching-s3-examples.nodejs)
+ [Python-Abhängigkeiten zwischenspeichern](#caching-s3-examples.python)
+ [Ruby-Abhängigkeiten zwischenspeichern](#caching-s3-examples.ruby)
+ [Cache Go-Abhängigkeiten](#caching-s3-examples.go)

### Abhängigkeiten von Node.js zwischenspeichern
<a name="caching-s3-examples.nodejs"></a>

Wenn Ihr Projekt eine `package-lock.json` Datei enthält und `npm` zur Verwaltung der Abhängigkeiten von Node.js verwendet wird, zeigt das folgende Beispiel, wie Sie das Caching einrichten. `npm`Installiert standardmäßig Abhängigkeiten in das `node_modules` Verzeichnis.

```
version: 0.2

phases:
  build:
    commands:
      - npm install
cache:
  key: npm-$(codebuild-hash-files package-lock.json)
  paths:
    - "node_modules/**/*"
```

### Python-Abhängigkeiten zwischenspeichern
<a name="caching-s3-examples.python"></a>

Wenn Ihr Projekt eine `requirements.txt` Datei enthält und Pip zur Verwaltung von Python-Abhängigkeiten verwendet, zeigt das folgende Beispiel, wie Sie das Caching konfigurieren. Standardmäßig installiert Pip Pakete in das Verzeichnis des Systems. `site-packages`

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "/root/.pyenv/versions/${python_version}/lib/python${python_major_version}/site-packages/**/*"
```

Darüber hinaus können Sie Abhängigkeiten in einem bestimmten Verzeichnis installieren und das Caching für dieses Verzeichnis konfigurieren.

```
version: 0.2

phases:
  build:
    commands:
      - pip install -r requirements.txt --target python-dependencies
cache:
  key: python-$(codebuild-hash-files requirements.txt)
  paths:
    - "python-dependencies/**/*"
```

### Ruby-Abhängigkeiten zwischenspeichern
<a name="caching-s3-examples.ruby"></a>

Wenn Ihr Projekt eine `Gemfile.lock` Datei enthält und diese `Bundler` zur Verwaltung von Gem-Abhängigkeiten verwendet, zeigt das folgende Beispiel, wie Sie das Caching effektiv konfigurieren können.

```
version: 0.2

phases:
  build:
    commands:
      - bundle install --path vendor/bundle
cache:
  key: ruby-$(codebuild-hash-files Gemfile.lock)
  paths:
    - "vendor/bundle/**/*"
```

### Cache Go-Abhängigkeiten
<a name="caching-s3-examples.go"></a>

Wenn Ihr Projekt eine `go.sum` Datei enthält und Go-Module zur Verwaltung von Abhängigkeiten verwendet, zeigt das folgende Beispiel, wie Sie das Caching konfigurieren. Standardmäßig werden Go-Module heruntergeladen und im `${GOPATH}/pkg/mod` Verzeichnis gespeichert.

```
version: 0.2

phases:
  build:
    commands:
      - go mod download
cache:
  key: go-$(codebuild-hash-files go.sum)
  paths:
    - "/go/pkg/mod/**/*"
```

# Lokales Caching
<a name="caching-local"></a>

Beim lokalen Caching wird der Cache lokal auf einem Build-Host gespeichert und ist nur für diesen Build-Host verfügbar. Dies ist eine gute Option für mittlere bis große Build-Artefakte, da der Cache sofort auf dem Build-Host verfügbar ist. Dies ist nicht die beste Option, wenn Ihre Builds selten sind. Die Build-Leistung ist somit nicht durch die Netzwerk-Übertragungsdauer beeinträchtigt.

Wenn Sie sich für lokales Caching entscheiden, müssen Sie mindestens einen der folgenden Cache-Modi auswählen: 
+ Beim Quellcache-Modus werden Git-Metadaten für primäre und sekundäre Quellen zwischengespeichert. Nachdem der Cache erstellt wurde, wird bei nachfolgenden Builds nur die Änderung zwischen den Commits abgerufen. Dieser Modus ist gut geeignet für Projekte mit einem sauberen Arbeitsverzeichnis und einem großen Git-Repository als Quelle. Wenn du diese Option wählst und dein Projekt kein Git-Repository (AWS CodeCommit, GitHub, GitHub Enterprise Server oder Bitbucket) verwendet, wird die Option ignoriert. 
+ Beim Docker-Ebenen-Cache-Modus werden vorhandene Docker-Ebenen zwischengespeichert. Dieser Modus eignet sich für Projekte, bei denen große Docker-Images erstellt oder abgerufen werden. Mit diesem Modus können Leistungsprobleme vermieden werden, die beim Abruf großer Docker-Images aus dem Netzwerk entstehen. 
**Anmerkung**  
Ein Docker-Ebenen-Cache kann nur in einer Linux-Umgebung verwendet werden. 
Das `privileged`-Flag muss so festgelegt sein, dass Ihr Projekt über die erforderlichen Docker-Berechtigungen verfügt.   
Standardmäßig ist der Docker-Daemon für Nicht-VPC-Builds aktiviert. Wenn Sie Docker-Container für VPC-Builds verwenden möchten, lesen Sie auf der Docker Docs-Website unter [Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) nach und aktivieren Sie den privilegierten Modus. Außerdem unterstützt Windows den privilegierten Modus nicht.
Vor der Verwendung eines Docker-Ebenen-Cache sollten Sie die Auswirkungen auf die Sicherheit berücksichtigen. 
+ Beim benutzerdefinierten Cache-Modus werden Verzeichnisse zwischengespeichert, die Sie in der buildspec-Datei angeben. Dieser Modus ist gut geeignet, wenn Ihr Build-Szenario nicht für einen der beiden anderen lokalen Cache-Modi in Frage kommt. Bei Verwendung eines benutzerdefinierte Cache gilt Folgendes: 
  + Für das Caching können nur Verzeichnisse angegeben werden. Sie können keine einzelnen Dateien angeben. 
  + Es werden Symlinks verwendet, um auf zwischengespeicherte Verzeichnisse zu verweisen. 
  + Zwischengespeicherte Verzeichnisse werden mit Ihrem Build verknüpft, bevor die Projektquellen heruntergeladen werden. Im Cache gespeicherte Elemente überschreiben Quellelemente, wenn sie denselben Namen haben. Verzeichnisse werden unter Verwendung von Cache-Pfaden in der buildspec-Datei angegeben. Weitere Informationen finden Sie unter [Syntax der Build-Spezifikation](build-spec-ref.md#build-spec-ref-syntax). 
  + Vermeiden Sie Verzeichnisnamen, die in der Quelle und im Cache identisch sind. Lokal zwischengespeicherte Verzeichnisse können die Inhalte von Verzeichnissen in einem Quell-Repository überschreiben oder löschen, das denselben Namen hat.

**Anmerkung**  
Lokales Caching wird für den `LINUX_GPU_CONTAINER` Umgebungstyp und den `BUILD_GENERAL1_2XLARGE` Compute-Typ nicht unterstützt. Weitere Informationen finden Sie unter [Berechnungsmodi und Typen der Build-Umgebung](build-env-ref-compute-types.md).

**Anmerkung**  
Lokales Caching wird nicht unterstützt, wenn Sie die Konfiguration CodeBuild für die Arbeit mit einer VPC vornehmen. Weitere Informationen zur Verwendung von VPCs mit finden Sie CodeBuild unter. [Verwendung AWS CodeBuild mit Amazon Virtual Private Cloud](vpc-support.md)

# Geben Sie einen lokalen Cache an
<a name="specify-caching-local"></a>

Sie können die Konsole AWS CLI, das SDK oder verwenden, CloudFormation um einen lokalen Cache anzugeben. Weitere Hinweise zum lokalen Caching finden Sie unter[Lokales Caching](caching-local.md).

**Topics**
+ [Angabe von lokalem Caching (CLI)](#caching-local-cli)
+ [Angabe von lokalem Caching (Konsole)](#caching-local-console)
+ [Angabe von lokalem Caching (CloudFormation)](#caching-local-cfn)

## Angabe von lokalem Caching (CLI)
<a name="caching-local-cli"></a>

Sie können den `--cache` Parameter in verwenden AWS CLI , um jeden der drei lokalen Cachetypen anzugeben. 
+ So geben Sie einen Quellcache an: 

  ```
  --cache type=LOCAL,mode=[LOCAL_SOURCE_CACHE]
  ```
+ So geben Sie eine Docker-Ebenen-Cache an: 

  ```
  --cache type=LOCAL,mode=[LOCAL_DOCKER_LAYER_CACHE]
  ```
+ So geben Sie einen benutzerdefinierten Cache an: 

  ```
  --cache type=LOCAL,mode=[LOCAL_CUSTOM_CACHE]
  ```

Weitere Informationen finden Sie unter [Erstellen eines Build-Projekts (AWS CLI)](create-project.md#create-project-cli).

## Angabe von lokalem Caching (Konsole)
<a name="caching-local-console"></a>

Geben Sie den Cache im Abschnitt **Artifacts (Artefakte)** der Konsole an. Wählen Sie als **Cachetyp** **Amazon S3** oder **Local aus**. Wenn Sie **Local (Lokal)** auswählen, wählen Sie mindestens eine der drei lokalen Cache-Optionen aus.

![\[Geben Sie einen lokalen Cache an, indem Sie eine oder mehrere der drei lokalen Cache-Optionen auswählen.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/local-cache.png)


Weitere Informationen finden Sie unter [Erstellen Sie ein Build-Projekt (Konsole)](create-project.md#create-project-console).

## Angabe von lokalem Caching (CloudFormation)
<a name="caching-local-cfn"></a>

Wenn Sie CloudFormation einen lokalen Cache angeben, geben Sie in der `Cache` Eigenschaft for `Type` an`LOCAL`. Der folgende CloudFormation Beispielcode im YAML-Format spezifiziert alle drei lokalen Cachetypen. Sie können eine beliebige Kombination der Typen angeben. Wenn Sie einen Docker-Ebenen-Cache verwenden, müssen Sie unter `Environment` (Umgebung) für `PrivilegedMode` die Option `true` und für `Type` (Typ) die Option `LINUX_CONTAINER` festlegen. 

```
CodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
      Name: MyProject
      ServiceRole: <service-role>
      Artifacts:
        Type: S3
        Location: <bucket-name>
        Name: myArtifact
        EncryptionDisabled: true
        OverrideArtifactName: true
      Environment:
        Type: LINUX_CONTAINER
        ComputeType: BUILD_GENERAL1_SMALL
        Image: aws/codebuild/standard:5.0
        Certificate: <bucket/cert.zip>
        # PrivilegedMode must be true if you specify LOCAL_DOCKER_LAYER_CACHE
        PrivilegedMode: true
      Source:
        Type: GITHUB
        Location: <github-location>
        InsecureSsl: true
        GitCloneDepth: 1
        ReportBuildStatus: false
      TimeoutInMinutes: 10
      Cache:
        Type: LOCAL
        Modes: # You can specify one or more cache mode, 
          - LOCAL_CUSTOM_CACHE
          - LOCAL_DOCKER_LAYER_CACHE
          - LOCAL_SOURCE_CACHE
```

**Anmerkung**  
Standardmäßig ist der Docker-Daemon für Nicht-VPC-Builds aktiviert. Wenn Sie Docker-Container für VPC-Builds verwenden möchten, lesen Sie auf der Docker Docs-Website unter [Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) nach und aktivieren Sie den privilegierten Modus. Außerdem unterstützt Windows den privilegierten Modus nicht.

Weitere Informationen finden Sie unter [Erstellen eines Build-Projekts (CloudFormation)](create-project.md#create-project-cloud-formation).

# Debug ist eingebaut AWS CodeBuild
<a name="debug-builds"></a>

AWS CodeBuild bietet zwei Methoden zum Debuggen von Builds während der Entwicklung und zur Fehlerbehebung. Sie können die CodeBuild Sandbox-Umgebung verwenden, um Probleme zu untersuchen und Korrekturen in Echtzeit zu validieren, oder Sie können AWS Systems Manager Session Manager verwenden, um eine Verbindung zum Build-Container herzustellen und den Status des Containers anzuzeigen.

## Debuggen Sie Builds mit Sandbox CodeBuild
<a name="debug-codebuild-sandbox"></a>

Die CodeBuild Sandbox-Umgebung bietet eine interaktive Debug-Sitzung in einer sicheren und isolierten Umgebung. Sie können über das AWS-Managementkonsole oder direkt mit der Umgebung interagieren AWS CLI, Befehle ausführen und Ihren Build-Prozess Schritt für Schritt validieren. Es verwendet ein kostengünstiges Abrechnungsmodell pro Sekunde und unterstützt dieselbe native Integration mit Quellanbietern und AWS -diensten wie Ihre Build-Umgebung. Sie können auch über SSH-Clients oder über Ihre integrierten Entwicklungsumgebungen () eine Verbindung zu einer Sandbox-Umgebung herstellen. IDEs

[Weitere Informationen zu den CodeBuild Sandbox-Preisen finden Sie in der CodeBuild Preisdokumentation.](https://aws.amazon.com/codebuild/pricing/#Sandbox) Eine ausführliche Anleitung finden Sie in der [Builds mit CodeBuild Sandbox debuggen](sandbox.md) Dokumentation.

## Debuggen Sie Builds mit Session Manager
<a name="debug-codebuild-session-manager"></a>

AWS Systems Manager Session Manager ermöglicht den direkten Zugriff auf laufende Builds in ihrer tatsächlichen Ausführungsumgebung. Dieser Ansatz ermöglicht es Ihnen, eine Verbindung zu aktiven Build-Containern herzustellen und den Build-Prozess in Echtzeit zu überprüfen. Sie können das Dateisystem untersuchen, laufende Prozesse überwachen und auftretende Probleme beheben.

Eine ausführliche Anleitung finden Sie in der [Builds mit Session Manager debuggen](session-manager.md) Dokumentation.

# Builds mit CodeBuild Sandbox debuggen
<a name="sandbox"></a>

In können Sie einen Build debuggen AWS CodeBuild, indem Sie die CodeBuild Sandbox verwenden, um benutzerdefinierte Befehle auszuführen und Fehler bei Ihrem Build zu beheben.

**Topics**
+ [Voraussetzungen](#sandbox-prereq)
+ [Debuggen Sie Builds mit CodeBuild Sandbox (Konsole)](#sandbox-console)
+ [Debuggen Sie Builds mit CodeBuild sandbox ()AWS CLI](#sandbox-cli)
+ [Tutorial: Mit SSH eine Verbindung zu einer Sandbox herstellen](sandbox-ssh-tutorial.md)
+ [Behebung von SSH-Verbindungsproblemen mit der AWS CodeBuild Sandbox](sandbox-troubleshooting.md)

## Voraussetzungen
<a name="sandbox-prereq"></a>

Bevor Sie eine CodeBuild Sandbox verwenden, stellen Sie sicher, dass für Ihre CodeBuild Servicerolle die folgende SSM-Richtlinie gilt:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-1:111122223333:build/*",
                "arn:aws:ssm:us-east-1::document/AWS-StartSSHSession"
            ]
        }
    ]
}
```

------

## Debuggen Sie Builds mit CodeBuild Sandbox (Konsole)
<a name="sandbox-console"></a>

Verwenden Sie die folgenden Anweisungen, um Befehle auszuführen und Ihren SSH-Client mit der CodeBuild Sandbox in der Konsole zu verbinden.

### Führen Sie Befehle mit der CodeBuild Sandbox (Konsole) aus
<a name="sandbox-console.commands"></a>

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. Wählen Sie im linken Navigationsbereich **Build projects** aus. **Wählen Sie das Build-Projekt und dann Debug Build aus.**  
![\[Die Detailseite des Debug-Build-Projekts in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Geben Sie auf der Registerkarte **Befehl ausführen** Ihre benutzerdefinierten Befehle ein und wählen Sie dann **Befehl ausführen** aus.  
![\[Die Detailseite zum Ausführen des Befehls in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/debug-build-run.png)

1. Ihre CodeBuild Sandbox wird dann initialisiert und beginnt mit der Ausführung Ihrer benutzerdefinierten Befehle. Die Ausgabe wird auf der Registerkarte **Ausgabe** angezeigt, wenn sie abgeschlossen ist.   
![\[Die Ausgabeseite für den Run-Befehl in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/debug-build-run-output.png)

1. Wenn die Problembehandlung abgeschlossen ist, können Sie die Sandbox beenden, indem Sie Sandbox **beenden** wählen. Wählen Sie dann **Stopp**, um zu bestätigen, dass Ihre Sandbox gestoppt wird.  
![\[Das Dialogfeld „Sandbox beenden“.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/stop-sandbox.png)  
![\[Die Ausgabeseite für den Run-Befehl mit einer angehaltenen Sandbox in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/stopped-sandbox.png)

### Stellen Sie mit CodeBuild Sandbox (Konsole) eine Connect zu Ihrem SSH-Client her
<a name="sandbox-console.ssh"></a>

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. Wählen Sie im linken Navigationsbereich **Build projects** aus. **Wählen Sie das Build-Projekt und dann Debug Build aus.**  
![\[Die Detailseite des Debug-Build-Projekts in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/sandbox-debug-build.png)

1. Wählen Sie auf der Registerkarte **SSH-Client** die Option Sandbox **starten** aus.  
![\[Die Sandbox-Seite des SSH-Clients in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Folgen Sie nach dem Start der CodeBuild Sandbox den Anweisungen der Konsole, um Ihren SSH-Client mit der Sandbox zu verbinden.  
![\[Die Sandbox-Seite des SSH-Clients in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/ssh-client-sandbox-terminal.png)

1. **Wenn die Fehlerbehebung abgeschlossen ist, können Sie die Sandbox beenden, indem Sie Sandbox beenden wählen.** Wählen Sie dann **Stopp**, um zu bestätigen, dass Ihre Sandbox gestoppt wird.  
![\[Das Dialogfeld „Sandbox beenden“.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/stop-sandbox-2.png)  
![\[Die Ausgabeseite für den Run-Befehl mit einer angehaltenen Sandbox in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/stopped-sandbox-2.png)

## Debuggen Sie Builds mit CodeBuild sandbox ()AWS CLI
<a name="sandbox-cli"></a>

Verwenden Sie die folgenden Anweisungen, um Befehle auszuführen und Ihren SSH-Client mit der Sandbox zu verbinden. CodeBuild 

### Starten Sie eine CodeBuild Sandbox ()AWS CLI
<a name="sandbox-cli.start-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild start-sandbox --project-name $PROJECT_NAME
```
+ `--project-name`: CodeBuild Projektname

------
#### [ Sample request ]

```
aws codebuild start-sandbox --project-name "project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "QUEUED",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "QUEUED",
        "status": "QUEUED",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Ruft Informationen über den Sandbox-Status ab ()AWS CLI
<a name="sandbox-cli.batch-get-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-sandboxes --ids $SANDBOX_IDs
```

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```
+ `--ids`: Kommagetrennte Liste von oder. `sandboxIds` `sandboxArns`

Sie können entweder eine Sandbox-ID oder einen Sandbox-ARN angeben:
+ Sandbox-ID: `<codebuild-project-name>:<UUID>`

  Beispiel, `project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.
+ Sandbox-ARN: arn:aws:codebuild: ::sandbox/: *<region>* *<account-id>* *<codebuild-project-name>* *<UUID>*

  Beispiel, `arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name:d25be134-05cb-404a-85da-ac5f85d2d72c`.

------
#### [ Sample response ]

```
{
    "sandboxes": [{
        "id": "project-name",
        "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
        "projectName": "project-name",
        "requestTime": "2025-02-06T11:24:15.560000-08:00",
        "endTime": "2025-02-06T11:39:21.587000-08:00",
        "status": "STOPPED",
        "source": {
            "type": "S3",
            "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
            "insecureSsl": false
        },
        "environment": {
            "type": "LINUX_CONTAINER",
            "image": "aws/codebuild/standard:6.0",
            "computeType": "BUILD_GENERAL1_SMALL",
            "environmentVariables": [{
                    "name": "foo",
                    "value": "bar",
                    "type": "PLAINTEXT"
                },
                {
                    "name": "bar",
                    "value": "baz",
                    "type": "PLAINTEXT"
                }
            ],
            "privilegedMode": false,
            "imagePullCredentialsType": "CODEBUILD"
        },
        "timeoutInMinutes": 10,
        "queuedTimeoutInMinutes": 480,
        "logConfig": {
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        },
        "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
        "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
        "currentSession": {
            "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "currentPhase": "COMPLETED",
            "status": "STOPPED",
            "startTime": "2025-02-06T11:24:15.626000-08:00",
            "endTime": "2025-02-06T11:39:21.600000-08:00",
            "phases": [{
                    "phaseType": "SUBMITTED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.577000-08:00",
                    "endTime": "2025-02-06T11:24:15.606000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "QUEUED",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:15.606000-08:00",
                    "endTime": "2025-02-06T11:24:16.067000-08:00",
                    "durationInSeconds": 0
                },
                {
                    "phaseType": "PROVISIONING",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:16.067000-08:00",
                    "endTime": "2025-02-06T11:24:20.519000-08:00",
                    "durationInSeconds": 4,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "DOWNLOAD_SOURCE",
                    "phaseStatus": "SUCCEEDED",
                    "startTime": "2025-02-06T11:24:20.519000-08:00",
                    "endTime": "2025-02-06T11:24:22.238000-08:00",
                    "durationInSeconds": 1,
                    "contexts": [{
                        "statusCode": "",
                        "message": ""
                    }]
                },
                {
                    "phaseType": "RUNNING_SANDBOX",
                    "phaseStatus": "TIMED_OUT",
                    "startTime": "2025-02-06T11:24:22.238000-08:00",
                    "endTime": "2025-02-06T11:39:21.560000-08:00",
                    "durationInSeconds": 899,
                    "contexts": [{
                        "statusCode": "BUILD_TIMED_OUT",
                        "message": "Build has timed out. "
                    }]
                },
                {
                    "phaseType": "COMPLETED",
                    "startTime": "2025-02-06T11:39:21.560000-08:00"
                }
            ],
            "logs": {
                "groupName": "group",
                "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    }],
    "sandboxesNotFound": []
}
```

------

### Stoppen Sie eine Sandbox AWS CLI()
<a name="sandbox-cli.stop-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild stop-sandbox --id $SANDBOX-ID
```
+ `--id`: A `sandboxId` oder`sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild stop-sandbox --id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "id": "project-name",
    "arn": "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name",
    "projectName": "project-name",
    "requestTime": "2025-02-06T11:24:15.560000-08:00",
    "status": "STOPPING",
    "source": {
        "type": "S3",
        "location": "arn:aws:s3:::cofa-e2e-test-1-us-west-2-beta-default-build-sources/eb-sample-jetty-v4.zip",
        "insecureSsl": false
    },
    "environment": {
        "type": "LINUX_CONTAINER",
        "image": "aws/codebuild/standard:6.0",
        "computeType": "BUILD_GENERAL1_SMALL",
        "environmentVariables": [{
                "name": "foo",
                "value": "bar",
                "type": "PLAINTEXT"
            },
            {
                "name": "bar",
                "value": "baz",
                "type": "PLAINTEXT"
            }
        ],
        "privilegedMode": false,
        "imagePullCredentialsType": "CODEBUILD"
    },
    "timeoutInMinutes": 10,
    "queuedTimeoutInMinutes": 480,
    "logConfig": {
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    },
    "encryptionKey": "arn:aws:kms:us-west-2:962803963624:alias/SampleEncryptionKey",
    "serviceRole": "arn:aws:iam::962803963624:role/BuildExecutionServiceRole",
    "currentSession": {
        "id": "0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
        "currentPhase": "RUN_SANDBOX",
        "status": "STOPPING",
        "startTime": "2025-02-06T11:24:15.626000-08:00",
        "phases": [{
                "phaseType": "SUBMITTED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.144000-08:00",
                "endTime": "2025-02-08T14:33:26.173000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "QUEUED",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.173000-08:00",
                "endTime": "2025-02-08T14:33:26.702000-08:00",
                "durationInSeconds": 0
            },
            {
                "phaseType": "PROVISIONING",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:26.702000-08:00",
                "endTime": "2025-02-08T14:33:30.530000-08:00",
                "durationInSeconds": 3,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "DOWNLOAD_SOURCE",
                "phaseStatus": "SUCCEEDED",
                "startTime": "2025-02-08T14:33:30.530000-08:00",
                "endTime": "2025-02-08T14:33:33.478000-08:00",
                "durationInSeconds": 2,
                "contexts": [{
                    "statusCode": "",
                    "message": ""
                }]
            },
            {
                "phaseType": "RUN_SANDBOX",
                "startTime": "2025-02-08T14:33:33.478000-08:00"
            }
        ],
        "logs": {
            "groupName": "group",
            "streamName": "stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream$252F0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream/0103e0e7-52aa-4a3d-81dd-bfc27226fa54",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/0103e0e7-52aa-4a3d-81dd-bfc27226fa54.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }
}
```

------

### Startet die Ausführung eines Befehls (AWS CLI)
<a name="sandbox-cli.start-command-execution"></a>

------
#### [ CLI command ]

```
aws codebuild start-command-execution --command $COMMAND --type $TYPE --sandbox-id $SANDBOX-ID
```
+ `--command`: Der Befehl, der ausgeführt werden muss.
+ `--sandbox-id`: A `sandboxId` oder`sandboxArn`.
+ `--type`: Der Befehlstyp,`SHELL`.

------
#### [ Sample request ]

```
aws codebuild start-command-execution --command "echo "Hello World"" --type SHELL --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name
```

------
#### [ Sample response ]

```
{
    "id": "e1c658c2-02bb-42a8-9abb-94835241fcd6",
    "sandboxId": "f7126a4a-b0d5-452f-814c-fea73718f805",
    "submitTime": "2025-02-06T20:12:02.683000-08:00",
    "status": "SUBMITTED",
    "command": "echo \"Hello World\"",
    "type": "SHELL",
    "logs": {
        "groupName": "group",
        "streamName": "stream",
        "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
        "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz?region=us-west-2",
        "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
        "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/f7126a4a-b0d5-452f-814c-fea73718f805.gz",
        "cloudWatchLogs": {
            "status": "ENABLED",
            "groupName": "group",
            "streamName": "stream"
        },
        "s3Logs": {
            "status": "ENABLED",
            "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
            "encryptionDisabled": false
        }
    }
}
```

------

### Ruft Informationen über die Befehlsausführungen ab ()AWS CLI
<a name="sandbox-cli.batch-get-command-executions"></a>

------
#### [ CLI command ]

```
aws codebuild batch-get-command-executions --command-execution-ids $COMMAND-IDs --sandbox-id $SANDBOX-IDs
```
+ `--command-execution-ids`: Kommagetrennte Liste von. `commandExecutionIds`
+ `--sandbox-id`: A `sandboxId` oder`sandboxArn`.

------
#### [ Sample request ]

```
aws codebuild batch-get-command-executions --command-execution-ids"c3c085ed-5a8f-4531-8e95-87d547f27ffd" --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
        "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
        "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "submitTime": "2025-02-10T20:18:17.118000-08:00",
        "startTime": "2025-02-10T20:18:17.939000-08:00",
        "endTime": "2025-02-10T20:18:17.976000-08:00",
        "status": "SUCCEEDED",
        "command": "echo \"Hello World\"",
        "type": "SHELL",
        "exitCode": "0",
        "standardOutputContent": "Hello World\n",
        "logs": {
            "groupName": "group",
            "streamName": "stream",
            "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
            "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
            "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
            "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
            "cloudWatchLogs": {
                "status": "ENABLED",
                "groupName": "group",
                "streamName": "stream"
            },
            "s3Logs": {
                "status": "ENABLED",
                "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                "encryptionDisabled": false
            }
        }
    }],
    "commandExecutionsNotFound": []
}
```

------

### Listet Befehlsausführungen für eine Sandbox auf ()AWS CLI
<a name="sandbox-cli.list-command-executions-for-sandbox"></a>

------
#### [ CLI command ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id $SANDBOX-ID --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```
+ `--next-token`: Das nächste Token, falls vorhanden, für das paginierte Ergebnisse abgerufen werden. Sie erhalten diesen Wert aus der vorherigen Ausführung von Listen-Sandboxes.
+ `--max-results`: (Optional) Die maximale Anzahl von Sandbox-Datensätzen, die abgerufen werden können.
+ `--sort-order`: Die Reihenfolge, in der Sandbox-Datensätze abgerufen werden sollen.

------
#### [ Sample request ]

```
aws codebuild list-command-executions-for-sandbox --sandbox-id "arn:aws:codebuild:us-west-2:962803963624:sandbox/project-name"
```

------
#### [ Sample response ]

```
{
    "commandExecutions": [{
            "id": "aad6687e-07bc-45ab-a1fd-f5440229b528",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:35.304000-08:00",
            "startTime": "2025-02-10T20:18:35.615000-08:00",
            "endTime": "2025-02-10T20:18:35.651000-08:00",
            "status": "FAILED",
            "command": "fail command",
            "type": "SHELL",
            "exitCode": "127",
            "standardErrContent": "/codebuild/output/tmp/script.sh: 4: fail: not found\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        },
        {
            "id": "c3c085ed-5a8f-4531-8e95-87d547f27ffd",
            "sandboxId": "cd71e456-2a4c-4db4-ada5-da892b0bba05",
            "submitTime": "2025-02-10T20:18:17.118000-08:00",
            "startTime": "2025-02-10T20:18:17.939000-08:00",
            "endTime": "2025-02-10T20:18:17.976000-08:00",
            "status": "SUCCEEDED",
            "command": "echo \"Hello World\"",
            "type": "SHELL",
            "exitCode": "0",
            "standardOutputContent": "Hello World\n",
            "logs": {
                "groupName": "group",
                "streamName": "stream",
                "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logsV2:log-groups/log-group/group/log-events/stream",
                "s3DeepLink": "https://s3.console.aws.amazon.com/s3/object/codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz?region=us-west-2",
                "cloudWatchLogsArn": "arn:aws:logs:us-west-2:962803963624:log-group:group:log-stream:stream",
                "s3LogsArn": "arn:aws:s3:::codefactory-test-pool-1-us-west-2-beta-default-build-logs/cd71e456-2a4c-4db4-ada5-da892b0bba05.gz",
                "cloudWatchLogs": {
                    "status": "ENABLED",
                    "groupName": "group",
                    "streamName": "stream"
                },
                "s3Logs": {
                    "status": "ENABLED",
                    "location": "codefactory-test-pool-1-us-west-2-beta-default-build-logs",
                    "encryptionDisabled": false
                }
            }
        }
    ]
}
```

------

### Sandboxen auflisten ()AWS CLI
<a name="sandbox-cli.list-sandboxes"></a>

------
#### [ CLI command ]

```
aws codebuild list-sandboxes --next-token $NEXT_TOKEN --max-results $MAX_RESULTS --sort-order $SORT_ORDER
```

------
#### [ Sample request ]

```
aws codebuild list-sandboxes
```

------
#### [ Sample response ]

```
{
    "ids": [
        "s3-log-project-integ-test-temp173925062814985d64e0f-7880-41df-9a3c-fb6597a266d2:827a5243-0841-4b69-a720-4438796f6967",
        "s3-log-project-integ-test-temp1739249999716bbd438dd-8bb8-47bd-ba6b-0133ac65b3d3:e2fa4eab-73af-42e3-8903-92fddaf9f378",
        "s3-log-project-integ-test-temp17392474779450fbdacc2-2d6e-4190-9ad5-28f891bb7415:cd71e456-2a4c-4db4-ada5-da892b0bba05",
        "s3-log-project-integ-test-temp17392246284164301421c-5030-4fa1-b4d3-ca15e44771c5:9e26ab3f-65e4-4896-a19c-56b1a95e630a",
        "s3-log-project-integ-test-temp173921367319497056d8d-6d8e-4f5a-a37c-a62f5686731f:22d91b06-df1e-4e9c-a664-c0abb8d5920b",
        "s3-log-project-integ-test-temp1739213439503f6283f19-390c-4dc8-95a9-c8480113384a:82cc413e-fc46-47ab-898f-ae23c83a613f",
        "s3-log-project-integ-test-temp1739054385570b1f1ddc2-0a23-4062-bd0c-24e9e4a99b99:c02562f3-2396-42ec-98da-38e3fe5da13a",
        "s3-log-project-integ-test-temp173905400540237dab1ac-1fde-4dfb-a8f5-c0114333dc89:d2f30493-f65e-4fa0-a7b6-08a5e77497b9",
        "s3-log-project-integ-test-temp17390534055719c534090-7bc4-48f1-92c5-34acaec5bf1e:df5f1c8a-f017-43b7-91ba-ad2619e2c059",
        "s3-log-project-integ-test-temp1739052719086a61813cc-ebb9-4db4-9391-7f43cc984ee4:d61917ec-8037-4647-8d52-060349272c4a",
        "s3-log-project-integ-test-temp173898670094078b67edb-c42f-42ed-9db2-4b5c1a5fc66a:ce33dfbc-beeb-4466-8c99-a3734a0392c7",
        "s3-log-project-integ-test-temp17389863425584d21b7cd-32e2-4f11-9175-72c89ecaffef:046dadf0-1f3a-4d51-a2c0-e88361924acf",
        "s3-log-project-integ-test-temp1738985884273977ccd23-394b-46cc-90d3-7ab94cf764dc:0370dc41-9339-4b0a-91ed-51929761b244",
        "s3-log-project-integ-test-temp1738985365972241b614f-8e41-4387-bd25-2b8351fbc9e0:076c392a-9630-47d8-85a9-116aa34edfff",
        "s3-log-project-integ-test-temp1738985043988a51a9e2b-09d6-4d24-9c3c-1e6e21ac9fa8:6ea3949c-435b-4177-aa4d-614d5956244c",
        "s3-log-project-integ-test-temp1738984123354c68b31ad-49d1-4f4b-981d-b66c00565ff6:6c3fff6c-815b-48b5-ada3-737400a6dee8",
        "s3-log-project-integ-test-temp1738977263715d4d5bf6c-370a-48bf-8ea6-905358a6cf92:968a0f54-724a-42d1-9207-6ed854b2fae8",
        "s3-log-project-integ-test-temp173897358796816ce8d7d-2a5e-41ef-855b-4a94a8d2795d:80f9a7ce-930a-402e-934e-d8b511d68b04",
        "s3-log-project-integ-test-temp17389730633301af5e452-0966-467c-b684-4e36d47f568c:cabbe989-2e8a-473c-af25-32edc8c28646",
        "s3-log-project-integ-test-temp1738901503813173fd468-b723-4d7b-9f9f-82e88d17f264:f7126a4a-b0d5-452f-814c-fea73718f805",
        "s3-log-project-integ-test-temp1738890502472c13616fb-bd0f-4253-86cc-28b74c97a0ba:c6f197e5-3a53-45b6-863e-0e6353375437",
        "s3-log-project-integ-test-temp17388903044683610daf3-8da7-43c6-8580-9978432432ce:d20aa317-8838-4966-bbfc-85b908213df1",
        "s3-log-project-integ-test-temp173888857196780b5ab8b-e54b-44fd-a222-c5a374fffe96:ab4b9970-ffae-47a0-b3a8-7b6790008cad",
        "s3-log-project-integ-test-temp1738888336931c11d378d-e74d-49a4-a723-3b92e6f7daac:4922f0e8-9b7d-4119-9c9f-115cd85e703e",
        "s3-log-project-integ-test-temp17388881717651612a397-c23f-4d88-ba87-2773cd3fc0c9:be91c3fc-418e-4feb-8a3a-ba58ff8f4e8a",
        "s3-log-project-integ-test-temp17388879727174c3c62ed-6195-4afb-8a03-59674d0e1187:a48826a8-3c0d-43c5-a1b5-1c98a0f978e9",
        "s3-log-project-integ-test-temp1738885948597cef305e4-b8b4-46b0-a65b-e2d0a7b83294:c050e77d-e3f8-4829-9a60-46149628fe96",
        "s3-log-project-integ-test-temp173888561463001a7d2a8-e4e4-4434-94db-09d3da9a9e17:8c3ac3f5-7111-4297-aec9-2470d3ead873",
        "s3-log-project-integ-test-temp1738869855076eb19cafd-04fe-41bd-8aa0-40826d0c0d27:d25be134-05cb-404a-85da-ac5f85d2d72c",
        "s3-project-integ-test-temp1738868157467148eacfc-d39b-49fc-a137-e55381cd2978:4909557b-c221-4814-b4b6-7d9e93d37c35",
        "s3-project-integ-test-temp1738820926895abec0af2-e33d-473c-9cf4-2122dd9d6876:8f5cf218-71d6-40a4-a4be-6cacebd7765f",
        "s3-project-integ-test-temp173881998877574f969a6-1c2e-4441-b463-ab175b45ce32:04396851-c901-4986-9117-585528e3877f",
        "s3-project-integ-test-temp17388189812309abd2604-29ba-4cf6-b6bf-073207b7db9c:540075c7-f5ec-41e8-9341-2233c09247eb",
        "s3-project-integ-test-temp1738818843474d3ea9ac1-b609-461b-bbdb-2da245c9bc96:865d4c3c-fbfe-4ece-9c92-d0c928341404",
        "s3-project-integ-test-temp1738818542236006e9169-e6d9-4344-9b59-f557e7aec619:1f9ffa87-da15-4290-83e2-eebdd877497b",
        "s3-project-integ-test-temp173881809557486ad11fd-7931-48d7-81d5-499cea52a6bc:c4c2efc4-685f-4e13-8b0f-1ef85ec300b1",
        "s3-project-integ-test-temp173881794103322941020-3f0b-49c3-b836-fcd818ec9484:0344cfba-de48-456d-b2a8-6566bd4a5d6e",
        "s3-project-integ-test-temp1738817680747b93d0d0b-ea16-497f-9559-af25ee6dcfdf:654a3a55-d92a-4dc6-8da8-56fd4d40d7e1",
        "s3-project-integ-test-temp17388174027191255c3da-086c-4270-b047-acac0b7bee0d:b7e82740-2c69-42fc-ab5a-dbf15bc016a1",
        "s3-project-integ-test-temp1738817099799016e7fa3-b9b5-46a2-bcd5-0888c646743f:8705a6a4-79ff-427a-a1c3-85c4e8fe462e",
        "s3-project-integ-test-temp1738816479281bb0c3606-5ebf-4623-bed5-12b60e9d3512:f23fc74b-a981-4835-8e28-375fcd4c99e4",
        "s3-project-integ-test-temp1738816263585c939a133-4d37-482c-9238-1dbff34b7674:ca28e234-0045-4ae6-8732-938b17597f50",
        "s3-project-integ-test-temp173881580873072d18733-8fe4-43b1-83f7-95f25bb27ccf:c6f0f55b-5736-47c7-a3aa-1b8461a6d5ed"
    ]
}
```

------

# Tutorial: Mit SSH eine Verbindung zu einer Sandbox herstellen
<a name="sandbox-ssh-tutorial"></a>

Dieses Tutorial zeigt Ihnen, wie Sie mithilfe eines SSH-Clients eine Verbindung zu einer CodeBuild Sandbox herstellen.

Um dieses Tutorial abzuschließen, müssen Sie zunächst:
+ Stellen Sie sicher, dass Sie über ein bestehendes AWS CodeBuild Projekt verfügen.
+ Richten Sie die entsprechenden IAM-Berechtigungen ein, die für Ihre CodeBuild Projektrolle konfiguriert sind. 
+ Installieren und konfigurieren Sie AWS CLI auf Ihrem lokalen Computer.

## Schritt 1: Starten Sie eine Sandbox
<a name="sandbox-ssh-tutorial.start-sandbox"></a>

**Um eine CodeBuild Sandbox in der Konsole zu starten**

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. Wählen Sie im linken Navigationsbereich **Build projects** aus. **Wählen Sie das Build-Projekt und dann Debug Build aus.**  
![\[Die Detailseite des Build-Projekts in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/project-debug-build.png)

1. Wählen Sie auf der Registerkarte **SSH-Client** die Option **Sandbox starten** aus.  
![\[Die Registerkarte „SSH-Client“ in der Konsole mit der Schaltfläche „Sandbox starten“.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/ssh-client-sandbox.png)

1. Der Sandbox-Initialisierungsprozess kann einige Zeit in Anspruch nehmen. Sie können eine Verbindung zur Sandbox herstellen, wenn sich ihr Status auf ändert. `RUN_SANDDBOX`  
![\[Die SSH-Sandbox-Verbindung ändert sich nach dem Status auf „RUN_SANDDBOX“.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/run-sandbox.png)

## Schritt 2: Ändern Sie die lokale SSH-Konfiguration
<a name="sandbox-ssh-tutorial.modify-ssh"></a>

Wenn Sie zum ersten Mal eine Verbindung zur Sandbox herstellen, müssen Sie einen einmaligen Einrichtungsvorgang mit den folgenden Schritten durchführen:

**Um die lokale SSH-Konfiguration in der Konsole zu ändern**

1. Suchen Sie die Setup-Befehle für Ihr Betriebssystem.

1. Öffnen Sie Ihr lokales Terminal, kopieren Sie dann die bereitgestellten Befehle und führen Sie sie aus, um das Skript herunterzuladen und auszuführen, um Ihre lokale SSH-Konfiguration einzurichten. Wenn Ihr Betriebssystem beispielsweise macOS ist, verwenden Sie den folgenden Befehl:  
![\[Die macOS-Befehle für die SSH-Verbindung zur CodeBuild Sandbox in der Konsole.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/modify-ssh-macOS.png)

1. Das Konfigurationsskript fügt die erforderlichen Konfigurationen für die Verbindung zu Ihren Sandboxen hinzu. Sie werden aufgefordert, diese Änderungen zu akzeptieren.

1. Nach erfolgreicher Konfiguration wird ein neuer SSH-Konfigurationseintrag für die CodeBuild Sandbox erstellt.  
![\[Eine erfolgreiche SSH-Sandbox-Verbindung.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/ssh-terminal-success.png)

## Schritt 3: Connect zur Sandbox her
<a name="sandbox-ssh-tutorial.connect-sandbox"></a>

**Um die lokale SSH-Konfiguration in der Konsole zu ändern**

1. Konfigurieren Sie die AWS CLI Authentifizierung und stellen Sie sicher, dass Ihr AWS CLI Benutzer über die entsprechenden `codebuild:StartSandboxConnection` Berechtigungen verfügt. Weitere Informationen finden Sie unter [Authentifizierung mithilfe von IAM-Benutzeranmeldedaten AWS CLI im Benutzerhandbuch für](https://docs.aws.amazon.com/cli/v1/userguide/cli-authentication-user.html) *die AWS Befehlszeilenschnittstelle für Version 1.*

1. Stellen Sie mit dem folgenden Befehl eine Connect zu Ihrer Sandbox her:

   ```
   ssh codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>
   ```
**Anmerkung**  
Um Verbindungsfehler zu beheben, verwenden Sie das `-v` Flag, um die ausführliche Ausgabe zu aktivieren. Beispiel, `ssh -v codebuild-sandbox-ssh=arn:aws:codebuild:us-east-1:<account-id>:sandbox/<sandbox-id>`.  
Weitere Hinweise zur Problembehebung finden Sie unter[Behebung von SSH-Verbindungsproblemen mit der AWS CodeBuild Sandbox](sandbox-troubleshooting.md).

## Schritt 4: Überprüfen Sie Ihre Ergebnisse
<a name="sandbox-ssh-tutorial.review-results"></a>

Sobald die Verbindung hergestellt ist, können Sie Build-Fehler debuggen, Build-Befehle testen, mit Konfigurationsänderungen experimentieren und Umgebungsvariablen und Abhängigkeiten mit Ihrer Sandbox überprüfen.

# Behebung von SSH-Verbindungsproblemen mit der AWS CodeBuild Sandbox
<a name="sandbox-troubleshooting"></a>

Verwenden Sie die Informationen in diesem Thema, um SSH-Verbindungsprobleme mit der CodeBuild Sandbox zu identifizieren, zu diagnostizieren und zu beheben.

**Topics**
+ [`StartSandboxConnection``InvalidInputException`Fehler beim Zugriff auf eine Sandbox-Umgebung per SSH CodeBuild](#sandbox-troubleshooting.invalid-input)
+ [Fehler: „Anmeldeinformationen konnten nicht gefunden werden“, wenn Sie eine SSH-Verbindung zur Sandbox-Umgebung herstellen CodeBuild](#sandbox-troubleshooting.credentials)
+ [`StartSandboxConnection``AccessDeniedException`Fehler beim Zugriff auf eine CodeBuild Sandbox-Umgebung per SSH](#sandbox-troubleshooting.access-denied)
+ [Fehler: „ssh: Hostname konnte nicht aufgelöst werden“ bei SSH in die Sandbox-Umgebung CodeBuild](#sandbox-troubleshooting.hostname)

## `StartSandboxConnection``InvalidInputException`Fehler beim Zugriff auf eine Sandbox-Umgebung per SSH CodeBuild
<a name="sandbox-troubleshooting.invalid-input"></a>

**Problem:** Wenn Sie versuchen, mithilfe des Befehls eine Verbindung zu einer CodeBuild Sandbox-Umgebung herzustellen`ssh codebuild-sandbox-ssh=<sandbox-arn>`, kann ein `InvalidInputException` Fehler auftreten, z. B.:

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for {sandbox-arn}
User: arn:aws:sts::<account-ID>:assumed-role/<service-role-name>/AWSCodeBuild-<UUID> 
is not authorized to perform: ssm:StartSession on resource.
```

```
An error occurred (InvalidInputException) when calling the StartSandboxConnection 
operation: Failed to start SSM session for 
sandbox <sandbox-arn>: codebuild:<UUID> is not connected.
```

**Mögliche Ursache:**
+ Fehlender Amazon EC2 Systems Manager Manager-Agent: Auf dem Build-Image ist der SSM-Agent nicht ordnungsgemäß installiert oder konfiguriert.
+ Unzureichende Berechtigungen: Der CodeBuild Projekt-Servicerolle fehlen die erforderlichen SSM-Berechtigungen.

**Empfohlene Lösung:** Wenn Sie ein benutzerdefiniertes Image für Ihren Build verwenden, gehen Sie wie folgt vor.

1. Installieren Sie den SSM Agent. Weitere Informationen finden Sie unter [Manuelles Installieren und Deinstallieren des SSM-Agenten auf Amazon EC2 EC2-Instances für Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) in der. ** Die SSM-Agent-Version muss oder höher sein. `3.0.1295.0`

1. Kopieren Sie die Datei [ https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/7.0/amazon-ssm-agent.json) in das Verzeichnis in Ihrem Image. `/etc/amazon/ssm/` Dadurch wird der **Container-Modus im** SSM-Agent aktiviert.

1. Stellen Sie sicher, dass die Servicerolle Ihres CodeBuild Projekts über die folgenden Berechtigungen verfügt, und starten Sie dann die Sandbox-Umgebung neu:

   ```
   {
      "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
    },
    {
       "Effect": "Allow",
       "Action": [
          "ssm:StartSession"
        ],
        "Resource": [
           "arn:aws:codebuild:region:account-id:build/*",
           "arn:aws:ssm:region::document/AWS-StartSSHSession"
        ]
    }
   ```

## Fehler: „Anmeldeinformationen konnten nicht gefunden werden“, wenn Sie eine SSH-Verbindung zur Sandbox-Umgebung herstellen CodeBuild
<a name="sandbox-troubleshooting.credentials"></a>

**Problem:** Wenn Sie versuchen, mithilfe des Befehls eine Verbindung zu einer CodeBuild Sandbox-Umgebung herzustellen`ssh codebuild-sandbox-ssh=<sandbox-arn>`, kann der folgende Anmeldeinformationsfehler auftreten:

```
Unable to locate credentials. You can configure credentials by running 
"aws configure".
```

**Mögliche Ursache:** Die AWS Anmeldeinformationen wurden in Ihrer lokalen Umgebung nicht richtig konfiguriert.

**Empfohlene Lösung:** Konfigurieren Sie Ihre AWS CLI Anmeldeinformationen gemäß der offiziellen Dokumentation: [Konfiguration der Einstellungen für die AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) im *AWS Befehlszeilenschnittstellen-Benutzerhandbuch für Version 2.*

## `StartSandboxConnection``AccessDeniedException`Fehler beim Zugriff auf eine CodeBuild Sandbox-Umgebung per SSH
<a name="sandbox-troubleshooting.access-denied"></a>

**Problem:** Wenn Sie versuchen, mithilfe des Befehls eine Verbindung zu einer CodeBuild Sandbox-Umgebung herzustellen`ssh codebuild-sandbox-ssh=<sandbox-arn>`, kann der folgende Berechtigungsfehler auftreten:

```
An error occurred (AccessDeniedException) when calling the StartSandboxConnection 
operation: 
User: arn:aws:sts::account-id:assumed-role/role-name
is not authorized to perform: codebuild:StartSandboxConnection on resource: 
sandbox-arn
because no identity-based policy allows the codebuild:StartSandboxConnection action
```

**Mögliche Ursache:** Ihre AWS Anmeldeinformationen verfügen nicht über die erforderlichen CodeBuild Berechtigungen, um diesen Vorgang auszuführen.

**Empfohlene Lösung:** Stellen Sie sicher, dass der mit Ihren AWS CLI Anmeldeinformationen verknüpfte IAM-Benutzer oder die IAM-Rolle über die folgenden Berechtigungen verfügt:

```
{
    "Effect": "Allow",
    "Action": [
       "codebuild:StartSandboxConnection"
     ],
     "Resource": [
        "arn:aws:codebuild:region:account-id:sandbox/*"
     ]
}
```

## Fehler: „ssh: Hostname konnte nicht aufgelöst werden“ bei SSH in die Sandbox-Umgebung CodeBuild
<a name="sandbox-troubleshooting.hostname"></a>

**Problem:** Beim Versuch, mithilfe des Befehls eine Verbindung zu einer CodeBuild Sandbox-Umgebung herzustellen`ssh codebuild-sandbox-ssh=<sandbox-arn>`, tritt der folgende Fehler bei der Auflösung des Hostnamens auf:

```
ssh: Could not resolve hostname
```

**Mögliche Ursache:** Dieser Fehler tritt normalerweise auf, wenn das erforderliche CodeBuild Sandbox-Verbindungsskript in Ihrer lokalen Umgebung nicht ordnungsgemäß ausgeführt wurde.

**Empfohlene Lösung:**

1. Laden Sie das CodeBuild Sandbox-Verbindungsskript herunter.

1. Führen Sie das Skript in Ihrem Terminal aus, um die erforderliche SSH-Konfiguration einzurichten.

1. Versuchen Sie erneut, Ihre SSH-Verbindung zur Sandbox-Umgebung herzustellen.

# Builds mit Session Manager debuggen
<a name="session-manager"></a>

In AWS CodeBuild können Sie einen laufenden Build anhalten und dann mithilfe des AWS Systems Manager Sitzungs-Managers eine Verbindung zum Build-Container herstellen und den Status des Containers anzeigen.

**Anmerkung**  
Diese Funktion ist in Windows-Umgebungen nicht verfügbar.

**Topics**
+ [Voraussetzungen](#ssm.prerequisites)
+ [Unterbrechen Sie den Build](#ssm-pause-build)
+ [Starte den Build](#ssm-start-build)
+ [Connect zum Build-Container her](#ssm-connect)
+ [Setzen Sie den Build fort](#ssm-resume-build)

## Voraussetzungen
<a name="ssm.prerequisites"></a>

Damit der Sitzungsmanager mit der Buildsitzung verwendet werden kann, müssen Sie die Sitzungsverbindung für den Build aktivieren. Es gibt zwei Voraussetzungen:
+ CodeBuild Bei kuratierten Linux-Standard-Images ist der SSM-Agent bereits installiert und der SSM-Agent aktiviert. ContainerMode 

  Wenn Sie ein benutzerdefiniertes Image für Ihren Build verwenden, gehen Sie wie folgt vor:

  1. Installieren Sie den SSM Agent. Weitere Informationen finden Sie im AWS Systems Manager Benutzerhandbuch unter [Manuelles Installieren des SSM-Agenten auf EC2-Instances für Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html). Die SSM-Agent-Version muss 3.0.1295.0 oder höher sein.

  1. Kopieren Sie die Datei [https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json](https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/5.0/amazon-ssm-agent.json) in das Verzeichnis in Ihrem Image. `/etc/amazon/ssm/` Dadurch wird der Container-Modus im SSM-Agent aktiviert.
**Anmerkung**  
Für benutzerdefinierte Images ist der neueste SSM-Agent erforderlich, damit diese Funktion erwartungsgemäß funktioniert.
+ Die CodeBuild Servicerolle muss die folgende SSM-Richtlinie haben:

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	  
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
         ],
         "Resource": "*"
       }
     ]
  }
  ```

------

  Sie können festlegen, dass die CodeBuild Konsole diese Richtlinie automatisch an Ihre Servicerolle anhängt, wenn Sie den Build starten. Alternativ können Sie diese Richtlinie manuell an Ihre Servicerolle anhängen.
+ Wenn Sie die **Überwachung und Protokollierung von Sitzungsaktivitäten** in den Systems Manager Manager-Einstellungen aktiviert haben, muss die CodeBuild Servicerolle auch über zusätzliche Berechtigungen verfügen. Die Berechtigungen sind unterschiedlich, je nachdem, wo die Protokolle gespeichert werden.  
CloudWatch Logs  
Wenn Sie CloudWatch Logs zum Speichern Ihrer Logs verwenden, fügen Sie der CodeBuild Servicerolle die folgende Berechtigung hinzu:    
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "logs:DescribeLogGroups",
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*:*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:MyLogGroup:*"
          }
      ]
  }
  ```  
Amazon S3  
Wenn Sie Amazon S3 zum Speichern Ihrer Protokolle verwenden, fügen Sie der CodeBuild Servicerolle die folgende Berechtigung hinzu:    
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:GetEncryptionConfiguration",
          "s3:PutObject"
        ],
        "Resource": [
          "arn:aws:s3:::<bucket-name>",
          "arn:aws:s3:::<bucket-name>/*"
        ]
      }
    ]
  }
  ```

  Weitere Informationen finden Sie im *AWS Systems Manager Benutzerhandbuch* unter [Überwachung und Protokollierung von Sitzungsaktivitäten](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging-auditing.html).

## Unterbrechen Sie den Build
<a name="ssm-pause-build"></a>

Um den Build anzuhalten, fügen Sie den **codebuild-breakpoint** Befehl in einer der Buildphasen Ihrer Buildspec-Datei ein. Der Build wird an diesem Punkt angehalten, sodass Sie eine Verbindung zum Build-Container herstellen und den Container in seinem aktuellen Zustand anzeigen können. 

Fügen Sie den Buildphasen in Ihrer Buildspec-Datei beispielsweise Folgendes hinzu.

```
phases:
  pre_build:
    commands:
      - echo Entered the pre_build phase...
      - echo "Hello World" > /tmp/hello-world
      - codebuild-breakpoint
```

Dieser Code erstellt die `/tmp/hello-world` Datei und unterbricht dann den Build an dieser Stelle.

## Starte den Build
<a name="ssm-start-build"></a>

Damit Session Manager mit der Build-Sitzung verwendet werden kann, müssen Sie Sitzungsverbindungen für den Build aktivieren. Gehen Sie dazu beim Starten des Builds wie folgt vor:

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. Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie das Build-Projekt und dann **Build mit Überschreibungen starten** aus.

1. Wählen Sie **Advanced build overrides (Erweiterter Build überschreibt)**.

1. Wählen Sie im Abschnitt **Umgebung** die Option **Sitzungsverbindung aktivieren** aus. Wenn diese Option nicht ausgewählt ist, werden alle **codebuild-resume** Befehle **codebuild-breakpoint** und ignoriert.

1. Nehmen Sie alle anderen gewünschten Änderungen vor und wählen Sie **Build starten**. 

1. Überwachen Sie den Build-Status in der Konsole. Wenn die Sitzung verfügbar ist, wird der Link **AWS Session Manager** im Abschnitt **Build-Status** angezeigt.

## Connect zum Build-Container her
<a name="ssm-connect"></a>

Sie können auf zwei Arten eine Verbindung zum Build-Container herstellen:

CodeBuild Konsole  
Öffnen Sie in einem Webbrowser den **AWS Session Manager-Link**, um eine Verbindung zum Build-Container herzustellen. Es wird eine Terminalsitzung geöffnet, mit der Sie den Build-Container durchsuchen und steuern können. 

AWS CLI  
Für dieses Verfahren muss auf Ihrem lokalen Computer das Session Manager-Plug-In installiert sein. Weitere Informationen finden [Sie unter Installieren des Session Manager-Plug-ins für die AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) im AWS Systems Manager Benutzerhandbuch. 

1. Rufen Sie die **batch-get-builds** API mit der Build-ID auf, um Informationen über den Build zu erhalten, einschließlich der ID des Sitzungsziels. Der Eigenschaftsname der Sitzungsziel-ID variiert je nach Ausgabetyp des `aws` Befehls. Aus diesem Grund `--output json` wird es dem Befehl hinzugefügt.

   ```
   aws codebuild batch-get-builds --ids <buildID> --region <region> --output json
   ```

1. Kopieren Sie den `sessionTarget` Eigenschaftswert. Der `sessionTarget` Eigenschaftsname kann je nach Ausgabetyp des `aws` Befehls variieren. Aus diesem `--output json` Grund wurde er dem Befehl im vorherigen Schritt hinzugefügt.

1. Verwenden Sie den folgenden Befehl, um eine Verbindung zum Build-Container herzustellen.

   ```
   aws ssm start-session --target <sessionTarget> --region <region>
   ```

Stellen Sie für dieses Beispiel sicher, dass die `/tmp/hello-world` Datei vorhanden ist und den Text enthält`Hello World`.

## Setzen Sie den Build fort
<a name="ssm-resume-build"></a>

Nachdem Sie die Untersuchung des Build-Containers abgeschlossen haben, geben Sie den **codebuild-resume** Befehl in der Container-Shell aus.

```
$ codebuild-resume
```

# Builds löschen AWS CodeBuild
<a name="delete-builds"></a>

Sie können das AWS CLI oder das verwenden AWS SDKs , um Builds in zu löschen AWS CodeBuild.

**Topics**
+ [Löschen von Builds (AWS CLI)](#delete-builds-cli)
+ [Löschen von Builds (AWS SDKs)](#delete-builds-sdks)

## Löschen von Builds (AWS CLI)
<a name="delete-builds-cli"></a>

Führen Sie den Befehl `batch-delete-builds` aus:

```
aws codebuild batch-delete-builds --ids ids
```

Ersetzen Sie im Befehl oben den folgenden Platzhalter:
+ *ids*: Erforderliche Zeichenfolge. Der IDs der zu löschenden Builds. Um mehrere Builds anzugeben, fügen Sie zwischen den einzelnen Build-IDs ein Leerzeichen ein. Eine Liste der Builds IDs finden Sie in den folgenden Themen:
  + [Sehen Sie sich eine Liste von build () an IDs AWS CLI](view-build-list.md#view-build-list-cli)
  + [Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

Wenn erfolgreich, erscheint ein `buildsDeleted`-Array in der Ausgabe, der den Amazon-Ressourcennamen (ARN) der einzelnen erfolgreich gelöschten Builds enthält. Informationen zu Builds, die nicht erfolgreich gelöscht werden konnten, werden in der Ausgabe innerhalb eines `buildsNotDeleted`-Arrays angezeigt.

Wenn Sie z. B. den folgenden Befehl ausführen:

```
aws codebuild batch-delete-builds --ids my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX
```

Die Informationen in der Ausgabe ähneln den folgenden:

```
{
  "buildsNotDeleted": [
    {
      "id": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX",
      "statusCode": "BUILD_IN_PROGRESS"
    }
  ], 
  "buildsDeleted": [
    "arn:aws:codebuild:us-west-2:123456789012:build/my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX"
  ]
}
```

## Löschen von Builds (AWS SDKs)
<a name="delete-builds-sdks"></a>

Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Retry Builds manuell einbauen AWS CodeBuild
<a name="retry-build"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um entweder einen einzelnen Build oder einen Batch-Build manuell erneut zu versuchen. AWS CodeBuild

**Topics**
+ [Versuchen Sie einen Build manuell erneut (Konsole)](#retry-build-console)
+ [Versuchen Sie einen Build manuell erneut ()AWS CLI](#retry-build-cli)
+ [Versuchen Sie einen Build manuell erneut ()AWS SDKs](#retry-build-sdks)

## Versuchen Sie einen Build manuell erneut (Konsole)
<a name="retry-build-console"></a>

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. Führen Sie eine der folgenden Aktionen aus:
   + **Wenn die *build-ID* Seite ***build-project-name*:** angezeigt wird, wählen Sie Retry build.**
   + Wählen Sie im Navigationsbereich **Build history** aus. Wählen Sie in der Liste der Builds das Feld für den Build aus und wählen Sie dann Build **erneut versuchen** aus.
   + Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie in der Liste der Build-Projekte in der Spalte **Name** den Link mit dem Namen für das gewünschte Build-Projekt aus. Wählen Sie in der Liste der Builds das Feld für den Build aus, und wählen Sie dann Build **erneut versuchen** aus.

**Anmerkung**  
In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. Zur Anzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** oder **Projects per page (Projekte je Seite)** aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.

## Versuchen Sie einen Build manuell erneut ()AWS CLI
<a name="retry-build-cli"></a>
+ Führen Sie den Befehl **retry-build** aus:

  ```
  aws codebuild retry-build --id <build-id> --idempotency-token <idempotencyToken>
  ```

  Ersetzen Sie im Befehl oben den folgenden Platzhalter:
  + *<build-id>*: Erforderliche Zeichenfolge. Die ID des Builds oder Batch-Builds, der wiederholt werden soll. Eine Liste der Builds IDs finden Sie in den folgenden Themen:
    + [Sehen Sie sich eine Liste von build () an IDs AWS CLI](view-build-list.md#view-build-list-cli)
    + [Eine Liste von Batch Build IDs (AWS CLI) anzeigen](view-build-list.md#view-batch-build-list-cli)
    + [Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)
    + [Eine Liste der Batch-Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)
  + `--idempotency-token`: Optional. Wenn Sie den **retry-build** Befehl mit der Option ausführen, ist ein eindeutiger Bezeichner oder ein Token, bei dem die Groß- und Kleinschreibung beachtet wird, in der `retry-build` Anforderung enthalten. Das Token ist nach der Anforderung 5 Minuten gültig. Wenn Sie die `retry-build` Anforderung mit demselben Token wiederholen, aber einen Parameter ändern, wird ein Fehler CodeBuild zurückgegeben, bei dem die Parameter nicht übereinstimmen.

## Versuchen Sie einen Build manuell erneut ()AWS SDKs
<a name="retry-build-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Retry wird automatisch eingebaut AWS CodeBuild
<a name="auto-retry-build"></a>

Sie können die AWS CodeBuild Konsole verwenden AWS CLI, oder AWS SDKs um Ihre Builds automatisch erneut zu versuchen. AWS CodeBuild Wenn die automatische Wiederholung aktiviert ist, CodeBuild wird nach einem fehlgeschlagenen Build bis zu einem bestimmten `RetryBuild` Limit automatisch über die Servicerolle des Projekts aufgerufen. Wenn das Limit für automatische Wiederholungen beispielsweise auf zwei festgelegt ist, CodeBuild wird die `RetryBuild` API aufgerufen, um Ihren Build automatisch bis zu zwei weitere Male zu wiederholen.

**Anmerkung**  
CodeBuild unterstützt keine automatische Wiederholung für. CodePipeline

**Topics**
+ [Automatischer Versuch, einen Build erneut auszuführen (Konsole)](#auto-retry-build-console)
+ [Versuchen Sie einen Build automatisch erneut ()AWS CLI](#auto-retry-build-cli)
+ [Versuchen Sie automatisch, einen Build ()AWS SDKs erneut auszuführen](#auto-retry-build-sdks)

## Automatischer Versuch, einen Build erneut auszuführen (Konsole)
<a name="auto-retry-build-console"></a>

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. Wählen Sie **Create project** (Projekt erstellen) aus. 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).
   +  In **Environment** (Umgebung): 
     +  Geben Sie unter **Limit für automatische Wiederholungen** die maximale Anzahl von automatischen Wiederholungen ein, die nach einem fehlgeschlagenen Build gewünscht werden.

1. **Wählen Sie unter **Umgebung** die Option Zusätzliche Konfiguration aus.**

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

## Versuchen Sie einen Build automatisch erneut ()AWS CLI
<a name="auto-retry-build-cli"></a>
+ Führen Sie den Befehl **create-project** aus:

  ```
  aws codebuild create-project \
      --name "<project-name>" \
      --auto-retry-limit <auto-retry-limit> \
      --source "<source>" \
      --artifacts {<artifacts>} \
      --environment "{\"type\": \"environment-type>\",\"image\": \"image-type>\",\"computeType\": \"compute-type>\"}" \
      --service-role "service-role>"
  ```

  Ersetzen Sie im Befehl oben die folgenden Platzhalter:
  + *<auto-retry-limit>*: Legen Sie das Limit für automatische Wiederholungen auf die maximale Anzahl von automatischen Wiederholungen fest, die nach einem fehlgeschlagenen Build gewünscht werden.
  + *<project-name>*,,*<source>*, *<artifacts>* *environment-type>* *image-type>**compute-type>*, und*service-role>*: Stellen Sie die gewünschten Projektkonfigurationseinstellungen ein.

## Versuchen Sie automatisch, einen Build ()AWS SDKs erneut auszuführen
<a name="auto-retry-build-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Stopp baut ein AWS CodeBuild
<a name="stop-build"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um einen Build in zu beenden AWS CodeBuild.

**Topics**
+ [Stoppen eines Builds (Konsole)](#stop-build-console)
+ [Stoppen eines Builds (AWS CLI)](#stop-build-cli)
+ [Stoppen eines Builds (AWS SDKs)](#stop-build-sdks)

## Stoppen eines Builds (Konsole)
<a name="stop-build-console"></a>

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. Führen Sie eine der folgenden Aktionen aus:
   + **Wenn die *build-ID* Seite ***build-project-name*:** angezeigt wird, wählen Sie Build beenden.**
   + Wählen Sie im Navigationsbereich **Build history** aus. Wählen Sie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf **Stop build (Build stoppen)**.
   + Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie in der Liste der Build-Projekte in der Spalte **Name** den Link mit dem Namen für das gewünschte Build-Projekt aus. Wählen Sie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf **Stop build (Build stoppen)**.

**Anmerkung**  
In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. Zur Anzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** oder **Projects per page (Projekte je Seite)** aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.  
Wenn ein Build AWS CodeBuild nicht erfolgreich beendet werden kann (z. B. wenn der Build-Prozess bereits abgeschlossen ist), ist die Schaltfläche **Stopp** deaktiviert oder wird möglicherweise nicht angezeigt.

## Stoppen eines Builds (AWS CLI)
<a name="stop-build-cli"></a>
+ Führen Sie den Befehl **stop-build** aus:

  ```
  aws codebuild stop-build --id id
  ```

  Ersetzen Sie im Befehl oben den folgenden Platzhalter:
  + *id*: Erforderliche Zeichenfolge. Die ID des zu stoppenden Builds. Eine Liste der Builds IDs finden Sie in den folgenden Themen:
    + [Sehen Sie sich eine Liste von build () an IDs AWS CLI](view-build-list.md#view-build-list-cli)
    + [Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

  Wenn der Build AWS CodeBuild erfolgreich beendet wurde, lautet der `buildStatus` Wert im `build` Objekt in der Ausgabe`STOPPED`.

  Wenn der Build CodeBuild nicht erfolgreich beendet werden kann (z. B. wenn der Build bereits abgeschlossen ist), entspricht der `buildStatus` Wert im `build` Objekt in der Ausgabe dem endgültigen Build-Status (z. B.`SUCCEEDED`).

## Stoppen eines Builds (AWS SDKs)
<a name="stop-build-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Stoppen Sie Batch-Builds AWS CodeBuild
<a name="stop-batch-build"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um einen Batch-Build zu beenden AWS CodeBuild.

**Anmerkung**  
Wenn Sie Lambda Compute in Ihrem Batch-Build verwenden, kann der laufende Lambda-Build nicht gestoppt werden.

**Topics**
+ [Stoppen Sie einen Batch-Build (Konsole)](#stop-batch-build-console)
+ [Stoppen Sie einen Batch-Build (AWS CLI)](#stop-batch-build-cli)
+ [Stoppen Sie einen Batch-Build ()AWS SDKs](#stop-batch-build-sdks)

## Stoppen Sie einen Batch-Build (Konsole)
<a name="stop-batch-build-console"></a>

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. Führen Sie eine der folgenden Aktionen aus:
   + **Wenn die *build-ID* Seite ***build-project-name*:** angezeigt wird, wählen Sie Build beenden.**
   + Wählen Sie im Navigationsbereich **Build history** aus. Wählen Sie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf **Stop build (Build stoppen)**.
   + Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie in der Liste der Build-Projekte in der Spalte **Name** den Link mit dem Namen für das gewünschte Build-Projekt aus. Wählen Sie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf **Stop build (Build stoppen)**.

**Anmerkung**  
In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. Zur Anzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** oder **Projects per page (Projekte je Seite)** aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.

## Stoppen Sie einen Batch-Build (AWS CLI)
<a name="stop-batch-build-cli"></a>
+ Führen Sie den Befehl [https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/stop-build-batch.html) aus:

  ```
  aws codebuild stop-build-batch --id <batch-build-id>
  ```

  Ersetzen Sie im Befehl oben den folgenden Platzhalter:
  + *<batch-build-id>*: Erforderliche Zeichenfolge. Der Bezeichner des Batch-Builds, der beendet werden soll. Eine Liste der Batch-Build-Identifikatoren finden Sie in den folgenden Themen:
    + [Eine Liste von Batch Build IDs (AWS CLI) anzeigen](view-build-list.md#view-batch-build-list-cli)
    + [Eine Liste der Batch-Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-batch-builds-for-project-cli)

## Stoppen Sie einen Batch-Build ()AWS SDKs
<a name="stop-batch-build-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Trigger wird automatisch AWS CodeBuild erstellt
<a name="build-triggers"></a>

Sie können einen Auslöser für ein Projekt erstellen, um eine Erstellung pro Stunde, Tag oder Woche zu planen. Sie können einen Trigger auch bearbeiten, um eine benutzerdefinierte Regel mit einem CloudWatch Amazon-Cron-Ausdruck zu verwenden. Mit einem cron-Ausdruck können Sie beispielsweise eine Erstellung für eine bestimmte Zeit an jedem Wochentag planen. Informationen zum Erstellen und Bearbeiten von Triggern finden Sie unter [AWS CodeBuild Trigger erstellen](#trigger-create) und[AWS CodeBuild Auslöser bearbeiten](triggers-edit.md).

**Topics**
+ [AWS CodeBuild Trigger erstellen](#trigger-create)
+ [AWS CodeBuild Auslöser bearbeiten](triggers-edit.md)

## AWS CodeBuild Trigger erstellen
<a name="trigger-create"></a>

Sie können einen Auslöser für ein Projekt erstellen, um eine Erstellung pro Stunde, Tag oder Woche zu planen. Sie können einen Trigger auch mithilfe einer benutzerdefinierten Regel mit einem CloudWatch Amazon-Cron-Ausdruck erstellen. Mit einem cron-Ausdruck können Sie beispielsweise eine Erstellung für eine bestimmte Zeit an jedem Wochentag planen. 

**Anmerkung**  
Es ist nicht möglich, einen Batch-Build von einem Build-Trigger, einem EventBridge Amazon-Ereignis oder einer AWS Step Functions Aufgabe aus zu starten.

**Topics**
+ [AWS CodeBuild Trigger erstellen (Konsole)](#trigger-create-console)
+ [AWS CodeBuild Trigger programmgesteuert erstellen](#trigger-create-code)

### AWS CodeBuild Trigger erstellen (Konsole)
<a name="trigger-create-console"></a>

Gehen Sie wie folgt vor, um Trigger mit dem zu erstellen AWS-Managementkonsole.

**So erstellen Sie einen Auslöser** 

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. Wählen Sie im linken Navigationsbereich **Build projects** aus.

1. Klicken Sie auf den Link des Build-Projekts, dem Sie einen Auslöser hinzufügen möchten, und wählen Sie dann die Registerkarte **Build triggers (Auslöser erstellen)**.
**Anmerkung**  
Standardmäßig werden die 100 neuesten Build-Projekte angezeigt. Zur Anzeige von weiteren Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Projects per page (Projekte je Seite)** aus oder verwenden die Vorwärts- und Rückwärtspfeile.

1. Wählen Sie **Create trigger**.

1. Geben Sie unter **Trigger name (Auslösername)** einen Namen ein.

1. Wählen Sie in der Dropdown-Liste **Frequency (Frequenz)** die Frequenz für den Auslöser aus. Wenn Sie mit einem Cron-Ausdruck eine Frequenz erstellen möchten, wählen Sie **Custom (Benutzerdefiniert)** aus.

1. Legen Sie die Parameter für die Häufigkeit Ihres Auslösers fest. Sie können die ersten paar Zeichen Ihrer Auswahl in das Textfeld eingeben, um die Elemente des Dropdown-Menüs zu filtern.
**Anmerkung**  
 Die Startstunden und -minuten basieren auf Null. Die Startminute ist eine Zahl zwischen Null und 59. Die Startstunde ist eine Zahl zwischen Null und 23. Ein täglicher Trigger, der jeden Tag um 12:15 Uhr startet, hat beispielsweise eine Startstunde von 12 und eine Startminute von 15. Ein täglicher Trigger, der jeden Tag um Mitternacht beginnt, hat eine Startstunde von Null und eine Startminute von Null. Ein täglicher Trigger, der jeden Tag um 23:59 Uhr beginnt, hat eine Startstunde von 23 und eine Startminute von 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/build-triggers.html)

1.  Wählen Sie **Enable this trigger (Diesen Trigger aktivieren)** aus. 

1.  (Optional) Erweitern Sie den Abschnitt **Advanced (Erweitert)**. Geben Sie in das Feld **Source version (Quellversion)** eine Version der Quelle ein. 
   +  Geben Sie für Amazon S3 die Versions-ID ein, die der Version des Eingabeartefakts entspricht, das Sie erstellen möchten. Wenn Sie das Feld **Source version (Quellversion)** leer lassen, wird die neueste Version verwendet. 
   +  Geben Sie für AWS CodeCommit eine Commit-ID ein. Wenn das Feld **Source version (Quellversion)** leer bleibt, wird die HEAD-Commit-ID der Standard-Branch verwendet. 
   + Geben Sie für GitHub oder GitHub Enterprise eine Commit-ID, eine Pull-Request-ID, einen Branch-Namen oder einen Tag-Namen ein, der der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn Sie eine Pull-Anforderungs-ID angeben, muss diese das Format `pr/pull-request-ID` verwenden (Beispiel: `pr/25`). Wenn Sie einen Branch-Namen angeben wird, wird die Commit-ID von HEAD verwendet. Wenn das Feld **Source version (Quellversion)** leer ist, wird die HEAD-Commit-ID für die Standard-Branch verwendet.
   + Für Bitbucket geben Sie eine Commit-ID, einen Verzweigungsnamen oder einen Tag-Namen, die/der der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn Sie einen Branch-Namen angeben wird, wird die Commit-ID von HEAD verwendet. Wenn das Feld **Source version (Quellversion)** leer ist, wird die HEAD-Commit-ID für die Standard-Branch verwendet.

1. (Optional) Geben Sie ein Timeout zwischen 5 Minuten und 2160 Minuten (36 Stunden) an. Dieser Wert gibt an, wie lange ein Build AWS CodeBuild versucht, bevor er beendet wird. Wenn die Felder **Hours (Stunden)** und **Minutes (Minuten)** leer bleiben, wird der Timeout-Standardwert im Projekt verwendet. 

1. Wählen Sie **Create trigger**.

### AWS CodeBuild Trigger programmgesteuert erstellen
<a name="trigger-create-code"></a>

CodeBuild verwendet EventBridge Amazon-Regeln für Build-Trigger. Sie können die EventBridge API verwenden, um programmgesteuert Build-Trigger für Ihre CodeBuild Projekte zu erstellen. Weitere Informationen finden Sie in der [Amazon EventBridge API-Referenz](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

# AWS CodeBuild Auslöser bearbeiten
<a name="triggers-edit"></a>

Sie können einen Auslöser für ein Projekt bearbeiten, um eine Erstellung pro Stunde, Tag oder Woche zu planen. Sie können einen Trigger auch bearbeiten, um eine benutzerdefinierte Regel mit einem CloudWatch Amazon-Cron-Ausdruck zu verwenden. Mit einem cron-Ausdruck können Sie beispielsweise eine Erstellung für eine bestimmte Zeit an jedem Wochentag planen. Weitere Informationen zum Erstellen eines Auslösers finden Sie unter [AWS CodeBuild Trigger erstellen](build-triggers.md#trigger-create).

**Topics**
+ [AWS CodeBuild Trigger bearbeiten (Konsole)](#triggers-edit-console)
+ [AWS CodeBuild Trigger programmgesteuert bearbeiten](#trigger-edit-code)

## AWS CodeBuild Trigger bearbeiten (Konsole)
<a name="triggers-edit-console"></a>

Gehen Sie wie folgt vor, um Trigger mit dem zu bearbeiten AWS-Managementkonsole.

**So bearbeiten Sie einen Auslöser**

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. Wählen Sie im linken Navigationsbereich **Build projects** aus.

1. Wählen Sie den Link des Build-Projekts aus, das Sie bearbeiten möchten, und anschließend die Registerkarte **Build triggers (Build-Auslöser)**.
**Anmerkung**  
Standardmäßig werden die 100 neuesten Build-Projekte angezeigt. Zur Anzeige von weiteren Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Projects per page (Projekte je Seite)** aus oder verwenden die Vorwärts- und Rückwärtspfeile.

1. Aktivieren Sie das Optionsfeld neben dem Auslöser, den Sie ändern möchten, und klicken Sie dann auf **Edit (Bearbeiten)**.

1. Wählen Sie in der Dropdown-Liste **Frequency (Frequenz)** die Frequenz für den Auslöser aus. Wenn Sie mit einem Cron-Ausdruck eine Frequenz erstellen möchten, wählen Sie **Custom (Benutzerdefiniert)** aus.

1. Legen Sie die Parameter für die Häufigkeit Ihres Auslösers fest. Sie können die ersten paar Zeichen Ihrer Auswahl in das Textfeld eingeben, um die Elemente des Dropdown-Menüs zu filtern.
**Anmerkung**  
 Die Startstunden und -minuten basieren auf Null. Die Startminute ist eine Zahl zwischen Null und 59. Die Startstunde ist eine Zahl zwischen Null und 23. Ein täglicher Trigger, der jeden Tag um 12:15 Uhr startet, hat beispielsweise eine Startstunde von 12 und eine Startminute von 15. Ein täglicher Trigger, der jeden Tag um Mitternacht beginnt, hat eine Startstunde von Null und eine Startminute von Null. Ein täglicher Trigger, der jeden Tag um 23:59 Uhr beginnt, hat eine Startstunde von 23 und eine Startminute von 59.   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/triggers-edit.html)

1.  Wählen Sie **Enable this trigger (Diesen Trigger aktivieren)** aus. 

**Anmerkung**  
Sie können die CloudWatch Amazon-Konsole unter verwenden, [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)um Quellversion, Timeout und andere Optionen zu bearbeiten, die in AWS CodeBuild nicht verfügbar sind.

## AWS CodeBuild Trigger programmgesteuert bearbeiten
<a name="trigger-edit-code"></a>

CodeBuild verwendet EventBridge Amazon-Regeln für Build-Trigger. Sie können die EventBridge API verwenden, um die Build-Trigger für Ihre CodeBuild Projekte programmgesteuert zu bearbeiten. Weitere Informationen finden Sie in der [Amazon EventBridge API-Referenz](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

# Build-Details anzeigen in AWS CodeBuild
<a name="view-build-details"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, um Details AWS SDKs zu Builds anzuzeigen, die von verwaltet werden CodeBuild.

**Topics**
+ [Anzeigen von Build-Details (Konsole)](#view-build-details-console)
+ [Anzeigen von Build-Details (AWS CLI)](#view-build-details-cli)
+ [Anzeigen von Build-Details (AWS SDKs)](#view-build-details-sdks)
+ [Übergang von Build-Phasen](view-build-details-phases.md)

## Anzeigen von Build-Details (Konsole)
<a name="view-build-details-console"></a>

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. Führen Sie eine der folgenden Aktionen aus:
   + Wählen Sie im Navigationsbereich **Build history** aus. Wählen Sie in der Liste der Builds in der Spalte **Build run (Build-Ausführung)** den Link für den gewünschten Build aus. 
   + Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie in der Liste der Build-Projekte in der Spalte **Name** den Link mit dem Namen für das gewünschte Build-Projekt aus. Wählen Sie dann in der Liste der Builds in der Spalte **Build run (Build-Ausführung)** den Link für den Build aus.
**Anmerkung**  
In der Standardeinstellung werden nur die letzten 10 Builds oder Build-Projekte angezeigt. Zur Anzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** oder **Projects per page (Projekte je Seite)** aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.

## Anzeigen von Build-Details (AWS CLI)
<a name="view-build-details-cli"></a>

Weitere Informationen zur Verwendung von with finden Sie AWS CodeBuild unter. AWS CLI [Befehlszeilenreferenz](cmd-ref.md)

Führen Sie den Befehl **batch-get-builds** aus:

```
aws codebuild batch-get-builds --ids ids
```

Ersetzen die folgenden Platzhalter:
+ *ids*: Erforderliche Zeichenfolge. Ein oder mehrere Build IDs , über die Sie sich Details ansehen können. Um mehr als ein Build-ID anzugeben, fügen Sie zwischen den einzelnen Build-IDs ein Leerzeichen ein. Sie können bis zu 100 Build angeben IDs. Eine Liste der Builds IDs finden Sie in den folgenden Themen:
  + [Sehen Sie sich eine Liste von build () an IDs AWS CLI](view-build-list.md#view-build-list-cli)
  + [Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](view-builds-for-project.md#view-builds-for-project-cli)

Wenn Sie z. B. den folgenden Befehl ausführen:

```
aws codebuild batch-get-builds --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE my-other-project:813bb6c6-891b-426a-9dd7-6d8a3EXAMPLE
```

Kann der Befehl erfolgreich ausgeführt werden, werden Daten wie die in [So zeigen Sie eine Zusammenfassung der Build-Informationen an](getting-started-overview.md#getting-started-cli-monitor-build-cli) beschriebenen in der Ausgabe angezeigt.

## Anzeigen von Build-Details (AWS SDKs)
<a name="view-build-details-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Übergang von Build-Phasen
<a name="view-build-details-phases"></a>

Die Installation AWS CodeBuild erfolgt phasenweise:



![\[Die CodeBuild Phasen.\]](http://docs.aws.amazon.com/de_de/codebuild/latest/userguide/images/build-phases.png)




**Wichtig**  
Die `UPLOAD_ARTIFACTS`-Phase wird immer angestrebt, auch wenn die `BUILD`-Phase fehlschlägt.

# Sehen Sie sich eine Liste der eingebauten Geräte IDs an AWS CodeBuild
<a name="view-build-list"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um eine Liste der Builds IDs für Builds anzuzeigen, die von verwaltet werden CodeBuild.

**Topics**
+ [Eine Liste von Builds anzeigen IDs (Konsole)](#view-build-list-console)
+ [Sehen Sie sich eine Liste von build () an IDs AWS CLI](#view-build-list-cli)
+ [Eine Liste von Batch Build IDs (AWS CLI) anzeigen](#view-batch-build-list-cli)
+ [Eine Liste von build IDs (AWS SDKs) anzeigen](#view-build-list-sdks)

## Eine Liste von Builds anzeigen IDs (Konsole)
<a name="view-build-list-console"></a>

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. Wählen Sie im Navigationsbereich **Build history** aus. 
**Anmerkung**  
In der Standardeinstellung werden nur die letzten 10 Builds angezeigt. Zur Anzeige von weiteren Builds wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** aus oder verwenden die Vorwärts- und Rückwärtspfeile.

## Sehen Sie sich eine Liste von build () an IDs AWS CLI
<a name="view-build-list-cli"></a>

Weitere Informationen zur Verwendung von AWS CLI with CodeBuild finden Sie unter[Befehlszeilenreferenz](cmd-ref.md).
+ Führen Sie den Befehl **list-builds** aus:

  ```
  aws codebuild list-builds --sort-order sort-order --next-token next-token
  ```

  Ersetzen Sie im Befehl oben die folgenden Platzhalter:
  + *sort-order*: Optionale Zeichenfolge, die angibt, wie der Build aufgelistet werden soll IDs. Gültige Werte sind `ASCENDING` und `DESCENDING`.
  + *next-token*: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als 100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben, zusammen mit einer eindeutigen Zeichenfolge namens *next token*. Führen Sie diesen Befehl erneut aus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgenden "next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

  Wenn Sie z. B. den folgenden Befehl ausführen:

  ```
  aws codebuild list-builds --sort-order ASCENDING
  ```

  Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Wenn Sie diesen Befehl erneut ausführen:

  ```
  aws codebuild list-builds --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Eine Liste von Batch Build IDs (AWS CLI) anzeigen
<a name="view-batch-build-list-cli"></a>

Weitere Informationen zur Verwendung von AWS CLI with CodeBuild finden Sie unter[Befehlszeilenreferenz](cmd-ref.md).
+ Führen Sie den Befehl **list-build-batches** aus:

  ```
  aws codebuild list-build-batches --sort-order sort-order --next-token next-token
  ```

  Ersetzen Sie im Befehl oben die folgenden Platzhalter:
  + *sort-order*: Optionale Zeichenfolge, die angibt, wie der Batch-Build aufgelistet werden soll IDs. Gültige Werte sind `ASCENDING` und `DESCENDING`.
  + *next-token*: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als 100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben, zusammen mit einer eindeutigen Zeichenfolge namens *next token*. Führen Sie diesen Befehl erneut aus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgenden "next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

  Wenn Sie z. B. den folgenden Befehl ausführen:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING
  ```

  Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

  ```
  {
    "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
    "ids": [
      "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE"
      "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE"
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE"
    ]
  }
  ```

  Wenn Sie diesen Befehl erneut ausführen:

  ```
  aws codebuild list-build-batches --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
  ```

  Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

  ```
  {
    "ids": [
      "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE",
      "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE",
      ... The full list of build IDs has been omitted for brevity ...
      "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE"
    ]
  }
  ```

## Eine Liste von build IDs (AWS SDKs) anzeigen
<a name="view-build-list-sdks"></a>

Weitere Informationen zur Verwendung CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).

# Eine Liste der Builds IDs für ein Build-Projekt anzeigen in AWS CodeBuild
<a name="view-builds-for-project"></a>

Sie können die AWS CodeBuild Konsole oder verwenden AWS CLI, AWS SDKs um eine Liste der Builds IDs für ein Build-Projekt in anzuzeigen CodeBuild.

**Topics**
+ [Eine Liste der Builds IDs für ein Build-Projekt (Konsole) anzeigen](#view-builds-for-project-console)
+ [Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](#view-builds-for-project-cli)
+ [Eine Liste der Batch-Builds IDs für ein Build-Projekt anzeigen (AWS CLI)](#view-batch-builds-for-project-cli)
+ [Zeigt eine Liste der Builds IDs für ein Build-Projekt an (AWS SDKs)](#view-builds-for-project-sdks)

## Eine Liste der Builds IDs für ein Build-Projekt (Konsole) anzeigen
<a name="view-builds-for-project-console"></a>

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

1. Wählen Sie im linken Navigationsbereich **Build projects** aus. Wählen Sie in der Liste der Build-Projekte in der Spalte **Name** das gewünschte Build-Projekt aus. 

**Anmerkung**  
In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. Zur Anzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für **Builds per page (Builds je Seite)** oder **Projects per page (Projekte je Seite)** aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.

## Eine Liste der Builds IDs für ein Build-Projekt anzeigen (AWS CLI)
<a name="view-builds-for-project-cli"></a>

Weitere Informationen zur Verwendung von AWS CLI with AWS CodeBuild finden Sie unter[Befehlszeilenreferenz](cmd-ref.md).

Führen Sie den Befehl **list-builds-for-project** aus, wie folgt:

```
aws codebuild list-builds-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Ersetzen Sie im Befehl oben die folgenden Platzhalter:
+ *project-name*: Erforderliche Zeichenfolge, die verwendet wird, um den Namen des Build-Projekts anzugeben, IDs für das Builds aufgelistet werden sollen. Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unter [Anzeigen einer Liste mit Build-Projektnamen (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: Optionale Zeichenfolge, die angibt, wie der Build aufgelistet werden soll IDs. Gültige Werte sind `ASCENDING` und `DESCENDING`.
+ *next-token*: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als 100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben, zusammen mit einer eindeutigen Zeichenfolge namens *next token*. Führen Sie diesen Befehl erneut aus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgend zurückgegebenen "next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie beispielsweise folgenden Befehl ausführen:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Sollte die Ausgabe etwa wie folgt aussehen:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Wenn Sie diesen Befehl erneut ausführen:

```
aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Die Ausgabe sollte etwa wie folgt aussehen:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Eine Liste der Batch-Builds IDs für ein Build-Projekt anzeigen (AWS CLI)
<a name="view-batch-builds-for-project-cli"></a>

Weitere Informationen zur Verwendung von AWS CLI with AWS CodeBuild finden Sie unter[Befehlszeilenreferenz](cmd-ref.md).

Führen Sie den Befehl **list-build-batches-for-project** aus, wie folgt:

```
aws codebuild list-build-batches-for-project --project-name project-name --sort-order sort-order --next-token next-token
```

Ersetzen Sie im Befehl oben die folgenden Platzhalter:
+ *project-name*: Erforderliche Zeichenfolge, die verwendet wird, um den Namen des Build-Projekts anzugeben, IDs für das Builds aufgelistet werden sollen. Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unter [Anzeigen einer Liste mit Build-Projektnamen (AWS CLI)](view-project-list.md#view-project-list-cli).
+ *sort-order*: Optionale Zeichenfolge, die angibt, wie der Build aufgelistet werden soll IDs. Gültige Werte sind `ASCENDING` und `DESCENDING`.
+ *next-token*: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als 100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben, zusammen mit einer eindeutigen Zeichenfolge namens *next token*. Führen Sie diesen Befehl erneut aus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgend zurückgegebenen "next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie beispielsweise folgenden Befehl ausführen:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING
```

Sollte die Ausgabe etwa wie folgt aussehen:

```
{
  "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==",
  "ids": [
    "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE"
    "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE"
  ]
}
```

Wenn Sie diesen Befehl erneut ausführen:

```
aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==
```

Die Ausgabe sollte etwa wie folgt aussehen:

```
{
  "ids": [
    "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE"
    "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE"
    ... The full list of build IDs has been omitted for brevity ...
    "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"
  ]
}
```

## Zeigt eine Liste der Builds IDs für ein Build-Projekt an (AWS SDKs)
<a name="view-builds-for-project-sdks"></a>

Weitere Informationen zur Verwendung AWS CodeBuild mit dem AWS SDKs finden Sie unter[AWS SDKs und Werkzeug-Referenz](sdk-ref.md).