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 Definitionsdokument im YAML-Format konfiguriert Eingabe-, Ausgabe- und Workflow-Schritte für die Erstellungs-, Test- und Verteilungsphasen des Image-Erstellungsprozesses. Das gleiche Dokumentformat gilt für alle drei Workflowtypen. Sie können mit Vorlagen beginnen, die standardisierte Schritte enthalten, oder Sie können bei Null beginnen, um Ihren eigenen Workflow zu definieren. Unabhängig davon, ob Sie eine Vorlage verwenden oder bei Null 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 verwendet, um Aktionen zum Erstellen, Testen und Verteilen von Images durchzuführen.
Identifizierung des Workflow-Dokuments
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 Anrufer 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 bis zu 25 Parameter in einem Workflow-Dokument 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, wird für den Parametertyp standardmäßig ein zur Laufzeit erforderlicher Zeichenfolgenwert verwendet. |
Zeichenfolge |
Ja |
Der Datentyp des Parameters muss einer der folgenden sein:
|
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 Fehlerfall wird ein Rollback in umgekehrter Reihenfolge ausgeführt, wobei mit dem Schritt begonnen wird, der fehlgeschlagen ist, und die vorherigen Schritte rückwärts durchlaufen.
Jeder Schritt kann sich auf die Ausgabe aller Aktionen früherer Schritte 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
Obwohl der Schritt selbst kein Ausgabeattribut hat, ist jede Ausgabe einer Schrittaktion stepOutput für den Schritt enthalten.
Anmerkung
Wenn Sie waitSeconds einen Schritt angeben, 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 dieser Schritt ausführt. |
Zeichenfolge |
Ja |
Muss eine unterstützte Schrittaktion für Image Builder-Workflow-Dokumente sein. |
|
|
|
Bedingte Anweisungen erweitern den Hauptteil Ihrer Workflow-Schritte um Entscheidungspunkte für den Fluss der Kontrolle. |
Diktat |
Nein |
Image Builder unterstützt die folgenden bedingten Anweisungen als Modifikatoren für den
|
|
|
description |
Die Beschreibung des Schritts. |
Zeichenfolge |
Nein |
Leere Zeichenfolgen sind nicht zulässig. Falls angegeben, muss die Länge 1 bis 1024 Zeichen betragen. |
|
|
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. |
Diktat |
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. |
|
|
onFailure |
Konfiguriert die Aktion, die ausgeführt werden soll, wenn der Schritt fehlschlägt, wie folgt. Behavior
|
Zeichenfolge |
Nein |
|
|
|
Rollback aktiviert |
Konfiguriert, ob der Schritt zurückgesetzt wird, wenn 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 |
|
|
|
timeoutSeconds |
Die maximale Zeit in Sekunden, die der Schritt ausgeführt wird, bevor er fehlschlägt und erneut versucht wird, falls Wiederholungsversuche erforderlich sind. |
Ganzzahl |
Nein |
Hängt gegebenenfalls von der Standardeinstellung ab, die für die Schrittaktion definiert wurde. |
Der maximale Timeout der Schrittaktion darf nicht überschritten werden |
|
Warte Sekunden |
Die Zeit in Sekunden, für die die Ausführung des Schritts unterbrochen wird. |
Ganzzahl |
Nein |
0 |
Der Wert der Schrittaktion darf nicht mehr als TimeoutSeconds betragen |
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"
Ausgaben von Workflow-Dokumenten
Definiert Ausgaben für den Workflow. Jede Ausgabe ist ein Schlüsselwertpaar, 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. Ein späterer Workflow kann dann eine Ausgabe namentlich mit referenzieren$.workflowOutputs..name
Anmerkung
Sie verweisen auf die Ausgabe eines Schritts im gleichen Workflow mit$.stepOutputs., aber Sie verweisen auf die Ausgabe eines früheren Workflows mit nur dem Ausgabenamen (stepName.field$.workflowOutputs.) und ohne Schrittnamen.name
Jede Ausgabe, die Sie definieren, enthält die folgenden Attribute.
|
Feld |
Description |
Typ |
Erforderlich |
|---|---|---|---|
|
Name |
Der Name der Ausgabe. Der Name muss in allen 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 einer Step-Aktion. 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