CodePipeline Konzepte - 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.

CodePipeline Konzepte

Die Modellierung und Konfiguration Ihres automatisierten Release-Prozesses ist einfacher, wenn Sie die in verwendeten Konzepte und Begriffe verstehen AWS CodePipeline. Im Folgenden finden Sie einige Konzepte, mit denen Sie sich bei der Verwendung vertraut machen sollten CodePipeline.

Ein Beispiel für eine DevOps Pipeline finden Sie unterDevOps Beispiel für eine Pipeline.

Die folgenden Begriffe werden in verwendet CodePipeline:

Pipelines

Eine Pipeline ist ein Workflow-Konstrukt, das den Veröffentlichungsprozess von Software-Änderungen beschreibt. Jede Pipeline besteht aus einer Reihe von Phasen.

Phasen

Eine Phase ist eine logische Einheit, mit der Sie eine Umgebung isolieren und die Anzahl der Änderungen einschränken können, die in dieser Umgebung gleichzeitig ausgeführt werden. Jede Phase enthält Aktionen, die für die Artefakte der Anwendung ausgeführt werden. Ihr Quellcode ist ein Beispiel für ein Artefakt. Bei einer Phase kann es sich um eine Build-Phase handeln, in der der Quellcode erstellt und getestet wird. Es kann sich auch um eine Bereitstellungsphase handeln, in der Code in Laufzeitumgebungen bereitgestellt wird. Jede Phase besteht aus einer Reihe serieller oder paralleler Aktionen.

Übergänge

Ein Übergang ist der Punkt, an dem eine Pipeline-Ausführung zur nächsten Phase in der Pipeline wechselt. Sie können den Eingangspunkt einer Phase deaktivieren, um zu verhindern, dass Ausführungen in diese Phase eintreten. Anschließend können Sie den Eingangspunkt aktivieren, damit Ausführungen fortgesetzt werden können. Wenn mehrere Ausführungen an einem deaktivierten Übergangspunkt eintreffen, wird nur die neueste Ausführung zur nächsten Phase fortgesetzt, wenn der Übergangspunkt aktiviert wird. Das bedeutet, dass neuere Ausführungen bereits wartende Ausführungen ersetzen, während der Übergangspunkt deaktiviert ist. Nach der Aktivierung des Übergangspunkts wird nur die ersetzende Ausführung fortgesetzt.

Eine Pipeline enthält Phasen, die Aktionen enthalten. Diese werden durch Übergänge getrennt, die deaktiviert und aktiviert werden können.

Aktionen

Eine Aktion ist ein Satz von Operationen, die auf Anwendungscode angewendet werden. Sie ist für die Ausführung an einem bestimmten Punkt der Pipeline konfiguriert. Dies können Quellaktionen aufgrund von Codeänderungen, Aktionen zum Bereitstellen der Anwendung auf Instances usw. sein. Eine Bereitstellungsphase kann beispielsweise eine Bereitstellungsaktion enthalten, die Code für einen Rechenservice wie Amazon EC2 oder AWS Lambda bereitstellt.

Gültige CodePipeline Aktionstypen sindsource,build,test, deployapproval, undinvoke. Eine Liste der Aktionsanbieter finden Sie unter Gültige Aktionsanbieter in CodePipeline .

Aktionen können seriell oder parallel ausgeführt werden. Informationen zu seriellen und parallel Aktionen in einer Phase finden Sie unter Anforderungen an die runOrder Aktionsstruktur.

Pipeline-Ausführungen

Eine Ausführung ist ein Satz von Änderungen, die von einer Pipeline freigegeben werden. Jede Pipeline-Ausführung ist eindeutig und besitzt eine eigene ID. Eine Ausführung entspricht einem Satz von Änderungen, z. B. einem zusammengeführten Commit oder einer manuellen Freigabe des letzten Commits. Zwei Ausführungen können den gleichen Satz von Änderungen zu unterschiedlichen Zeitpunkten freigeben.

Während eine Pipeline mehrere Ausführungen gleichzeitig verarbeiten kann, verarbeitet eine Pipeline-Phase jeweils nur eine Ausführung zur selben Zeit. Hierzu wird die Phase gesperrt, während sie eine Ausführung verarbeitet. Zwei Pipeline-Ausführungen können nicht gleichzeitig dieselbe Phase belegen. Eine Ausführung, die darauf wartet, in die besetzte Phase überzugehen, wird als eingehende Ausführung bezeichnet. Eine eingehende Ausführung kann immer noch fehlschlagen, ersetzt oder manuell gestoppt werden. Weitere Hinweise zur Funktionsweise eingehender Ausführungen finden Sie unter. So funktionieren eingehende Ausführungen

Pipeline-Ausführungen durchlaufen die Pipeline-Phasen der Reihe nach. Gültige Statuswerte für Pipelines sind InProgress, Stopping, Stopped, Succeeded, Superseded und Failed.

Weitere Informationen finden Sie unter. PipelineExecution

Angehaltene Ausführungen

Die Pipeline-Ausführung kann manuell angehalten werden, sodass die laufende Pipeline-Ausführung nicht durch die Pipeline hindurch fortgesetzt wird. Wenn die Pipeline-Ausführung manuell angehalten wird, zeigt sie den Status Stopping an, bis sie vollständig gestoppt wird. Danach zeigt sie den Status Stopped an. Eine Stopped-Pipeline-Ausführung kann erneut ausgeführt werden.

Es gibt zwei Möglichkeiten, eine Pipeline-Ausführung anzuhalten:

  • Anhalten und warten

  • Anhalten und beenden

Informationen über Anwendungsfälle für das Anhalten einer Ausführung und Details zur Reihenfolge dieser Optionen finden Sie unter Pipeline-Ausführungen beenden.

Fehlgeschlagene Ausführungen

Wenn eine Ausführung fehlschlägt, wird sie angehalten und durchläuft die Pipeline nicht vollständig. Ihr Status ist FAILED und die Phase wird freigeschaltet. Eine neuere Ausführung kann in die entsperrte Phase eintreten und diese sperren. Sie können eine fehlgeschlagene Ausführung wiederholen, wenn diese nicht ersetzt wurde oder nicht wiederholbar ist. Sie können eine fehlgeschlagene Phase auf eine vorherige erfolgreiche Ausführung zurücksetzen.

Ausführungsmodi

Um die neuesten Änderungen über eine Pipeline bereitzustellen, holen neuere Ausführungen weniger aktuelle Ausführungen ein, die bereits über die Pipeline ausgeführt werden, und ersetzen diese. In diesem Fall wird die ältere Ausführung durch die neuere Ausführung ersetzt. Eine Ausführung kann durch eine neuere Ausführung an einem bestimmten Punkt ersetzt werden. Dies ist der Punkt zwischen den einzelnen Phasen. SUPERSEDEDist der Standard-Ausführungsmodus.

Wenn im SUPERSEDED Modus eine Ausführung darauf wartet, in eine gesperrte Phase einzutreten, kann eine neuere Ausführung sie catch und ersetzen. Die neuere Ausführung wartet nun auf die Entsperrung der Phase und die ersetzte Ausführung wird mit dem Status SUPERSEDED beendet. Wenn eine Pipeline-Ausführung ersetzt wird, wird die Ausführung gestoppt und durchläuft die Pipeline nicht vollständig. Sie können die ersetzte Ausführung nicht wiederholen, nachdem sie in dieser Phase ersetzt wurde. Andere verfügbare Ausführungsmodi sind der Modus PARALLEL oderQUEUED.

Weitere Hinweise zu Ausführungsmodi und gesperrten Phasen finden Sie unterWie werden Ausführungen im SUPERSEDED Modus verarbeitet.

Operationen in Etappen

Wenn eine Pipeline-Ausführung eine Phase durchläuft, ist die Phase dabei, alle darin enthaltenen Aktionen abzuschließen. Hinweise zur Funktionsweise von Phasenoperationen und Informationen zu gesperrten Phasen finden Sie unterWie werden Ausführungen im SUPERSEDED Modus verarbeitet.

Gültige Status für Stufen sindInProgress,Stopping, StoppedSucceeded, undFailed. Sie können eine fehlgeschlagene Phase erneut versuchen, es sei denn, die fehlgeschlagene Phase kann nicht wiederholt werden. Weitere Informationen finden Sie unter. StageExecution Sie können eine Phase auf eine bestimmte vorherige erfolgreiche Ausführung zurücksetzen. Eine Phase kann so konfiguriert werden, dass bei einem Fehler ein automatisches Rollback ausgeführt wird, wie unter beschriebenKonfiguration des Stage-Rollbacks. Weitere Informationen finden Sie unter RollbackStage.

Aktionsausführungen

Eine Aktionsausführung ist die Durchführung einer konfigurierten Aktion, die für bestimmteArtefakte ausgeführt wird. Dies können Eingabe-Artefakte, Ausgabe-Artefakte oder beides sein. Beispielsweise kann eine Build-Aktion Build-Befehle für ein Eingabe-Artefakt ausführen, z. B. das Anwendungsquellcode kompilieren. Die Details der Aktionsausführung umfassen die Aktionsausführungs-ID, den zugehörigen Pipeline-Ausführungsquellauslöser und die Eingabe- und Ausgabe-Artefakte der Aktion.

Gültige Status für Aktionen sindInProgress, AbandonedSucceeded, oderFailed. Weitere Informationen finden Sie unter ActionExecution.

Arten der Ausführung

Bei einer Pipeline- oder Phasenausführung kann es sich entweder um eine Standardausführung oder um eine Ausführung mit Rollback handeln.

Bei Standardtypen hat die Ausführung eine eindeutige ID und ist ein vollständiger Pipeline-Lauf. Ein Pipeline-Rollback hat eine Phase, für die ein Rollback ausgeführt werden muss, und eine erfolgreiche Ausführung für die Phase als Zielausführung, zu der ein Rollback durchgeführt werden soll. Die Ausführung der Zielpipeline wird verwendet, um Quellversionen und Variablen abzurufen, damit die Phase erneut ausgeführt werden kann.

Aktionstypen

Aktionstypen sind vorkonfigurierte Aktionen, die unter ausgewählt werden können. CodePipeline Der Aktionstyp wird durch seinen Besitzer, Anbieter, Version und Kategorie definiert. Der Aktionstyp stellt benutzerdefinierte Parameter bereit, die verwendet werden, um die Aktionsaufgaben in einer Pipeline abzuschließen.

Informationen zu den Produkten AWS-Services und Diensten von Drittanbietern, die Sie je nach Aktionstyp in Ihre Pipeline integrieren können, finden Sie unterIntegrationen mit CodePipeline Aktionstypen.

Informationen zu den Integrationsmodellen, die für Aktionstypen in unterstützt werden CodePipeline, finden Sie unterReferenz zum Integrationsmodell.

Informationen darüber, wie Drittanbieter Aktionstypen in einrichten und verwalten können CodePipeline, finden Sie unterMit Aktionstypen arbeiten.

-Artefakte

Der Begriff Artefakt bezieht sich auf die Sammlung von Daten, wie Anwendungsquellcode, erstellte Anwendungen, Abhängigkeiten, Definitionsdateien, Vorlagen usw., die von Pipeline-Aktionen bearbeitet werden. Artefakte werden von bestimmten Aktionen erzeugt und von anderen Aktionen verbraucht. Artefakten in einer Pipeline können die Gruppe von Dateien sein, die von einer Aktion bearbeitet werden (Eingabe-Artefakte) oder die aktualisierte Ausgabe einer abgeschlossenen Aktion (Ausgabe-Artefakte).

Aktionen leiten die Ausgabe an eine andere Aktion zur weiteren Verarbeitung mithilfe des Pipeline-Artefakt-Buckets weiter. CodePipeline kopiert Artefakte in den Artefaktspeicher, wo sie von der Aktion abgerufen werden. Weitere Informationen zu Artefakten finden Sie unter Eingabe- und Ausgabe-Artefakte.

Quell-Revisionen

Wenn Sie eine Quellcodeänderung ausführen, wird eine neue Version erstellt. Eine Quellrevision ist eine Quelländerungsversion, die eine Pipeline-Ausführung auslöst. Bei einer Ausführung werden Quellversionen verarbeitet. Für GitHub und CodeCommit Repositorien ist dies der Commit. Bei S3-Buckets oder -Aktionen ist dies die Objektversion.

Sie können eine Pipeline-Ausführung mit einer von Ihnen angegebenen Quellrevision starten, z. B. einem Commit. Die Ausführung verarbeitet die angegebene Revision und überschreibt die Version, die für die Ausführung verwendet worden wäre. Weitere Informationen finden Sie unter Starten Sie eine Pipeline mit einer Quellrevisionsüberschreibung.

Auslöser

Trigger sind Ereignisse, die Ihre Pipeline starten. Einige Auslöser, z. B. das manuelle Starten einer Pipeline, sind für alle Quellaktionsanbieter in einer Pipeline verfügbar. Bestimmte Trigger hängen vom Quellanbieter für eine Pipeline ab. CloudWatch Ereignisse müssen beispielsweise mit Ereignisressourcen von Amazon konfiguriert werden CloudWatch , denen die Pipeline als Ziel in der Ereignisregel ARN hinzugefügt wurde. Amazon CloudWatch Events ist der empfohlene Auslöser für die automatische Änderungserkennung für Pipelines mit einer CodeCommit oder S3-Quellaktion. Webhooks sind ein Triggertyp, der für Repository-Ereignisse von Drittanbietern konfiguriert ist. WebHookV2 ist beispielsweise ein Triggertyp, der es ermöglicht, Git-Tags zu verwenden, um Pipelines mit externen Quellanbietern wie GitHub .com, GitHub Enterprise Server, GitLab .com, GitLab Self-managed oder Bitbucket Cloud zu starten. In der Pipeline-Konfiguration kannst du einen Filter für Trigger wie Push- oder Pull-Requests angeben. Du kannst Code-Push-Ereignisse nach Git-Tags, Branches oder Dateipfaden filtern. Du kannst Pull-Request-Ereignisse nach Ereignissen (geöffnet, aktualisiert, geschlossen), Branches oder Dateipfaden filtern.

Weitere Informationen zu Auslösern finden Sie unter Starten Sie eine Pipeline in CodePipeline. Ein Tutorial, das Sie durch die Verwendung von Git-Tags als Trigger für Ihre Pipeline führt, finden Sie unterTutorial: Verwende Git-Tags, um deine Pipeline zu starten.

Variablen

Eine Variable ist ein Wert, der verwendet werden kann, um Aktionen in Ihrer Pipeline dynamisch zu konfigurieren. Variablen können entweder auf Pipeline-Ebene deklariert oder durch Aktionen in der Pipeline ausgegeben werden. Variablenwerte werden zum Zeitpunkt der Pipeline-Ausführung aufgelöst und können im Ausführungsverlauf eingesehen werden. Für Variablen, die auf Pipeline-Ebene deklariert wurden, können Sie entweder Standardwerte in der Pipeline-Konfiguration definieren oder sie für eine bestimmte Ausführung überschreiben. Bei Variablen, die von einer Aktion ausgegeben werden, ist der Wert verfügbar, nachdem eine Aktion erfolgreich abgeschlossen wurde. Weitere Informationen finden Sie unter Variablen-Referenz.

Bedingungen

Eine Bedingung enthält eine Reihe von Regeln, die ausgewertet werden. Wenn alle Regeln in einer Bedingung erfolgreich sind, ist die Bedingung erfüllt. Sie können Bedingungen so konfigurieren, dass, wenn die Kriterien nicht erfüllt sind, das angegebene Ergebnis, z. B. wenn die Phase nicht bestanden wird, aktiviert wird. Bedingungen werden auch als Gates bezeichnet, da Sie mit ihnen angeben können, wann eine Ausführung in eine Phase eintritt und diese durchläuft oder die Phase verlässt, nachdem sie sie durchlaufen hat. Dies ist vergleichbar mit der Möglichkeit, einer Verkehrslinie auf einer Fahrbahn zu erlauben, sich an einem geschlossenen Tor zu versammeln und dann festzulegen, wie das Tor geöffnet werden soll, damit der Verkehr in ein Gebiet fließen kann. Zu den Ergebnissen für Zustandstypen gehören das Scheitern der Phase oder das Zurücksetzen der Phase. Mithilfe von Bedingungen können Sie angeben, wann diese Aktionen in einer Pipeline-Phase stattfinden. Sie können Bedingungen zur Laufzeit überschreiben.

Es gibt drei Arten von Bedingungen. Die Teilnahmebedingungen beantworten die Frage „Wenn die Regeln für die Bedingung erfüllt sind, treten Sie in die Phase ein.“ Die Phase ist gesperrt, wenn die Ausführung in die Phase eintritt, und dann werden die Regeln ausgeführt. Bei Bedingungen bei Ausfall wird die Regel aktiviert, wenn eine Phase fehlgeschlagen ist, was zur Folge hat, dass eine fehlgeschlagene Phase zurückgesetzt wird. Bei Bedingungen bei Erfolg wird die Regel aktiviert, wenn eine Phase erfolgreich ist, z. B. wenn ein erfolgreicher Lauf auf Alarme überprüft wird, bevor der Vorgang fortgesetzt wird. Beispielsweise würde die Bedingung On Success zu einem Rollback einer erfolgreichen Phase führen, wenn die CloudWatchAlarm Regel feststellt, dass in der Bereitstellungsumgebung Alarme vorliegen. Weitere Informationen finden Sie unter Wie funktionieren die Stufenbedingungen?.

Regeln

Bedingungen verwenden eine oder mehrere vorkonfigurierte Regeln, die Prüfungen ausführen und durchführen, die dann das konfigurierte Ergebnis verwenden, wenn die Bedingung nicht erfüllt ist. Wenn beispielsweise alle Regeln für eine Regel mit Eingabebedingungen erfüllt werden, die den Alarmstatus und die Zeitfenster für die Bereitstellung überprüft, wird eine erfolgreiche Phase ausgelöst, nachdem alle Prüfungen bestanden wurden. Weitere Informationen finden Sie unter Wie funktionieren die Stufenbedingungen?.