

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 Syntax umfasst. Der Pipeline-Parameter stellt die Struktur der Aktionen und Stufen dar, die in der Pipeline ausgeführt werden sollen. 

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

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\+00: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: :80398 \_. EXAMPLE:role/CodePipeline Service\_Role

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

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

Das `artifactStore` Feld enthält den Artefakt-Bucket-Typ und den Speicherort für eine Pipeline mit allen Aktionen in derselben Region. AWS 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-Buckets, der automatisch für Sie generiert wird, wenn Sie zum ersten Mal mithilfe der Konsole eine Pipeline erstellen, z. B. codepipeline-us-east-2-1234567890, oder ein beliebiger Amazon S3-Bucket, den Sie für diesen Zweck bereitstellen

## `Stufen`
<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 Stufenebene der Pipeline-Struktur finden Sie im * CodePipeline API-Handbuch zu dem [ StageDeclaration ](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_StageDeclaration.html) Objekt*.

Für die Pipeline-Struktur für Stufen gelten 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.
+ Die Namen der Stufen können in der CodePipeline Konsole nicht bearbeitet werden. Wenn Sie einen Stufennamen mithilfe von bearbeiten und der AWS CLI Stagingbereich eine Aktion mit einem oder mehreren geheimen Parametern (z. B. einem OAuth-Token) enthält, wird der Wert dieser geheimen Parameter nicht beibehalten. 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, wird die Abfrage für die Pipeline deaktiviert. Weitere Informationen finden Sie unter [ Polling DisabledAt ](#metadata.pollingDisabledAt) in der Pipeline-Strukturreferenz. Die Schritte zur Migration Ihrer Pipeline vom Polling 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. in die Warteschlange gestellt, ersetzt oder im Parallelmodus ausgeführt werden. Weitere Informationen finden Sie unter [Den Pipeline-Ausführungsmodus festlegen oder ändern](execution-modes.md).

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

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

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

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

Variablen auf Pipeline-Ebene werden definiert, wenn die Pipeline erstellt und zur Laufzeit der Pipeline aufgelöst wird. Weitere Informationen finden Sie unter [Variablenreferenz](reference-variables.md). Ein Tutorial mit einer Variablen auf Pipeline-Ebene, die zum Zeitpunkt der Pipeline-Ausführung ü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 mit einem bestimmten Ereignistyp oder einem gefilterten Ereignistyp beginnt, z. B. wenn eine Änderung an einem bestimmten Branch oder Pull Request erkannt wird. Trigger sind für Quellaktionen mit Verbindungen konfigurierbar, in denen die `CodeStarSourceConnection` Aktion verwendet wird CodePipeline GitHub, z. B. 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).

Zum Filtern 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 Aktionen „Quelle“ CodeCommit und „S3“ ist entweder eine konfigurierte Ressource zur Änderungserkennung (eine EventBridge Regel) erforderlich, oder Sie verwenden die Option, das Repository nach Änderungen an der Quelle abzufragen. Für Pipelines mit einer Bitbucket GitHub - oder GitHub Enterprise Server-Quellaktion müssen Sie keinen Webhook einrichten oder standardmäßig Polling verwenden. Die Aktion „Verbindungen“ verwaltet die Änderungserkennung für dich. 

**Wichtig**  
Bei Pipelines, die länger als 30 Tage inaktiv sind, wird die Abfrage für die Pipeline deaktiviert. Weitere Informationen finden Sie unter [ Polling DisabledAt ](#metadata.pollingDisabledAt) in der Pipeline-Strukturreferenz. Die Schritte zur Migration Ihrer Pipeline vom Polling 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`: Ereignisse mit Filterung übertragen. 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 Inklusionen und Ausschlüssen. 
    + `includes`: Muster, nach denen für Zweige gefiltert werden soll, die einbezogen werden. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Zweigen gefiltert werden soll, die ausgeschlossen werden. Ausschlüsse verwenden eine ODER-Operation.
  + `filePaths`: Die Dateipfadnamen, nach denen gefiltert werden soll. 
    + `includes`: Muster, nach denen für Dateipfade gefiltert werden soll, die aufgenommen werden. Beinhaltet die Verwendung einer OR-Operation.
    + `excludes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die ausgeschlossen werden. Ausschlüsse verwenden eine ODER-Operation.
  + `tags`: Die Tagnamen, nach denen gefiltert werden soll.
    + `includes`: Muster, nach denen nach Tags gefiltert werden soll, die aufgenommen werden. Beinhaltet die Verwendung einer OR-Operation.
    + `excludes`: Muster, nach denen nach Stichwörtern gefiltert werden soll, die ausgeschlossen werden. Ausschlüsse verwenden eine ODER-Operation.
+ `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 Zweige, nach denen gefiltert werden soll. Zweige verwenden eine UND-Operation zwischen Inklusionen und Ausschlüssen. 
    + `includes`: Muster, nach denen für Zweige gefiltert werden soll, die einbezogen werden. Beinhaltet die Verwendung einer ODER-Operation.
    + `excludes`: Muster, nach denen nach Zweigen gefiltert werden soll, die ausgeschlossen werden. Ausschlüsse verwenden eine ODER-Operation.
  + `filePaths`: Die Dateipfadnamen, nach denen gefiltert werden soll. 
    + `includes`: Muster, nach denen für Dateipfade gefiltert werden soll, die aufgenommen werden. Beinhaltet die Verwendung einer OR-Operation.
    + `excludes`: Muster, nach denen nach Dateipfaden gefiltert werden soll, die ausgeschlossen werden. Ausschlüsse verwenden eine ODER-Operation.

Das Folgende ist ein Beispiel für die Triggerkonfiguration 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 wird 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 vom Ereignistyp für Einschließen und Ausschließen
<a name="w2aac54c27c27c17"></a>

Das Ein- und Ausschlussverhalten für Ebenen von Git-Konfigurationsfeldern für ** ** Pull-Request-Ereignistypen wird 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)}}
```

## `Metadaten`
<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 klicken Sie dann auf ** Einstellungen**. Auf der ** Registerkarte ** Allgemein wird das ** Feld ** Pipeline-ARN angezeigt.

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

Datum und Uhrzeit der Erstellung der Pipeline.

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

Datum und Uhrzeit der letzten Aktualisierung der Pipeline.

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

Datum und Uhrzeit der Deaktivierung der Abfrage für eine Pipeline, die für die Erkennung von Änderungen konfiguriert ist.

Bei Pipelines, die länger als 30 Tage inaktiv sind, wird die Abfrage für die Pipeline deaktiviert.
+ Bei inaktiven Pipelines wird das Polling 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 im * CodePipeline API-Handbuch * unter dem `pollingDisabledAt` Parameter unter [ PipelineMetadata ](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineMetadata.html) Objekt. Die Schritte zur Migration Ihrer Pipeline vom Polling zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur [ Änderungserkennung. ](change-detection-methods.md)