View a markdown version of this page

Erstellen Sie ein YAML-Workflow-Dokument - 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.

Erstellen Sie ein YAML-Workflow-Dokument

Das Dokument zur Definition des YAML-Formats konfiguriert Eingabe-, Ausgabe- und Workflow-Schritte für die Erstellungs-, Test- und Verteilungsphasen des Image-Erstellungsprozesses. Für alle drei Workflowtypen gilt dasselbe Dokumentformat. Sie können mit Vorlagen beginnen, die standardisierte Schritte enthalten, oder Sie können ganz von vorne beginnen, um Ihren eigenen Workflow zu definieren. Unabhängig davon, ob Sie eine Vorlage verwenden oder ganz von vorne beginnen, können Sie den Workflow an Ihre Bedürfnisse anpassen.

Struktur eines YAML-Workflow-Dokuments

In den folgenden Abschnitten wird die Struktur des YAML-Workflow-Dokuments beschrieben, das Image Builder zum Erstellen, Testen und Verteilen von Images verwendet.

Identifizierung von Workflow-Dokumenten

Identifiziert den Workflow eindeutig. Dieser Abschnitt kann die folgenden Attribute enthalten.

Feld

Description

Typ

Erforderlich

Name

Der Name des Workflow-Dokuments.

Zeichenfolge

Nein

description

Die Beschreibung des Dokuments.

Zeichenfolge

Nein

schemaVersion

Die Version des Dokumentschemas, derzeit 1.0.

Zeichenfolge

Ja

Beispiel

--- name: sample-test-image description: Workflow for a sample image, with extra configuration options exposed through workflow parameters. schemaVersion: 1.0

Eingabeparameter für Workflow-Dokumente

Dieser Teil des Workflow-Dokuments definiert Eingabeparameter, die der Aufrufer angeben kann. Wenn Sie keine Parameter haben, können Sie diesen Abschnitt weglassen. Wenn Sie Parameter angeben, kann jeder Parameter die folgenden Attribute enthalten.

Sie können in einem Workflow-Dokument bis zu 25 Parameter definieren. Jeder Parameterwert kann bis zu 1.024 Zeichen enthalten. Ein Parameter muss einen von vier unterstützten Datentypen verwenden:string, integerboolean, oderstringList. Wenn Sie keinen default Wert für einen Parameter angeben, müssen Sie den Parameterwert zur Laufzeit angeben.

Feld

Description

Typ

Erforderlich

Beschränkungen

Name

Der Name des Parameters.

Zeichenfolge

Ja

description

Die Beschreibung des Parameters.

Zeichenfolge

Nein

default

Der Standardwert des Parameters, wenn kein Wert angegeben wird. Wenn Sie keinen Standardwert in die Parameterdefinition aufnehmen, ist der Parameterwert zur Laufzeit erforderlich.

Entspricht dem Parameter-Datentyp.

Nein

type

Der Datentyp des Parameters. Wenn Sie den Datentyp nicht in die Parameterdefinition aufnehmen, verwendet der Parametertyp standardmäßig einen zur Laufzeit erforderlichen Zeichenkettenwert.

Zeichenfolge

Ja

Der Datentyp des Parameters muss einer der folgenden sein:

  • string

  • integer

  • boolean

  • stringList

Beispiel

Geben Sie den Parameter im Workflow-Dokument an.

parameters: - name: waitForActionAtEnd type: boolean default: true description: "Wait for an external action at the end of the workflow"

Verwenden Sie den Parameterwert im Workflow-Dokument.

$.parameters.waitForActionAtEnd

Schritte des Workflow-Dokuments

Gibt bis zu 15 Schrittaktionen für den Workflow an. Die Schritte werden in der Reihenfolge ausgeführt, in der sie im Workflow-Dokument definiert sind. Im Falle eines Fehlers wird ein Rollback in umgekehrter Reihenfolge ausgeführt, wobei mit dem fehlgeschlagenen Schritt begonnen und die vorherigen Schritte rückwärts durchgearbeitet werden.

Jeder Schritt kann sich auf die Ausgabe aller Aktionen eines vorherigen Schritts beziehen. Dies wird als Verkettung oder Referenzierung bezeichnet. Um auf die Ausgabe einer Aktion aus einem vorherigen Schritt zu verweisen, können Sie einen JSONPath-Selektor verwenden. Beispiel:

$.stepOutputs.step-name.output-name

Weitere Informationen finden Sie unter Verwenden Sie dynamische Variablen in Ihrem Workflow-Dokument.

Anmerkung

Der Schritt selbst hat zwar kein Ausgabeattribut, aber jede Ausgabe einer Schrittaktion ist in stepOutput diesem Schritt enthalten.

Anmerkung

Wenn Sie waitSeconds für einen Schritt festlegen, muss der Wert kleiner als seintimeoutSeconds. Jede Schrittaktion definiert auch einen timeoutSeconds Maximalwert. Wenn Sie einen timeoutSeconds höheren Wert als den Höchstwert für die Aktion festlegen, schlägt die Überprüfung fehl. Die Höchstwerte pro Aktion finden Sie unter. Unterstützte Schrittaktionen für Ihr Workflow-Dokument

Jeder Schritt kann die folgenden Attribute enthalten.

Feld

Description

Typ

Erforderlich

Standardwert

Beschränkungen

action

Die Workflow-Aktion, die durch diesen Schritt ausgeführt wird.

Zeichenfolge

Ja

Muss eine unterstützte Schrittaktion für Image Builder Builder-Workflow-Dokumente sein.

if, gefolgt von einer Reihe von bedingten Anweisungen, die den if Operator ändern.

Bedingte Anweisungen erweitern den Hauptteil Ihrer Workflow-Schritte um Entscheidungspunkte für den Kontrollfluss.

Diktieren

Nein

Image Builder unterstützt die folgenden bedingten Anweisungen als Modifikatoren für den if Operator:

  • Verzweigungsbedingungen und Modifikatoren:if,,,and. or not Verzweigungsbedingungen werden in einer Zeile selbst angegeben.

  • Vergleichsoperatoren:booleanEquals,numberEquals,numberGreaterThan,numberGreaterThanEquals, numberLessThannumberLessThanEquals,stringEquals.

description

Die Beschreibung des Schritts.

Zeichenfolge

Nein

Leere Zeichenketten sind nicht zulässig. Falls angegeben, muss die Länge zwischen 1 und 1024 Zeichen liegen.

inputs

Enthält Parameter, die die Schrittaktion zur Ausführung benötigt. Sie können Schlüsselwerte als statische Werte oder mit einer JsonPath-Variablen angeben, die in den richtigen Datentyp aufgelöst wird.

Diktieren

Ja

Name

Der Name des Schritts. Dieser Name muss innerhalb des Workflow-Dokuments eindeutig sein.

Zeichenfolge

Ja

Die Länge muss zwischen 3 und 128 Zeichen liegen.

Kann alphanumerische Zeichen und enthalten. _ Keine Leerzeichen.

onFailure

Konfiguriert die Aktion, die ausgeführt werden soll, wenn der Schritt fehlschlägt, wie folgt.

Behavior
  • Abort— Der Schritt schlägt fehl, der Workflow schlägt fehl und führt nach dem fehlgeschlagenen Schritt keine weiteren Schritte aus. Wenn Rollback aktiviert ist, beginnt das Rollback mit dem Schritt, der fehlgeschlagen ist, und wird fortgesetzt, bis alle Schritte, die es zulassen, rückgängig gemacht wurden.

  • Continue— Der Schritt schlägt fehl, führt aber die verbleibenden Schritte nach dem fehlgeschlagenen Schritt weiter aus. In diesem Fall erfolgt kein Rollback.

Zeichenfolge

Nein

Abort

Abort | Continue

Erneut versuchen

Konfiguriert Image Builder so, dass der Schritt automatisch erneut ausgeführt wird, falls er fehlschlägt. Weitere Informationen finden Sie unter Fehlgeschlagene Workflow-Schritte wiederholen.

Diktieren

Nein

Keine Wiederholungen

Das retry Attribut enthält die folgenden Felder:

  • maxAttempts(erforderlich) — Die Gesamtzahl der Wiederholungen, mit denen der Schritt ausgeführt werden kann, einschließlich des ersten Versuchs. Gültige Werte: 1—10.

  • backoffSeconds(optional) — Die Anzahl der Sekunden, die Image Builder wartet, bevor jeder Wiederholungsversuch gestartet wird. Wenn Sie keinen Wert festlegen, wartet Image Builder 30 Sekunden. Gültige Werte: 0—600.

Rollback aktiviert

Konfiguriert, ob der Schritt zurückgesetzt wird, falls ein Fehler auftritt. Sie können einen statischen booleschen Wert oder eine dynamische JSONPath-Variable verwenden, die in einen booleschen Wert aufgelöst wird.

Boolesch

Nein

true

true | false

| oder eine JSONPath-Variable, die als wahr oder falsch aufgelöst wird.

timeoutSeconds

Die maximale Zeit in Sekunden, für die der Schritt ausgeführt wird, bevor er fehlschlägt und erneut versucht wird, falls Wiederholungen erforderlich sind.

Ganzzahl

Nein

Hängt gegebenenfalls von der Standardeinstellung ab, die für die Schrittaktion definiert wurde.

Das maximale Timeout für die Schrittaktion darf nicht überschritten werden

Warten Sie in Sekunden

Die Zeit in Sekunden, für die die Ausführung des Schritts unterbrochen wird.

Ganzzahl

Nein

0

Es darf nicht mehr als timeoutSeconds der Schrittaktion sein

Beispiel

steps: - name: LaunchTestInstance action: LaunchInstance onFailure: Abort inputs: waitFor: "ssmAgent" - name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: TerminateTestInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: WaitForActionAtEnd action: WaitForAction if: booleanEquals: true value: "$.parameters.waitForActionAtEnd"

Fehlgeschlagene Workflow-Schritte wiederholen

Standardmäßig wird jeder Schritt in einem Workflow einmal ausgeführt. Damit Image Builder einen Schritt automatisch erneut ausführt, wenn er fehlschlägt, fügen Sie dem Schritt das retry Attribut hinzu. Das retry Attribut enthält die folgenden Felder.

  • maxAttempts(erforderlich) — Die Gesamtzahl der Wiederholungen, mit denen der Schritt ausgeführt werden kann, einschließlich des ersten Versuchs. Wenn Sie beispielsweise maxAttempts auf einstellen 3 und jeder Versuch schlägt fehl, wird der Schritt dreimal ausgeführt, bevor Image Builder ihn als fehlgeschlagen markiert. Gültige Werte: 1—10.

  • backoffSeconds(optional) — Die Anzahl der Sekunden, die Image Builder wartet, bevor jeder Wiederholungsversuch gestartet wird. Wenn Sie keinen Wert festlegen, wartet Image Builder 30 Sekunden. Um es sofort erneut zu versuchen, setzen Sie den Wert auf. 0 Gültige Werte: 0—600.

Wiederholungen funktionieren wie folgt:

  • Der timeoutSeconds Wert für den Schritt gilt für jeden Versuch separat. Die Timeout-Uhr wird neu gestartet, wenn ein Wiederholungsversuch gestartet wird.

  • Wenn der Schritt nach dem letzten Versuch immer noch fehlschlägt, gilt das onFailure Verhalten für den Schritt.

Bei einigen Schrittaktionen gibt es ein zusätzliches Wiederholungsverhalten:

  • Bevor ein LaunchInstance Schritt erneut versucht wird, beendet Image Builder die Instanz, die durch den fehlgeschlagenen Versuch gestartet wurde. Durch den erneuten Versuch wird eine neue Instanz gestartet.

  • Wenn ein ExecuteComponents Schritt erneut versucht wird, führt Image Builder Ihre Komponenten erneut von Anfang an aus. Änderungen, die bei einem fehlgeschlagenen Versuch bereits an der Instanz vorgenommen wurden, werden nicht rückgängig gemacht. Bevor Sie Wiederholungen für einen Schritt konfigurieren, bei dem Komponenten ausgeführt werden, stellen Sie sicher, dass Ihre Komponenten problemlos mehrmals ausgeführt werden können.

Verwenden Sie die ListWorkflowStepExecutions API-Operationen GetWorkflowStepExecution oder, um zu sehen, wie oft ein Schritt ausgeführt wurde. Die Antwort enthält die maxAttempts Felder attemptNumber und für den Schritt.

Anmerkung

Das retry Attribut für einen Workflow-Schritt ist unabhängig von dem maxAttempts Feld, das einen einzelnen Schritt innerhalb eines AWSTOE Komponentendokuments wiederholt. Weitere Informationen finden Sie unter Benutze die AWSTOE Komponenten-Dokumenten-Framework für benutzerdefinierte Komponenten.

Beispiel

steps: - name: LaunchBuildInstance action: LaunchInstance onFailure: Abort retry: maxAttempts: 3 backoffSeconds: 60 inputs: waitFor: "ssmAgent"

Ausgaben von Workflow-Dokumenten

Definiert Ausgaben für den Workflow. Jede Ausgabe ist ein Schlüssel-Wert-Paar, das den Namen der Ausgabe und den Wert angibt. Sie können Ausgaben verwenden, um zur Laufzeit Daten zu exportieren, die nachfolgende Workflows verwenden können. Dieser Abschnitt ist optional.

Sie können bis zu 25 Ausgaben in einem Workflow-Dokument definieren. Jeder Ausgabename muss in allen Workflows, die Sie in Ihre Pipeline aufnehmen, eindeutig sein. In einem späteren Workflow kann dann mit dem Namen auf eine Ausgabe verwiesen $.workflowOutputs.name werden.

Anmerkung

Sie verweisen auf die Ausgabe eines Schritts im selben Workflow mit$.stepOutputs.stepName.field, aber Sie verweisen auf die Ausgabe eines früheren Workflows nur mit dem Ausgabenamen ($.workflowOutputs.name) und ohne Schrittnamen.

Jede Ausgabe, die Sie definieren, umfasst die folgenden Attribute.

Feld

Description

Typ

Erforderlich

Name

Der Name der Ausgabe. Der Name muss für alle Workflows, die Sie in Ihre Pipeline aufnehmen, eindeutig sein.

Zeichenfolge

Ja

value

Der Wert für die Ausgabe. Der Wert der Zeichenfolge kann eine dynamische Variable sein, z. B. eine Ausgabedatei aus einer Schrittaktion. Weitere Informationen finden Sie unter Verwenden Sie dynamische Variablen in Ihrem Workflow-Dokument.

Zeichenfolge

Ja

Beispiel

Erstellen Sie eine Ausgabebild-ID für das Workflow-Dokument mit der Schrittausgabe aus dem createProdImage Schritt.

outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'

Sehen Sie sich die Workflow-Ausgabe im nächsten Workflow an.

$.workflowOutputs.outputImageId