

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.

# 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)