View a markdown version of this page

Konfigurieren Sie Image-Pipeline-Workflows in Image Builder - EC2 Image Builder

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.

Konfigurieren Sie Image-Pipeline-Workflows in Image Builder

Mit Image-Workflows können Sie die Workflows, die Ihre Pipeline zum Erstellen, Testen und Verteilen von Images ausführt, an Ihre Bedürfnisse anpassen. Die Workflows, die Sie definieren, werden im Kontext des Image Builder-Workflow-Frameworks ausgeführt. Weitere Informationen zu den Phasen, aus denen das Workflow-Framework besteht, finden Sie unterVerwaltung von Erstellungs-, Test- und Verteilungs-Workflows für Image Builder-Images.

Arbeitsablauf erstellen

Workflows erstellen werden in der Build Phase des Workflow-Frameworks ausgeführt. Sie können nur einen Build-Workflow für Ihre Pipeline angeben. Oder Sie können den Build komplett überspringen, um eine Pipeline zu konfigurieren, die nur zum Testen verwendet wird.

Testen Sie den Arbeitsablauf

Test-Workflows werden während der Test Phase des Workflow-Frameworks ausgeführt. Sie können Ihrer Pipeline einen oder mehrere Testworkflows bis zu einer Gesamtzahl von zehn Workflows hinzufügen, wobei auch Ihre Build- und Distribution-Workflows mitgezählt werden. Testworkflows können parallel oder einzeln ausgeführt werden, je nachdem, wie Sie Ihre Testgruppen definieren. Sie können Tests auch komplett überspringen, wenn Sie nur möchten, dass Ihre Pipeline erstellt wird.

Ablauf der Verteilung

Die Workflows für die Verteilung werden in der Distribution Phase des Workflow-Frameworks ausgeführt. Ein Verteilungsworkflow ist optional. Wenn Sie keinen angeben, verteilt Image Builder Ihr AMI trotzdem, indem er die Verteilungskonfiguration ausführt, die Sie an die Pipeline oder das Image anhängen. Geben Sie einen Verteilungsworkflow an, wenn Sie diese Verteilungskonfiguration mit anderen Verteilungseinstellungen außer Kraft setzen oder einen besseren Einblick in den Verteilungsprozess erhalten möchten. Sie können einen Verteilungsworkflow für Ihre Pipeline angeben. Wenn Sie Container-Images erstellen und keinen Verteilungsworkflow angeben, fügt Image Builder den von Amazon verwalteten Workflow für die Containerverteilung für Sie hinzu.

Definieren Sie Testgruppen für Test-Workflows

Sie definieren Testworkflows innerhalb von Testgruppen. Sie können mehrere Testworkflows für Ihre Pipeline ausführen. Das kombinierte Limit liegt bei insgesamt zehn Workflows, einschließlich Ihrer Erstellungs- und Verteilungsworkflows. Sie entscheiden, ob Sie die Testworkflows in einer bestimmten Reihenfolge oder so viele wie möglich gleichzeitig ausführen möchten. Wie sie ausgeführt werden, hängt davon ab, wie Sie Ihre Testgruppen definieren. Die folgenden Szenarien zeigen verschiedene Möglichkeiten, wie Sie Ihre Testworkflows definieren können.

Anmerkung

Die onFailure Einstellungen parallelGroup und gelten nur für Testworkflows. Image Builder lehnt sie in einem Erstellungs- oder Verteilungsworkflow mit einem InvalidParameterCombinationException ab.

Wie werden Testgruppen ausgeführt

Image Builder führt Ihre Testworkflows in Testgruppen aus. Es führt die Gruppen nacheinander aus. Die Testworkflows innerhalb einer einzelnen Gruppe werden gleichzeitig (parallel) ausgeführt. Image Builder führt bis zu fünf Testworkflows gleichzeitig aus. Wenn eine Gruppe mehr als fünf hat, startet Image Builder den nächsten Testworkflow, sobald jeder einzelne abgeschlossen ist. Ein Testworkflow, der nicht Teil einer Gruppe ist, wird eigenständig ausgeführt.

Wie Sie Testgruppen definieren, hängt davon ab, ob Sie die Konsole oder die AWS CLI UND-API verwenden. Wählen Sie die Registerkarte aus, die der von Ihnen verwendeten Methode entspricht.

AWS-Managementkonsole

Wenn Sie eine Pipeline in der Konsole erstellen oder bearbeiten, definieren Sie Ihre Testworkflows im Abschnitt Test-Workflow des Image-Erstellungsprozesses. Um Tests auszuführen, wählen Sie die Option zur Auswahl von Testworkflows. Um Images ohne Tests zu erstellen, wählen Sie die Option zum Überspringen von Test-Workflows.

Die Konsole organisiert Testworkflows in Testgruppen. Eine neue Pipeline beginnt mit einer Testgruppe. Gehen Sie wie folgt vor, um Ihre Testkonfiguration zu erstellen:

  • Einen Testworkflow zu einer Gruppe hinzufügen — Fügen Sie einen Testworkflow zu einer Gruppe hinzu und wählen Sie den Workflow aus Ihren eigenen Workflows (mir gehört) oder den AWS verwalteten Workflows (von Amazon verwaltet) aus. Wenn der Workflow Parameter definiert, werden sie in der Konsole angezeigt, sodass Sie Werte eingeben können. Eine Gruppe kann bis zu fünf Testworkflows enthalten, die gleichzeitig ausgeführt werden.

  • Eine Testgruppe hinzufügen — Fügen Sie eine weitere Testgruppe hinzu, um eine andere Gruppe von Tests auszuführen. Sie können bis zu zehn Testgruppen hinzufügen. Um eine Gruppe umzubenennen, wählen Sie Name bearbeiten. Ein Gruppenname kann bis zu 128 Zeichen lang sein und Buchstaben, Zahlen, Bindestriche () und Unterstriche (-) enthalten. _

Image Builder führt die Testgruppen nacheinander in der Reihenfolge aus, in der sie im Assistenten angezeigt werden. Die Test-Workflows innerhalb einer Gruppe werden gleichzeitig ausgeführt. Eine Gruppe kann bis zu fünf Testworkflows enthalten. Um Ihre Tests einzeln auszuführen, ordnen Sie jeden Testworkflow einer eigenen Gruppe zu.

Anmerkung

Sie können Testworkflows und Gruppen hinzufügen oder entfernen, aber Sie können sie nicht neu anordnen. Planen Sie die Reihenfolge Ihrer Testgruppen, bevor Sie sie erstellen.

AWS CLI

Wenn Sie die AWS CLI oder die Image Builder-API verwenden, definieren Sie Testgruppen nicht direkt. Stattdessen legen Sie das parallelGroup Attribut für jeden Testworkflow in der workflows Liste fest. Test-Workflows, die denselben parallelGroup Wert haben, bilden eine Gruppe und werden gleichzeitig ausgeführt. Ein Testworkflow ohne parallelGroup Wert wird eigenständig ausgeführt. Wenn Sie für keinen Ihrer Test-Workflows einen parallelGroup Wert festlegen, führt Image Builder sie nacheinander aus.

Die AWS CLI und API begrenzen die Anzahl der Test-Workflows in einer Gruppe nicht. Die einzige Grenze ist die Gesamtzahl der Workflows, die zehn nicht überschreiten darf (einschließlich Ihrer Build- und Distribution-Workflows). Die Konsole begrenzt eine Gruppe auf fünf Test-Workflows.

Image Builder führt immer zuerst Build-Workflows aus, dann Test-Workflows und dann den Verteilungs-Workflow. Diese Reihenfolge gilt unabhängig davon, wie Sie sie auflisten.

In der Testphase ordnet Image Builder Ihre Test-Workflows wie folgt an:

  • Es sortiert die Gruppen nach der Position, an der jede Gruppe in Ihrer workflows Liste zum ersten Mal erscheint. Sie werden nicht nach dem parallelGroup Wert sortiert.

  • Es behält jeden Workflow, der keine Gruppe hat, an seiner aufgelisteten Position.

  • Es führt die Workflows in einer Gruppe zusammen an der Position aus, an der diese Gruppe zum ersten Mal erscheint.

Beispiel

Angenommen, Sie listen fünf Testworkflows in dieser Reihenfolge auf und legen den parallelGroup Wert für einige davon fest:

  • Testworkflow A — keine Gruppe

  • Test-Arbeitsablauf B —parallelGroup: tests-1

  • Test-Workflow C — keine Gruppe

  • Testablauf D —parallelGroup: tests-1

  • Testablauf E —parallelGroup: tests-2

Image Builder führt sie in der folgenden Reihenfolge aus:

  1. Testen Sie den Arbeitsablauf A eigenständig.

  2. Testen Sie Workflow B und Testworkflow D gleichzeitig. Sie teilen sich die tests-1 Gruppe, die zuerst in Testworkflow B erscheint.

  3. Testen Sie den Arbeitsablauf C eigenständig.

  4. Testen Sie den Workflow E eigenständig in der tests-2 Gruppe.

Testworkflow D wird zusammen mit Testworkflow B ausgeführt, da sie sich eine Gruppe teilen, obwohl Sie den Testworkflow C zwischen ihnen aufgeführt haben. Die Gruppe mit dem Namen wird zuvor tests-1 ausgeführt tests-2tests-1, weil sie in der Liste an erster Stelle steht — die Gruppenreihenfolge folgt der Reihenfolge in der Liste, nicht dem parallelGroup Wert.

Szenario 1: Führen Sie jeweils einen Testworkflow aus

Um alle Ihre Testworkflows nacheinander auszuführen, konfigurieren Sie für jeden Testworkflow eine separate Testgruppe bis zur kombinierten Grenze von insgesamt zehn Workflows (einschließlich Ihrer Erstellungs- und Verteilungsworkflows). Image Builder führt die Testgruppen nacheinander aus. Auf diese Weise können Sie sicherstellen, dass Ihre Testworkflows nacheinander in einer bestimmten Reihenfolge ausgeführt werden.

Szenario 2: Führen Sie mehrere Testworkflows gleichzeitig aus

Wenn die Reihenfolge keine Rolle spielt und Sie so viele Testworkflows wie möglich gleichzeitig ausführen möchten, können Sie eine einzelne Testgruppe konfigurieren und die maximale Anzahl von Testworkflows darin angeben. Image Builder startet bis zu fünf Testworkflows gleichzeitig und startet weitere Testworkflows, wenn andere Workflows abgeschlossen sind. Wenn Ihr Ziel darin besteht, Ihre Test-Workflows so schnell wie möglich auszuführen, ist dies eine Möglichkeit.

Szenario 3: Mischen und Kombinieren

Wenn Sie ein gemischtes Szenario haben, bei dem einige Testworkflows gleichzeitig ausgeführt werden können und andere, die nacheinander ausgeführt werden sollten, können Sie Ihre Testgruppen so konfigurieren, dass dieses Ziel erreicht wird. Die einzige Grenze für die Konfiguration Ihrer Testgruppen ist die maximale Anzahl von Testworkflows, die für Ihre Pipeline ausgeführt werden können

Legen Sie Workflow-Parameter in einer Image Builder-Pipeline von der Konsole aus fest

Workflow-Parameter funktionieren für Erstellungs-, Test- und Verteilungs-Workflows auf die gleiche Weise. Wenn Sie eine Pipeline erstellen oder aktualisieren, wählen Sie die Workflows zum Erstellen, Testen und Verteilen aus, die Sie einbeziehen möchten. Wenn Sie im Workflow-Dokument für einen von Ihnen ausgewählten Workflow Parameter definiert haben, zeigt Image Builder sie im Parameterbereich an. Das Bedienfeld ist für Workflows, für die keine Parameter definiert sind, ausgeblendet.

Jeder Parameter zeigt die folgenden Attribute an, die Ihr Workflow-Dokument definiert hat:

  • Name (nicht bearbeitbar) — Der Name des Parameters.

  • Typ (nicht bearbeitbar) — Der Datentyp für den Parameterwert.

  • Wert — Der Wert für den Parameter. Sie können den Parameterwert bearbeiten, um ihn für Ihre Pipeline festzulegen.

Geben Sie die IAM-Servicerolle an, die Image Builder zum Ausführen von Workflow-Aktionen verwendet

Wenn Sie benutzerdefinierte Image-Workflows an Ihre Pipeline anhängen oder wenn Sie eine Protokollierungskonfiguration einrichten, müssen Sie auch eine Ausführungsrolle angeben. Dies ist die IAM-Rolle, die Image Builder zur Ausführung Ihrer Workflow-Aktionen annimmt. Die Rolle muss dem Image Builder-Dienstprinzipal vertrauen. Die erforderlichen Berechtigungen finden Sie in den folgenden Informationen zum Zugriff auf den Workflow-Dienst.

Um Image-Workflows ausführen zu können, benötigt Image Builder die Erlaubnis, Workflow-Aktionen auszuführen. Sie gewähren diese Berechtigung mit einer Ausführungsrolle, die Image Builder in Ihrem Namen übernimmt. Sie weisen die Ausführungsrolle wie folgt zu.

Wichtig

Es wird empfohlen, die AWSServiceRoleForImageBuilder dienstgebundene Rolle nicht als Ausführungsrolle zu übergeben. Erstellen Sie stattdessen eine benutzerdefinierte IAM-Rolle und hängen Sie die EC2ImageBuilderExecutionPolicy AWS verwaltete Richtlinie an. Diese Richtlinie gewährt dieselben Berechtigungen, die Image Builder benötigt, um in AWS-Services Ihrem Namen anzurufen. Durch die Verwendung einer benutzerdefinierten Rolle haben Sie die volle Kontrolle über die Berechtigungen, die Image Builder verwendet. Außerdem bleiben Ihre Service Control Policies (SCPs) und Resource Control Policies (RCPs) für Vorgänge gültig, die Image Builder in Ihrem Namen ausführt.

  • Konsole — Wählen Sie im Pipeline-Assistenten Schritt 3 Definieren Sie den Image-Erstellungsprozess und wählen Sie Ihre benutzerdefinierte Rolle aus der IAM-Rollenliste im Bereich Service Access aus.

  • Image Builder-API — Geben Sie in der CreateImage Aktionsanfrage Ihre benutzerdefinierte Rolle als Wert für den executionRole Parameter an.

Informationen zum Erstellen einer benutzerdefinierten Ausführungsrolle finden Sie im AWS Identity and Access Management Benutzerhandbuch unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS Dienst.

Ordnen Sie Workflows einer Pipeline zu

Um benutzerdefinierte Image-Workflows zum Erstellen, Testen und Verteilen Ihrer Pipeline zuzuordnen, wählen Sie die Registerkarte aus, die der Methode entspricht, die Sie verwenden möchten.

AWS-Managementkonsole

Wenn Sie eine Pipeline in der erstellen oder aktualisieren AWS-Managementkonsole, enthält der Assistent zum Erstellen einer Image-Pipeline einen Workflow-Schritt, in dem Sie die Workflows auswählen, die in Ihrer Pipeline ausgeführt werden. Gehen Sie in diesem Schritt wie folgt vor, um benutzerdefinierte Image-Workflows zuzuordnen:

  1. Wählen Sie für Build-Workflow den Build-Workflow aus, den Ihre Pipeline ausführen soll.

  2. Fügen Sie für Test-Workflows einen oder mehrere Test-Workflows hinzu und organisieren Sie sie in Testgruppen, um die Reihenfolge zu steuern, in der sie ausgeführt werden. Weitere Informationen finden Sie unter Definieren Sie Testgruppen für Test-Workflows.

  3. Wählen Sie für den Verteilungsworkflow einen Verteilungsworkflow aus, wenn Sie die angehängte Verteilungskonfiguration außer Kraft setzen oder einen besseren Einblick in den Verteilungsprozess erhalten möchten. Dies ist optional.

  4. Wählen Sie für die Ausführungsrolle die IAM-Rolle aus, die Image Builder zur Ausführung Ihrer Workflow-Aktionen annimmt. Eine Ausführungsrolle ist erforderlich, wenn Sie benutzerdefinierte Image-Workflows zuordnen. Weitere Informationen finden Sie unter Geben Sie die IAM-Servicerolle an, die Image Builder zum Ausführen von Workflow-Aktionen verwendet.

  5. Wenn ein von Ihnen ausgewählter Workflow Parameter definiert, legen Sie deren Werte im Bereich „Parameter“ fest. Weitere Informationen finden Sie unter Legen Sie Workflow-Parameter in einer Image Builder-Pipeline von der Konsole aus fest.

Eine schrittweise Anleitung zum vollständigen Erstellen einer Image-Pipeline finden Sie unterAMI-Image-Pipelines erstellen und aktualisieren.

AWS CLI

Verwenden Sie den create-image-pipeline Befehl, um benutzerdefinierte Image-Workflows zuzuordnen, wenn Sie eine Pipeline erstellen. Geben Sie Ihre Ausführungsrolle mit dem --execution-role Parameter an und listen Sie Ihre Build-, Test- und Distribution-Workflows mit dem --workflows Parameter auf. Im folgenden Beispiel wird eine Pipeline mit einem Build-Workflow, einem Test-Workflow und einem Verteilungs-Workflow erstellt.

aws imagebuilder create-image-pipeline \ --name example-pipeline \ --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/example/1.0.0 \ --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:111122223333:infrastructure-configuration/example \ --execution-role arn:aws:iam::111122223333:role/ImageBuilderWorkflowExecutionRole \ --workflows '[ {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/example-build/1.0.0"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/test/example-test/1.0.0","parallelGroup":"group-1","onFailure":"CONTINUE"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/distribution/example-distribute/1.0.0"} ]'