Pipeline-Erklärung - AWS CodePipeline

View a markdown version of this page

Pipeline-Erklärung - AWS CodePipeline

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

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

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

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

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

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

location

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

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 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 in der Pipeline-Strukturreferenz. Die Schritte zur Migration Ihrer Pipeline vom Polling zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur Änderungserkennung.

version

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

executionMode

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.

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

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.

variables

Variablen auf Pipeline-Ebene werden definiert, wenn die Pipeline erstellt und zur Laufzeit der Pipeline aufgelöst wird. Weitere Informationen finden Sie unter Variablenreferenz. 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

triggers

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 unterFügen Sie externe Quellanbieter zu Pipelines hinzu mit CodeConnections.

Weitere Informationen und detailliertere Beispiele finden Sie unterAutomatisieren Sie das Starten von Pipelines mithilfe von Triggern und Filtern.

Zum Filtern werden Muster regulärer Ausdrücke im Glob-Format unterstützt, wie unter beschriebenArbeiten mit Glob-Mustern in der Syntax.

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 in der Pipeline-Strukturreferenz. Die Schritte zur Migration Ihrer Pipeline vom Polling zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur Änderungserkennung.

GitConfiguration-Felder

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

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

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

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

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

Datum und Uhrzeit der Erstellung der Pipeline.

Aktualisiert

Datum und Uhrzeit der letzten Aktualisierung der Pipeline.

Umfrage DisabledAt

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 Objekt. Die Schritte zur Migration Ihrer Pipeline vom Polling zur ereignisbasierten Änderungserkennung finden Sie unter Methoden zur Änderungserkennung.