

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.

# Pipeline-Erklärung
<a name="pipeline-requirements"></a>

Die Pipeline- und Metadatenebene einer Pipeline hat eine grundlegende Struktur, die die folgenden Parameter und die folgende Syntax umfasst. Der Pipeline-Parameter stellt die Struktur der Aktionen und Phasen dar, die in der Pipeline ausgeführt werden sollen. 

Weitere Informationen finden Sie unter dem [PipelineDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineDeclaration.html)Objekt im *CodePipeline API-Leitfaden*.

Das folgende Beispiel zeigt die Pipeline- und Metadatenebene der Pipeline-Struktur sowohl in JSON als auch in YAML für eine Pipeline vom Typ V2.

------
#### [ YAML ]

```
pipeline:
  name: MyPipeline
  roleArn: >-
    arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline
  artifactStore:
    type: S3
    location: amzn-s3-demo-bucket
  stages:
    ...
  version: 6
  executionMode: SUPERSEDED
  pipelineType: V2
  variables:
  - name: MyVariable
    defaultValue: '1'
  triggers:
  - providerType: CodeStarSourceConnection
    gitConfiguration:
      sourceActionName: Source
      push:
      - branches:
          includes:
          - main
          excludes:
          - feature-branch
      pullRequest:
      - events:
        - CLOSED
        branches:
          includes:
          - main*
metadata:
  pipelineArn: 'arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline'
  created: '2019-12-12T06:49:02.733000+00:00'
  updated: '2020-09-10T06:34:07.447000+00:00'
  pollingDisabledAt: '2020-09-10T06:34:07.447000\$100:00'
```

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

```
{
    "pipeline": {
        "name": "MyPipeline",
        "roleArn": "arn:aws:iam::ACCOUNT_ID:role/service-role/AWSCodePipelineServiceRole-us-west-2-MyPipeline",
        "artifactStore": {
            "type": "S3",
            "location": "amzn-s3-demo-bucket"
        },
        "stages": {
            ...   
    },
        "version": 6,
        "executionMode": "SUPERSEDED",
                "pipelineType": "V2",
        "variables": [
            {
                "name": "MyVariable",
                "defaultValue": "1"
            }
        ],
        "triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "main*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
    "metadata": {
        "pipelineArn": "arn:aws:codepipeline:us-west-2:ACCOUNT_ID:MyPipeline",
        "created": "2019-12-12T06:49:02.733000+00:00",
        "updated": "2020-09-10T06:34:07.447000+00:00",
        "pollingDisabledAt": "2020-09-10T06:34:07.447000+00:00"
    }
}
```

------

## `name`
<a name="pipeline.name"></a>

Der Name der Pipeline. Wenn Sie eine Pipeline bearbeiten oder aktualisieren, kann der Pipelinename nicht geändert werden.

**Anmerkung**  
Wenn Sie eine vorhandene Pipeline umbenennen möchten, können Sie mit dem CLI-Befehl `get-pipeline` eine JSON-Datei erstellen, die die Struktur Ihrer Pipeline enthält. Anschließend können Sie mit dem CLI-Befehl `create-pipeline` eine Pipeline mit dieser Struktur erstellen und ihr einen neuen Namen geben.

## `roleArn`
<a name="pipeline.roleArn"></a>

Der IAM-ARN für die CodePipeline Servicerolle, z. B. arn:aws:iam: :80398example:role/ \$1Service\$1Role. CodePipeline

Um die Konsole zum Anzeigen des ARN der Pipeline-Dienstrolle anstelle der JSON-Struktur zu verwenden, wählen Sie Ihre Pipeline in der Konsole aus und wählen Sie dann **Einstellungen** aus. Auf der Registerkarte **Allgemein** wird das **ARN-Feld für die Servicerolle** angezeigt.

## `artifactStore`ODER `artifactStores`
<a name="pipeline.artifactStore"></a>

Das `artifactStore` Feld enthält den Typ und die Position des Artefakt-Buckets für eine Pipeline mit allen Aktionen in derselben AWS Region. Wenn Sie Aktionen in einer anderen Region als Ihrer Pipeline hinzufügen, wird das `artifactStores` Mapping verwendet, um den Artefakt-Bucket für jede AWS Region aufzulisten, in der Aktionen ausgeführt werden. Wenn Sie eine Pipeline erstellen oder bearbeiten, müssen Sie einen Artefakt-Bucket in der Pipelineregion haben, sowie einen Artefakt-Bucket für jede Region, in der Sie eine Aktion ausführen möchten. 

**Anmerkung**  
In der Pipeline-Struktur müssen Sie entweder `artifactStore` oder `artifactStores` in Ihre Pipeline aufnehmen, aber Sie können nicht beide verwenden. Wenn Sie eine regionsübergreifende Aktion in Ihrer Pipeline erstellen, müssen Sie `artifactStores` verwenden.

Das folgende Beispiel zeigt die grundlegende Struktur für eine Pipeline mit regionsübergreifenden Aktionen, die den `artifactStores`-Parameter verwendet: 

```
    "pipeline": {
        "name": "YourPipelineName",
        "roleArn": "CodePipeline_Service_Role",
        "artifactStores": {
            "us-east-1": {
                "type": "S3",
                "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket"
            },
            "us-west-2": {
                "type": "S3",
                "location": "S3 artifact bucket name, such as amzn-s3-demo-bucket"
            }
        },
        "stages": [
            {

...
```

### `type`
<a name="pipeline.artifactstore.type"></a>

Der Standorttyp für den Artefakt-Bucket, angegeben als Amazon S3.

### `location`
<a name="pipeline.artifactstore.location"></a>

Der Name des Amazon S3 S3-Buckets, der automatisch für Sie generiert wird, wenn Sie zum ersten Mal eine Pipeline mithilfe der Konsole erstellen, z. B. codepipeline-us-east -2-1234567890, oder eines beliebigen Amazon S3 S3-Buckets, den Sie zu diesem Zweck bereitstellen

## `stages`
<a name="pipeline.stages"></a>

Dieser Parameter enthält den Namen jeder Phase in der Pipeline. Weitere Informationen zu den Parametern und der Syntax auf der Stufenebene der Pipeline-Struktur finden Sie unter dem [StageDeclaration](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_StageDeclaration.html)Objekt im * CodePipeline API-Leitfaden*.

Die Pipeline-Struktur für Stufen hat die folgenden Anforderungen:
+ Eine Pipeline muss mindestens zwei Phasen enthalten.
+ Die erste Phase einer Pipeline muss mindestens eine Quellaktion enthalten. Sie darf nur Quellaktionen enthalten.
+ Nur die erste Phase einer Pipeline kann Quellaktionen enthalten.
+ Mindestens eine Phase in jeder Pipeline muss eine Aktion enthalten, die keine Quellaktion ist.
+ Alle Namen von Phasen in einer Pipeline müssen eindeutig sein.
+ Phasennamen können in der CodePipeline Konsole nicht bearbeitet werden. Wenn Sie einen Phasennamen mithilfe von bearbeiten und die Phase eine Aktion mit einem oder mehreren geheimen Parametern (z. B. einem OAuth Token) enthält, wird der Wert dieser geheimen Parameter nicht beibehalten. AWS CLI Sie müssen die Werte der Parameter (die in der von der AWS CLI zurückgegebenen JSON mit vier Sternchen maskiert sind) manuell in die JSON-Struktur eingeben.

**Wichtig**  
Bei Pipelines, die länger als 30 Tage inaktiv sind, ist das Polling für die Pipeline deaktiviert. Weitere Informationen finden Sie [pollingDisabledAt](#metadata.pollingDisabledAt)in der Referenz zur Pipeline-Struktur. Die Schritte zur Migration Ihrer Pipeline von der Abfrage zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur [Änderungserkennung](change-detection-methods.md).

## `version`
<a name="pipeline.version"></a>

Die Versionsnummer einer Pipeline wird bei jedem Pipeline-Update automatisch generiert und aktualisiert.

## `executionMode`
<a name="pipeline.executionmode"></a>

Sie können den Pipeline-Ausführungsmodus so einstellen, dass Sie das Pipeline-Verhalten für aufeinanderfolgende Läufe angeben können, z. B. für Warteschlangen, Ablösen oder Parallelbetrieb. Weitere Informationen finden Sie unter [Legen Sie den Pipeline-Ausführungsmodus fest oder ändern Sie ihn](execution-modes.md).

**Wichtig**  
Für Pipelines im PARALLELMODUS ist ein stufenweises Rollback nicht verfügbar. Ebenso können Fehlerbedingungen mit einem Rollback-Ergebnistyp nicht zu einer Pipeline im PARALLEL-Modus hinzugefügt werden.

## `pipelineType`
<a name="pipeline.pipelineType"></a>

Der Pipeline-Typ gibt die verfügbare Struktur und die Funktionen in der Pipeline an, z. B. für eine Pipeline vom Typ V2. Weitere Informationen finden Sie unter [Arten von Pipelines](pipeline-types.md).

## `variables`
<a name="pipeline.variables"></a>

Variablen auf Pipelineebene werden bei der Erstellung der Pipeline definiert und zur Laufzeit der Pipeline aufgelöst. Weitere Informationen finden Sie unter [Variablen-Referenz](reference-variables.md). Ein Tutorial mit einer Variablen auf Pipelineebene, die bei der Ausführung der Pipeline übergeben wird, finden Sie unter. [Tutorial: Variablen auf Pipeline-Ebene verwenden](tutorials-pipeline-variables.md)

## `triggers`
<a name="pipeline.triggers"></a>

Mit Triggern können Sie Ihre Pipeline so konfigurieren, dass sie bei einem bestimmten Ereignistyp oder einem gefilterten Ereignistyp startet, z. B. wenn eine Änderung an einem bestimmten Branch oder einer bestimmten Pull-Anforderung erkannt wird. Trigger können für Quellaktionen mit Verbindungen konfiguriert werden, die die `CodeStarSourceConnection` Aktion in verwenden CodePipeline GitHub, wie Bitbucket und GitLab. Weitere Informationen zu Quellaktionen, die Verbindungen verwenden, findest du unter[Fügen Sie externe Quellanbieter zu Pipelines hinzu mit CodeConnections](pipelines-connections.md).

Weitere Informationen und detailliertere Beispiele finden Sie unter[Automatisieren Sie das Starten von Pipelines mithilfe von Triggern und Filtern](pipelines-triggers.md).

Für die Filterung werden Muster regulärer Ausdrücke im Glob-Format unterstützt, wie unter beschrieben[Arbeiten mit Glob-Mustern in der Syntax](syntax-glob.md).

**Anmerkung**  
Für die Quellaktionen CodeCommit und S3 ist entweder eine konfigurierte Ressource zur Erkennung von Änderungen (eine EventBridge Regel) erforderlich, oder es wird die Option verwendet, das Repository nach Quelländerungen abzufragen. Für Pipelines mit einer Bitbucket GitHub - oder GitHub Enterprise Server-Quellaktion musst du weder einen Webhook einrichten noch standardmäßig Polling verwenden. Die Aktion „Verbindungen“ verwaltet die Erkennung von Änderungen für dich. 

**Wichtig**  
Bei Pipelines, die länger als 30 Tage inaktiv sind, ist das Polling für die Pipeline deaktiviert. Weitere Informationen finden Sie [pollingDisabledAt](#metadata.pollingDisabledAt)in der Referenz zur Pipeline-Struktur. Die Schritte zur Migration Ihrer Pipeline von der Abfrage zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur [Änderungserkennung](change-detection-methods.md).

### `gitConfiguration`-Felder
<a name="pipeline.triggers.fields"></a>

Die Git-Konfiguration für den Trigger, einschließlich der Ereignistypen und aller Parameter zum Filtern nach Branches, Dateipfaden, Tags oder Pull-Request-Ereignissen. 

Die Felder in der JSON-Struktur sind wie folgt definiert:
+ `sourceActionName`: Der Name der Pipeline-Quellaktion mit der Git-Konfiguration.
+ `push`: Push-Ereignisse mit Filterung. Diese Ereignisse verwenden eine ODER-Operation zwischen verschiedenen Push-Filtern und eine UND-Operation innerhalb von Filtern.
  + `branches`: Die Zweige, nach denen gefiltert werden soll. Zweige verwenden eine UND-Operation zwischen Ein- und Ausschlüssen. 
    + `includes`: Muster, nach denen nach Zweigen gefiltert wird, die aufgenommen werden sollen. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Zweigen gefiltert werden soll, die ausgeschlossen werden. Schließt die Verwendung einer ODER-Operation aus.
  + `filePaths`: Die Dateipfadnamen, nach denen gefiltert werden soll. 
    + `includes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die eingeschlossen werden sollen. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die ausgeschlossen werden. Schließt die Verwendung einer ODER-Operation aus.
  + `tags`: Die Tag-Namen, nach denen gefiltert werden soll.
    + `includes`: Muster, nach denen nach Tags gefiltert werden soll, die aufgenommen werden sollen. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Tags gefiltert werden soll, die ausgeschlossen werden. Schließt die Verwendung einer ODER-Operation aus.
+ `pullRequest`: Pull-Request-Ereignisse mit Filterung nach Pull-Request-Ereignissen und Pull-Request-Filtern.
  + `events`: Filtert nach offenen, aktualisierten oder geschlossenen Pull-Request-Ereignissen wie angegeben.
  + `branches`: Die Branches, nach denen gefiltert werden soll. Zweige verwenden eine UND-Operation zwischen Ein- und Ausschlüssen. 
    + `includes`: Muster, nach denen nach Zweigen gefiltert wird, die aufgenommen werden sollen. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Zweigen gefiltert werden soll, die ausgeschlossen werden. Schließt die Verwendung einer ODER-Operation aus.
  + `filePaths`: Die Dateipfadnamen, nach denen gefiltert werden soll. 
    + `includes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die eingeschlossen werden sollen. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die ausgeschlossen werden. Schließt die Verwendung einer ODER-Operation aus.

Im Folgenden finden Sie ein Beispiel für die Trigger-Konfiguration für Push- und Pull-Request-Ereignistypen.

```
"triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
```

### `push`Felder vom Ereignistyp für Einschließen und Ausschließen
<a name="w2aac54c27c27c15"></a>

Das Ein- und Ausschlussverhalten für Ebenen von Git-Konfigurationsfeldern für **Push-Ereignistypen** ist in der folgenden Liste aufgeführt:

```
push (OR operation is used between push and pullRequest or multiples)
    filePaths (AND operation is used between filePaths, branches, and tags)
        includes (AND operation is used between includes and excludes)
            **/FILE.md, **/FILE2 (OR operation is used between file path names)
        excludes (AND operation is used between includes and excludes)
            **/FILE.md, **/FILE2 (OR operation is used between file path names)
    branches (AND operation is used between filePaths, branches, and tags)
        includes (AND operation is used between includes and excludes)
            BRANCH/**", "BRANCH2/** (OR operation is used between branch names)
        excludes (AND operation is used between includes and excludes)
            BRANCH/**", "BRANCH2/** (OR operation is used between branch names)
    tags (AND operation is used between filePaths, branches, and tags)        
         includes (AND operation is used between includes and excludes)
            TAG/**", "TAG2/** (OR operation is used between tag names)
         excludes (AND operation is used between includes and excludes)
            TAG/**", "TAG2/** (OR operation is used between tag names)
```

### `pull request`Felder für den Ereignistyp zum Einschließen und Ausschließen
<a name="w2aac54c27c27c17"></a>

Das Ein- und Ausschlussverhalten für Ebenen von Git-Konfigurationsfeldern für **Pull-Request-Ereignistypen** ist in der folgenden Liste aufgeführt:

```
pullRequest (OR operation is used between push and pullRequest or multiples)
    events (AND operation is used between events, filePaths, and branches). Includes/excludes are N/A for pull request events.
    filePaths (AND operation is used between events, filePaths, and branches)
        includes (AND operation is used between includes and excludes)
            **/FILE.md, **/FILE2 (OR operation is used between file path names)
        excludes (AND operation is used between includes and excludes)
            **/FILE.md, **/FILE2 (OR operation is used between file path names)
    branches (AND operation is used between events, filePaths, and branches)
        includes (AND operation is used between includes and excludes)
            BRANCH/**", "BRANCH2/** (OR operation is used between branch names)
        excludes (AND operation is used between includes and excludes)
            BRANCH/**", "BRANCH2/** (OR operation is used between branch names)
```

## `metadata`
<a name="metadata.top-level"></a>

Die Pipeline-Metadatenfelder unterscheiden sich von der Pipelinestruktur und können nicht bearbeitet werden. Wenn Sie eine Pipeline aktualisieren, wird das Datum im Metadatenfeld `updated` automatisch geändert.

### `pipelineArn`
<a name="metadata.pipelineArn"></a>

Der Amazon-Ressourcenname (ARN) der Pipeline.

Um die Konsole zum Anzeigen des Pipeline-ARN anstelle der JSON-Struktur zu verwenden, wählen Sie Ihre Pipeline in der Konsole aus und wählen Sie dann **Einstellungen** aus. Auf der Registerkarte **Allgemein** wird das Feld **Pipeline-ARN** angezeigt.

### `created`
<a name="metadata.created"></a>

Datum und Uhrzeit der Erstellung der Pipeline.

### `updated`
<a name="metadata.updated"></a>

Datum und Uhrzeit der letzten Aktualisierung der Pipeline.

### `pollingDisabledAt`
<a name="metadata.pollingDisabledAt"></a>

Datum und Uhrzeit der Deaktivierung der Abfrage für eine Pipeline, die für Abfragen zur Änderungserkennung konfiguriert ist.

Bei Pipelines, die länger als 30 Tage inaktiv sind, ist die Abfrage für die Pipeline deaktiviert.
+ Bei inaktiven Pipelines wird die Abfrage nach 30 Tagen ohne Ausführung deaktiviert.
+ Pipelines EventBridge, die CodeStar Verbindungen oder Webhooks verwenden, sind davon nicht betroffen.
+ Aktive Pipelines sind nicht betroffen.

Weitere Informationen finden Sie unter dem `pollingDisabledAt` Parameter unter [PipelineMetadata](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineMetadata.html)Objekt im * CodePipeline API-Leitfaden*. Die Schritte zur Migration Ihrer Pipeline von der Abfrage zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur [Änderungserkennung](change-detection-methods.md).