

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
<a name="image-workflow-create-document"></a>

Das Dokument mit der Definition des YAML-Formats konfiguriert Eingabe-, Ausgabe- und Workflow-Schritte für die Erstellungs- und Testphasen des Image-Erstellungsprozesses. 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
<a name="workflow-document-structure"></a>

Das YAML-Workflow-Dokument, das Image Builder verwendet, um Image-Build- und Testaktionen durchzuführen, ist wie folgt strukturiert.
+ [Identifizierung von Workflow-Dokumenten](#wfdoc-struct-ident)
+ [Eingabeparameter für Workflow-Dokumente](#wfdoc-struct-param)
+ [Schritte des Workflow-Dokuments](#wfdoc-struct-step)
+ [Ausgaben von Workflow-Dokumenten](#wfdoc-struct-output)

### Identifizierung von Workflow-Dokumenten
<a name="wfdoc-struct-ident"></a>

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
<a name="wfdoc-struct-param"></a>

In diesem Teil des Workflow-Dokuments werden Eingabeparameter definiert, 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.


|  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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/image-workflow-create-document.html)  | 

**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
<a name="wfdoc-struct-step"></a>

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](wfdoc-dynamic-vars.md).

**Anmerkung**  
Auch wenn der Schritt selbst kein Ausgabeattribut hat, ist jede Ausgabe einer Schrittaktion in `stepOutput` für den Schritt enthalten.

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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/image-workflow-create-document.html)  | 
|  description  |  Die Beschreibung des Schritts.  |  Zeichenfolge  |  Nein  |    |  Leere Zeichenketten sind nicht zulässig. Falls angegeben, muss die Länge 1—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.  |  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. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/image-workflow-create-document.html)  |  Zeichenfolge  |  Nein  |  `Abort`  |  `Abort` \$1 `Continue`  | 
|  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` \$1 `false` \$1 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 zutreffen.  |  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 Sekunden  |  Die Zeit in Sekunden, für die die Ausführung des Schritts unterbrochen wird.  |  Ganzzahl  |  Nein  |  0  |  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"
```

### Ausgaben von Workflow-Dokumenten
<a name="wfdoc-struct-output"></a>

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.

Jede Ausgabe, die Sie definieren, enthält 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](wfdoc-dynamic-vars.md).  |  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
```

# Unterstützte Schrittaktionen für Ihr Workflow-Dokument
<a name="wfdoc-step-actions"></a>

Dieser Abschnitt enthält Details zu den Schrittaktionen, die Image Builder unterstützt.In diesem Abschnitt verwendete Begriffe

AMI  
Amazon Machine Image

ARN  
Amazon-Ressourcenname.

**Topics**
+ [ApplyImageConfigurations](#wfdoc-step-action-apply-image-configurations)
+ [BootstrapInstanceForContainer](#wfdoc-step-action-bootstrap-container)
+ [CollectImageMetadata](#wfdoc-step-action-collect-image-metadata)
+ [CollectImageScanFindings](#wfdoc-step-action-collect-findings)
+ [CreateImage](#wfdoc-step-action-create-img-from-inst)
+ [DistributeImage](#wfdoc-step-action-distribute-image)
+ [ExecuteComponents](#wfdoc-step-action-exec-components)
+ [ExecuteStateMachine](#wfdoc-step-action-exec-state-machine)
+ [LaunchInstance](#wfdoc-step-action-launch-instance)
+ [ModifyImageAttributes](#wfdoc-step-action-modify-image-attributes)
+ [RegisterImage](#wfdoc-step-action-register-image)
+ [RunCommand](#wfdoc-step-action-run-command)
+ [RunSysPrep](#wfdoc-step-action-run-sysprep)
+ [SanitizeInstance](#wfdoc-step-action-sanitize-instance)
+ [TerminateInstance](#wfdoc-step-action-terminate-instance)
+ [WaitForAction](#wfdoc-step-action-waitfor)
+ [WaitForSSMAgent](#wfdoc-step-action-wait-for-ssm-agent)

## ApplyImageConfigurations
<a name="wfdoc-step-action-apply-image-configurations"></a>

Diese Schrittaktion wendet verschiedene Konfigurationen und Integrationen auf verteilte Systeme an AMIs, z. B. Lizenzkonfigurationen, Startvorlagenkonfigurationen, S3-Exportkonfigurationen, EC2 Schnellstartkonfigurationen und Systems Manager Manager-Parameterkonfigurationen. Konfigurationen gelten nur für verteilte Images im Quellkonto, mit Ausnahme von SSM-Parameterkonfigurationen, die kontoübergreifend angewendet werden können.

**Standard-Timeout**: 360 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| Region | Die Bildregion. | Zeichenfolge | Ja |  |  | 
| licenseConfigurationArns | Der ARN für die Lizenzkonfiguration für das Bild. | Array | Nein |  |  | 
| launchTemplateConfigurations |  | Array | Nein |  |  | 
| launchTemplateConfigurations:launchTemplateId | Die Startvorlagen-ID, die auf das Image angewendet werden soll. | Zeichenfolge | Ja, launchTemplateConfigurations wenn angegeben |  |  | 
| launchTemplateConfigurations: accountId | Das Startvorlagenkonto IDs , das auf das Bild angewendet werden soll. | Zeichenfolge | Nein |  |  | 
| launchTemplateConfigurations:setDefaultVersion | Die Standardversionseinstellung der Startvorlage für das Image. | Boolesch | Nein |  |  | 
| s3 ExportConfiguration |  | Array | Nein |  |  | 
| S3ExportConfiguration: Rollenname | Der Rollenname der S3-Exportkonfiguration für das Image. | Zeichenfolge | Ja, s3ExportConfiguration wenn angegeben |  |  | 
| s3ExportConfiguration: diskImageFormat | Das Festplatten-Image-Format für die S3-Exportkonfiguration für das Image. | Zeichenfolge | Ja, s3ExportConfiguration wenn angegeben |  | Zulässige Werte — VMDK\$1RAW\$1VHD | 
| S3ExportConfiguration: S3-Eimer | Der Name des Buckets für die S3-Exportkonfiguration für das Image. | Zeichenfolge | Ja, s3ExportConfiguration wenn angegeben |  |  | 
| S3: S3-Präfix ExportConfiguration | Das S3-Exportkonfigurations-Bucket-Präfix für das Image. | Zeichenfolge | Nein |  |  | 
| fastLaunchConfigurations | Die EC2 Fast Launch-Konfiguration für das Image. | Array | Nein |  |  | 
| fastLaunchConfigurationsDie Schnellstartkonfiguration für das Image. ----sep----:enabled |  EC2 Schneller Start enabled/disabled für das Bild. | Boolesch | Ja, fastLaunchConfigurations wenn angegeben |  |  | 
| fastLaunchConfigurationsJa, falls angegeben ----SEP----:SnapshotConfiguration |  EC2 Schneller Start enabled/disabled für das Bild. | Zuordnung | Nein |  |  | 
| fastLaunchConfigurationsSchnellstart für das Bild. ----SEP----:SnapshotConfiguration: targetResourceCount | EC2 Anzahl der Fast Launch-Zielressourcen für das Image. | Ganzzahl | Nein |  |  | 
| fastLaunchConfigurations:maxParallelLaunches | EC2 Fast Launch: maximale Anzahl parallel Starts für das Bild. | Ganzzahl | Nein |  |  | 
| fastLaunchConfigurationsFast Launch: maximale Anzahl paralleler Starts für das Image. ----sep----:LaunchTemplate |  |  | Nein |  |  | 
| fastLaunchConfigurations:LaunchTemplate ----SEP----:LaunchTemplate: launchTemplateId | EC2 ID der Schnellstartvorlage für das Image. | Zeichenfolge | Nein |  |  | 
| fastLaunchConfigurationsID der Schnellstartvorlage für das Image. ----sep----:launchTemplate: launchTemplateName | EC2 Name der Schnellstartvorlage für das Image. | Zeichenfolge | Nein |  |  | 
| fastLaunchConfigurationsName der Schnellstartvorlage für das Image. ----sep----:launchTemplate: launchTemplateVersion | EC2 Schnellstart-Vorlagenversion für das Image. | Zeichenfolge | Nein |  |  | 
| ssmParameterConfigurations | Die SSM-Parameterkonfiguration für das Image. | Zuordnung | Nein |  |  | 
| ssmParameterConfigurations:amiAccountId | Die SSM-Parameter-AMI-Konto-ID für das Image. | Zeichenfolge | Nein |  |  | 
| ssmParameterConfigurationsDie SSM-Parameter-AMI-Konto-ID für das Image. ----SEP----:ParameterName | Der SSM-Parametername für das Bild. | Zeichenfolge | Ja, wenn ssmParameterConfigurations angegeben |  |  | 
| ssmParameterConfigurationsJa, falls angegeben ----SEP----:DataType | Der SSM-Parameter-Datentyp für das Bild. | Zeichenfolge | Nein |  | Zulässige Werte - text\$1aws:ec2:image) | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| Konfigurierte Bilder | Eine Liste der konfigurierten Bilder. | Array | 
| Konfigurierte Bilder: Konto-ID | Die Zielkonto-ID des verteilten Images. | Zeichenfolge | 
| Konfigurierte Bilder: Name | Der Name des AMI. | Zeichenfolge | 
| Konfigurierte Bilder: AMIID | Die AMI-ID des verteilten Images. | Zeichenfolge | 
| Konfigurierte Bilder: Startdatum | UTC-Zeit, zu der die Verteilung gestartet wurde. | Zeichenfolge | 
| Konfigurierte Bilder: Datum, an dem der Vorgang unterbrochen wurde | UTC-Zeit, zu der die Verteilung abgeschlossen wurde. | Zeichenfolge | 
| Konfigurierte Bilder: Schritt | Der Schritt, bei dem die Verteilung beendet wurde. | Abgeschlossen\$1 AssociateLicensesRunning \$1 \$1 UpdateLaunchTemplateRunning \$1 PutSsmParametersRunning \$1 UpdateFastLaunchConfiguration ExportAmiQueued ExportAmiRunning | 
| Konfigurierte Bilder: Region | Typ des verteilten Images AWS  | Zeichenfolge | 
| Konfigurierte Bilder: Status | Status der Verteilung. | Abgeschlossen\$1Fehlgeschlagen\$1Abgebrochen\$1 TimedOut | 
| Konfigurierte Bilder: Fehlermeldung  | Fehlermeldung, falls vorhanden. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: ApplyImageConfigurations
  action: ApplyImageConfigurations
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.ApplyImageConfigurationsStep.configuredImages
```

## BootstrapInstanceForContainer
<a name="wfdoc-step-action-bootstrap-container"></a>

Diese Schrittaktion führt ein Dienstskript aus, um die Instanz mit Mindestanforderungen für die Ausführung von Container-Workflows zu booten. Image Builder verwendet die **sendCommand** in der Systems Manager Manager-API enthaltene, um dieses Skript auszuführen. Weitere Informationen finden Sie unter [Befehl AWS Systems Manager ausführen](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

**Anmerkung**  
Das Bootstrap-Skript installiert die Pakete AWS CLI und Docker, die Voraussetzung dafür sind, dass Image Builder erfolgreich Docker-Container erstellen kann. Wenn Sie diese Schrittaktion nicht einbeziehen, kann der Image-Build fehlschlagen.

**Standard-Timeout:** 60 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, die gebootet werden soll. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Instanz für diesen Workflow gestartet wurde. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der das Bootstrap-Skript auf der Instanz ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: ContainerBootstrapStep
  action: BootstrapInstanceForContainer
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.ContainerBootstrapStep.status
```

## CollectImageMetadata
<a name="wfdoc-step-action-collect-image-metadata"></a>

Diese Schrittaktion ist nur für Build-Workflows gültig.

EC2 Image Builder führt den [Agenten AWS Systems Manager (Systems Manager)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) auf den EC2 Instanzen aus, die es startet, um Ihr Image zu erstellen und zu testen. Image Builder sammelt zusätzliche Informationen über die Instanz, die während der Buildphase mit [Systems Manager Inventory verwendet wurde](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html). Diese Informationen umfassen den Namen und die Version des Betriebssystems (OS) sowie die Liste der Pakete und ihrer jeweiligen Versionen, wie von Ihrem Betriebssystem gemeldet.

**Anmerkung**  
Diese Schrittaktion funktioniert nur für Bilder, die erstellt AMIs werden.

**Standard-Timeout:** 30 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Image Builder setzt alle Systems Manager Manager-Ressourcen zurück, die in diesem Schritt erstellt wurden.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die Build-Instanz, auf die die Metadateneinstellungen angewendet werden sollen. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Build-Instanz für diesen Workflow gestartet wurde. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| osVersion | Der Name und die Version des Betriebssystems, die von der Build-Instanz erfasst wurden. | Zeichenfolge | 
| Assoziations-ID | Die Systems Manager Manager-Zuordnungs-ID, die für die Inventarerfassung verwendet wird. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: CollectMetadataStep
  action: CollectImageMetadata
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe der Schrittaktion im Workflow-Dokument.

```
$.stepOutputs.CollectMetadataStep.osVersion
```

## CollectImageScanFindings
<a name="wfdoc-step-action-collect-findings"></a>

Wenn Amazon Inspector für Ihr Konto aktiviert ist und das Scannen von Bildern für Ihre Pipeline aktiviert ist, sammelt diese Schrittaktion die von Amazon Inspector für Ihre Test-Instance gemeldeten Bildscan-Ergebnisse. Diese Schrittaktion ist für Build-Workflows nicht verfügbar.

**Standard-Timeout:** 120 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID für die Instanz, auf der der Scan ausgeführt wurde. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Instanz für diesen Workflow gestartet wurde. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der das Skript zum Sammeln von Ergebnissen ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: CollectFindingsStep
  action: CollectImageScanFindings
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.CollectFindingsStep.status
```

## CreateImage
<a name="wfdoc-step-action-create-img-from-inst"></a>

Diese Schrittaktion erstellt ein Image von einer laufenden Instance mit der EC2 `CreateImage` Amazon-API. Während des Erstellungsvorgangs wartet die Schrittaktion nach Bedarf, um zu überprüfen, ob die Ressourcen den richtigen Status erreicht haben, bevor sie fortgesetzt wird.

**Standard-Timeout: 720 Minuten**

**Maximales Timeout: 3 Tage**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die Instanz, aus der das neue Bild erstellt werden soll. | Zeichenfolge | Ja |  | Die Instanz für die angegebene Instanz-ID muss sich zu Beginn dieses Schritts in einem running Status befinden. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| imageId | Die AMI-ID des erstellten Images. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: CreateImageFromInstance
  action: CreateImage
  onFailure: Abort
  inputs:
      instanceId.$: "i-1234567890abcdef0"
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.CreateImageFromInstance.imageId
```

## DistributeImage
<a name="wfdoc-step-action-distribute-image"></a>

Diese Schrittaktion verteilt ein AMI an bestimmte Regionen und Konten. Es erstellt Kopien des AMI in Zielregionen und Konten auf der Grundlage der bereitgestellten Verteilungskonfiguration, die in den Anforderungen für oder angegeben ist, CreateImage CreateImagePipeline APIs oder benutzerdefinierten Verteilungseinstellungen, die im Workflow bereitgestellt werden, um die Einstellungen in der Verteilungskonfiguration zu überschreiben.

**Standard-Timeout**: 360 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| Region | Die Liste der Regionen, in denen das Bild verteilt werden soll. | Zeichenfolge | Ja |  | Mindestlänge 1. Maximale Länge beträgt 1024 Zeichen. | 
| Name | Der Name der Verteilungskonfiguration. | Zeichenfolge | Nein |  |  | 
| description | Die Distributionen der Verteilungskonfiguration. | Zeichenfolge | Nein |  |  | 
| targetAccountIds | Konto IDs , an das das Image verteilt werden soll. | Array | Nein |  |  | 
| AmiTags | Die Tags der Distributionskonfiguration. | Zuordnung | Nein |  |  | 
| kmsKeyId | KMS-Schlüssel, die auf das verteilte Image angewendet werden sollen. | Zeichenfolge | Nein |  |  | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| Verteilte Bilder | Eine Liste verteilter Bilder | Array | 
| Verteilte Bilder: Region | Die AWS Region des verteilten Bildes. | Zeichenfolge | 
| Verteilte Bilder: Name | Der Name des AMI. | Zeichenfolge | 
| Verteilte Bilder: AMIID | Die AMI-ID des verteilten Images. | Zeichenfolge | 
| Verteilte Bilder: Konto-ID | Die Zielkonto-ID des verteilten Images. | Zeichenfolge | 
| Verteilte Bilder: Startdatum | UTC-Zeit, zu der die Verteilung gestartet wurde. | Zeichenfolge | 
| Verteilte Bilder: Datum, an dem der Vorgang unterbrochen wurde | UTC-Zeit, zu der die Verteilung abgeschlossen wurde. | Zeichenfolge | 
| Verteilte Bilder: Status | Status der Verteilung. | Abgeschlossen\$1Fehlgeschlagen\$1Abgebrochen\$1 TimedOut | 
| Verteilte Bilder: Schritt | Der Schritt, bei dem die Verteilung beendet wurde. | Abgeschlossen\$1 CopyAmiRunning | 
| Verteilte Bilder: Fehlermeldung  | Fehlermeldung, falls vorhanden. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: DistributeImage
  action: DistributeImage
  onFailure: Abort
  inputs:
    distributions:
      - region.$: "$.parameters.SourceRegion"
        description: "AMI distribution to source region"
        amiTags:
          DistributionTest: "SourceRegion"
          WorkflowStep: "DistributeToSourceRegion"
          BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}"
          BuildVersion: "{{imagebuilder:buildVersion}}"
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.DistributeImageStep.distributedImages
```

## ExecuteComponents
<a name="wfdoc-step-action-exec-components"></a>

Bei dieser Schrittaktion werden Komponenten ausgeführt, die in der Rezeptur für das aktuelle Bild, das gerade erstellt wird, angegeben sind. Build-Workflows führen Build-Komponenten auf der Build-Instanz aus. Test-Workflows führen nur Testkomponenten auf der Testinstanz aus.

Image Builder verwendet die **sendCommand** in der Systems Manager API, um Komponenten auszuführen. Weitere Informationen finden Sie unter [Befehl AWS Systems Manager ausführen](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

**Standard-Timeout:** 720 Minuten

**Maximales Timeout: 1 Tag**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID für die Instanz, auf der die Komponenten ausgeführt werden sollen. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Instanz für diesen Workflow gestartet wurde. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der die Komponenten auf der Instanz ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: ExecComponentsStep
  action: ExecuteComponents
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe der Schrittaktion im Workflow-Dokument.

```
$.stepOutputs.ExecComponentsStep.status
```

## ExecuteStateMachine
<a name="wfdoc-step-action-exec-state-machine"></a>

Diese Schrittaktion startet die Ausführung einer AWS Step Functions Zustandsmaschine aus einem Image Builder Builder-Workflow. Image Builder verwendet die Step Functions `StartExecution` API, um die Zustandsmaschine zu initiieren, und wartet, bis sie abgeschlossen ist. Dies ist nützlich, um komplexe Workflows, Compliance-Validierungs- oder Zertifizierungsprozesse in Ihre Image-Building-Pipeline zu integrieren.

Weitere Informationen finden [Sie unter Weitere Informationen zu Zustandsmaschinen in Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html) im *AWS Step Functions Entwicklerhandbuch*.

**Standard-Timeout:** 6 Stunden

**Maximales Timeout: 24 Stunden**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| stateMachineArn | Der ARN der auszuführenden Step Functions Functions-Zustandsmaschine. | Zeichenfolge | Ja |  | Muss ein gültiger State-Machine-ARN sein. | 
| input | JSON-Eingabedaten, die der Zustandsmaschine zur Verfügung gestellt werden sollen. | Zeichenfolge | Nein | \$1\$1 | Muss eine gültige JSON-Zeichenfolge sein, maximale Länge: 16 KiB. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| executionArn | Der ARN der State-Machine-Ausführung. | Zeichenfolge | 
| output | Die Ausgabe der State-Machine-Ausführung. | Zeichenfolge | 

**IAM-Berechtigungen erforderlich**

Ihre benutzerdefinierte Ausführungsrolle muss über die folgenden Berechtigungen verfügen, um diese Schrittaktion verwenden zu können:

**Aktionen zulassen**
+ `states:StartExecution`
+ `states:DescribeExecution`

**Geben Sie Ressourcen an**
+ `arn:aws:states:us-west-2:111122223333:stateMachine:state-machine-name`
+ `arn:aws:states:us-west-2:111122223333:execution:state-machine-name:*`

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: ValidateImageCompliance
  action: ExecuteStateMachine
  timeoutSeconds: 3600
  onFailure: Abort
  inputs:
    stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidation
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2",
        "complianceLevel": "high",
        "requiredScans": ["cve", "benchmark", "configuration"]
      }
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.ValidateImageCompliance.executionArn
```

## LaunchInstance
<a name="wfdoc-step-action-launch-instance"></a>

Diese Schrittaktion startet eine Instanz in Ihrer AWS-Konto und wartet, bis der Systems Manager Manager-Agent auf der Instanz ausgeführt wird, bevor Sie mit dem nächsten Schritt fortfahren. Die Startaktion verwendet Einstellungen aus Ihren Rezept- und Infrastrukturkonfigurationsressourcen, die mit Ihrem Image verknüpft sind. Der Instance-Typ, der gestartet werden soll, stammt beispielsweise aus der Infrastrukturkonfiguration. Die Ausgabe ist die Instanz-ID der Instance, die sie gestartet hat.

Die `waitFor` Eingabe konfiguriert die Bedingung, die die Anforderung zum Abschluss des Schritts erfüllt.

**Standard-Timeout**: 75 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Bei Build-Instances führt Rollback die Aktion aus, die Sie in Ihrer Infrastrukturkonfigurationsressource konfiguriert haben. Standardmäßig werden Build-Instances beendet, wenn die Image-Erstellung fehlschlägt. In der Infrastrukturkonfiguration gibt es jedoch eine Einstellung, nach der die Build-Instanz zur Fehlerbehebung beibehalten wird.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| imageIdOverride | Das Bild, das für den Start der Instance verwendet werden soll | Zeichenfolge | Nein |  Erstellungsphase: Basis-Image für das Image-Rezept Testphase: AMI aus der Build-Phase ausgeben  | Muss eine gültige AMI-ID sein | 
| instanceTypesOverride | Image Builder versucht jeden Instanztyp in der Liste, bis er einen findet, der erfolgreich gestartet wird. | Liste von Zeichenfolgen | Nein | In Ihrer Infrastrukturkonfiguration angegebene Instanztypen | Es müssen gültige Instance-Typen sein | 
| Warte auf | Die Bedingung, auf die gewartet werden muss, bevor der Workflow-Schritt abgeschlossen und mit dem nächsten Schritt fortgefahren wird | Zeichenfolge | Ja |  | Image Builder unterstütztssmAgent. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| instanceId | Die Instanz-ID der Instanz, die gestartet wurde. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: LaunchStep
  action: LaunchInstance
  onFailure: Abort
  inputs:
    waitFor: ssmAgent
```

Verwenden Sie die Ausgabe der Schrittaktion im Workflow-Dokument.

```
$.stepOutputs.LaunchStep.instanceId
```

## ModifyImageAttributes
<a name="wfdoc-step-action-modify-image-attributes"></a>

Diese Schrittaktion ändert Attribute von Distributed AMIs, z. B. Startberechtigungen und andere AMI-Attribute. Dabei werden AMIs die Daten verwendet, die an Zielregionen und Konten verteilt wurden.

**Standard-Timeout:** 120 Minuten

**Maximales Timeout: 180 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| Region | Die Region des Bildes. | Zeichenfolge | Ja |  |  | 
| Launch Permission |  |  | Nein |  |  | 
| Startberechtigung: Benutzer-IDs | Der Benutzer, der in den IDs Startberechtigungen für das Bild geändert werden soll. | Zeichenfolge | Nein |  |  | 
| Startberechtigung: Benutzergruppen | Die Benutzergruppen, die in den Startberechtigungen für das Image geändert werden sollen. | Zeichenfolge | Nein |  |  | 
| Startberechtigung: Organisation ARNS | Die AWS Organisation, die in den Startberechtigungen ARNs für das Image geändert werden soll. | Zeichenfolge | Nein |  |  | 
| Startberechtigung: organizationalUnitArns | Die AWS Organisationseinheit ARNs , die in den Startberechtigungen für das Image geändert werden soll. | Zeichenfolge | Nein |  |  | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| Geänderte Bilder | Eine Liste modifizierter Bilder | Array | 
| Geänderte Bilder: Konto-ID | Die Zielkonto-ID des verteilten Images. | Zeichenfolge | 
| Geänderte Bilder: Name | Der Name des AMI. | Zeichenfolge | 
| Geänderte Bilder: AMIID | Die AMI-ID des verteilten Images. | Zeichenfolge | 
| Geänderte Bilder: Startdatum | UTC-Zeit, zu der die Verteilung gestartet wurde. | Zeichenfolge | 
| Geänderte Bilder: Datum, an dem der Vorgang unterbrochen wurde | UTC-Zeit, zu der die Verteilung abgeschlossen wurde. | Zeichenfolge | 
| Geänderte Bilder: Schritt | Der Schritt, bei dem die Verteilung beendet wurde. | Abgeschlossen\$1 ModifyAmiRunning | 
| Geänderte Bilder: Region | Die AWS Region des Bildes. | Zeichenfolge | 
| Geänderte Bilder: Status | Status der Verteilung. | Abgeschlossen\$1Fehlgeschlagen\$1Abgebrochen\$1 TimedOut | 
| Geänderte Bilder: Fehlermeldung  | Fehlermeldung, falls vorhanden. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: ModifyImageAttributes
  action: ModifyImageAttributes
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.ModifyImageAttributesStep.modifiedImages
```

## RegisterImage
<a name="wfdoc-step-action-register-image"></a>

Diese Schrittaktion registriert ein neues Amazon Machine Image (AMI) mithilfe der EC2 RegisterImage Amazon-API. Es ermöglicht Ihnen, ein AMI aus einem vorhandenen Snapshot oder einer Gruppe von Snapshots zu erstellen und dabei verschiedene Image-Attribute anzugeben.

**Standard-Timeout: 540 Minuten**

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| Architektur | Die Architektur des AMI. | Zeichenfolge | Nein |  | Gültige Werte: i386, x86\$164, arm64, x86\$164\$1mac, arm64\$1mac | 
| blockDeviceMapping | Die Blockgerätezuordnungseinträge für das AMI. | Array | Nein |  |  | 
| Boot-Modus | Der Startmodus des AMI. | Zeichenfolge | Nein |  | Gültige Werte: Legacy-BIOS, UEFI, UEFI-Preferred | 
| description | Eine Beschreibung für das AMI. | Zeichenfolge | Nein |  |  | 
| enaSupport | Ob Enhanced Networking mit ENA aktiviert ist. | Boolesch | Nein |  |  | 
| Standort des Bilds | Der Speicherort des AMI-Manifests. | Zeichenfolge | Nein |  | Erforderlich für S3-gestütztes AMIs | 
| IMDS-Unterstützung | Die IMDSv2 Unterstützungsstufe. | Zeichenfolge | Nein |  | Gültige Werte: v2.0 | 
| includeSnapshotTags | Ob Tags aus dem ersten Snapshot, der in der Blockgerätezuordnung definiert wurde, aufgenommen werden sollen. | Boolesch | Nein | FALSE |  Wenn der Wert auf true gesetzt ist, werden Tags wie folgt eingeschlossen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/wfdoc-step-actions.html)  | 
| Kernel-ID | Die ID des zu verwendenden Kernels. | Zeichenfolge | Nein |  |  | 
| RAM-Disk-ID | Die ID der zu verwendenden RAM-Disk. | Zeichenfolge | Nein |  |  | 
| rootDeviceName | Der Gerätename des Root-Geräts. | Zeichenfolge | Nein |  | Beispiel: /dev/sda1 | 
| sriovNetSupport | Verbessertes Netzwerk mit der Intel 82599 VF-Schnittstelle. | Zeichenfolge | Nein |  |  | 
| TPM-Unterstützung | Unterstützung für TPM-Versionen. | Zeichenfolge | Nein |  | Gültige Werte: v2.0 | 
| UEFI-Daten | Base64-kodierte UEFI-Daten. | Zeichenfolge | Nein |  |  | 
| Virtualisierungstyp | Der Virtualisierungstyp. | Zeichenfolge | Nein |  | Gültige Werte: hvm, paravirtual | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| imageId | Die AMI-ID des registrierten Images. | Zeichenfolge | 

**IAM-Berechtigungen erforderlich**

Ihre benutzerdefinierte Ausführungsrolle muss über die folgenden Berechtigungen verfügen, um diese Schrittaktion verwenden zu können:

**Aktionen zulassen**
+ `ec2:DescribeSnapshots`
+ `ec2:CreateTags`

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: RegisterNewImage
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId: "snap-1234567890abcdef0"
          VolumeSize: 100
          VolumeType: "gp3"
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.RegisterNewImage.imageId
```

**Beispiel mit einem SnapshotId von einem anderen Schritt und Snapshot-Tags, die im generierten AMI enthalten sind**

```
- name: CreateSnapshot
  action: RunCommand
  onFailure: Abort
  inputs:
    instanceId: "i-1234567890abcdef0"
    documentName: "AWS-RunShellScript"
    parameters:
      commands:
        - "aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Snapshot for AMI' --query 'SnapshotId' --output text"

- name: RegisterImageFromSnapshot
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]"
          VolumeSize: 100
          VolumeType: "gp3"
    includeSnapshotTags: true
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

## RunCommand
<a name="wfdoc-step-action-run-command"></a>

Diese Schrittaktion führt ein Befehlsdokument für Ihren Workflow aus. Image Builder verwendet die **sendCommand** in der Systems Manager API, um es für Sie auszuführen. Weitere Informationen finden Sie unter [Befehl AWS Systems Manager ausführen](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html).

**Standard-Timeout:** 720 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, auf der das Befehlsdokument ausgeführt werden soll. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Instanz für diesen Workflow gestartet wurde. | 
| documentName | Der Name des Systems Manager Manager-Befehlsdokuments, das ausgeführt werden soll. | Zeichenfolge | Ja |  |  | 
| Parameter | Eine Liste von Schlüssel-Wert-Paaren für alle Parameter, die das Befehlsdokument benötigt. | <string>wörterbuch<string, list > | Bedingt |  |  | 
| Version des Dokuments | Die auszuführende Version des Befehlsdokuments. | Zeichenfolge | Nein | \$1DEFAULT |  | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der das Befehlsdokument auf der Instanz ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Liste von Zeichenfolgen | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: RunCommandDoc
  action: RunCommand
  onFailure: Abort
  inputs:
    documentName: SampleDocument
    parameters:
        osPlatform: 
          - "linux"
    instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.RunCommandDoc.status
```

## RunSysPrep
<a name="wfdoc-step-action-run-sysprep"></a>

Diese Schrittaktion verwendet die **sendCommand** in der Systems Manager Manager-API, um das `AWSEC2-RunSysprep` Dokument für Windows-Instanzen auszuführen, bevor die Build-Instanz für den Snapshot heruntergefahren wird. Diese Aktionen folgen den [AWS bewährten Methoden zum Härten und Reinigen des Images](https://aws.amazon.com/articles/public-ami-publishing-hardening-and-clean-up-requirements/).

**Standard-Timeout:** 60 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, auf der das AWSEC2-RunSysprep Dokument ausgeführt werden soll. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, der die Instanz für diesen Workflow gestartet hat. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der das AWSEC2-RunSysprep Dokument auf der Instanz ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: RunSysprep
  action: RunSysPrep
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.RunSysprep.status
```

## SanitizeInstance
<a name="wfdoc-step-action-sanitize-instance"></a>

Diese Schrittaktion führt das empfohlene Bereinigungsskript für Linux-Instances aus, bevor die Build-Instance für den Snapshot heruntergefahren wird. Das Bereinigungsskript trägt dazu bei, dass das endgültige Image den bewährten Sicherheitsmethoden entspricht und dass Build-Artefakte oder Einstellungen, die nicht auf Ihren Snapshot übertragen werden sollten, entfernt werden. Weitere Informationen zum Skript finden Sie unter. [Bereinigung nach dem Build erforderlich](security-best-practices.md#post-build-cleanup) Diese Schrittaktion gilt nicht für Container-Images.

Image Builder verwendet die **sendCommand** in der Systems Manager Manager-API enthaltene, um dieses Skript auszuführen. Weitere Informationen finden Sie unter [Befehl AWS Systems Manager ausführen](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html).

**Standard-Timeout:** 60 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, die bereinigt werden soll. | Zeichenfolge | Ja |  | Dies muss die Ausgabeinstanz-ID des Workflow-Schritts sein, mit dem die Instanz für diesen Workflow gestartet wurde. | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| runCommandId | Die ID des Systems ManagersendCommand, der das Bereinigungsskript auf der Instanz ausgeführt hat. | Zeichenfolge | 
| Status | Der vom Systems Manager zurückgegebene StatussendCommand. | Zeichenfolge | 
| output | Die Ausgabe wurde vom Systems Manager zurückgegebensendCommand. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: SanitizeStep
  action: SanitizeInstance
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.SanitizeStep.status
```

## TerminateInstance
<a name="wfdoc-step-action-terminate-instance"></a>

Diese Schrittaktion beendet die Instanz mit der Instanz-ID, die als Eingabe übergeben wurde.

**Standard-Timeout:** 30 Minuten

**Maximales Timeout: 720 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, die beendet werden soll. | Zeichenfolge | Ja |  |  | 

**Ausgaben:** Für diese Schrittaktion gibt es keine Ausgaben.

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: TerminateInstance
  action: TerminateInstance
  onFailure: Continue
  inputs:
      instanceId.$: i-1234567890abcdef0
```

## WaitForAction
<a name="wfdoc-step-action-waitfor"></a>

Diese Schrittaktion unterbricht den laufenden Workflow und wartet auf den Empfang einer externen Aktion von der Image Builder **SendWorkflowStepAction** Builder-API-Aktion. In diesem Schritt wird ein EventBridge Ereignis mit dem Typ „Detail“ in Ihrem EventBridge Standard-Event-Bus veröffentlicht. `EC2 Image Builder Workflow Step Waiting` Der Schritt kann auch eine SNS-Benachrichtigung senden, wenn Sie einen SNS-Themen-ARN angeben, oder eine Lambda-Funktion asynchron aufrufen, wenn Sie einen Lambda-Funktionsnamen angeben.

**Standard-Timeout: 3 Tage**

**Maximales Timeout: 7 Tage**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| snsTopicArn | Ein optionaler SNS-Thema-ARN, an den eine Benachrichtigung gesendet werden kann, wenn der Workflow-Schritt aussteht. | Zeichenfolge | Nein |  |  | 
| lambdaFunctionName | Ein optionaler Name oder ARN der Lambda-Funktion, die asynchron aufgerufen werden soll, wenn der Workflow-Schritt aussteht. | Zeichenfolge | Nein |  |  | 
| Nutzlast | JSON-Zeichenfolge, die als Nachricht für SNS und als Nutzlast für Lambda verwendet wird. Falls angegeben, wird eine benutzerdefinierte Nutzlast standardmäßig eingeschlossen. message/payload, used for SNS and Lambda respectively. If not provided, generates default message/payload | Zeichenfolge | Nein |  | Muss eine gültige JSON-Zeichenfolge sein, max. 16 KiB | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| action | Die Aktion, die die SendWorkflowStepAction API-Aktion zurückgibt. | Zeichenfolge (RESUMEoderSTOP) | 
| Grund | Der Grund für die zurückgegebene Aktion. | Zeichenfolge | 

**IAM-Berechtigungen erforderlich**

Ihre benutzerdefinierte Ausführungsrolle muss über die folgenden Berechtigungen verfügen, um diese Schrittaktion verwenden zu können:

**Aktionen zulassen**
+ `lambda:InvokeFunction`

**Geben Sie Ressourcen an**
+ `arn:aws:lambda:us-west-2:111122223333:function:function-name`
+ `arn:aws:lambda:us-west-2:111122223333:function:*`

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument mit SNS-Benachrichtigung an.

```
- name: SendEventAndWait
  action: WaitForAction
  onFailure: Abort
  inputs:
    snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic
```

Geben Sie die Schrittaktion im Workflow-Dokument mit dem Aufruf der Lambda-Funktion an.

```
- name: SendEventAndWaitWithLambda
  action: WaitForAction
  onFailure: Abort
  inputs:
    lambdaFunctionName: ExampleFunction
    payload: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2"
      }
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.SendEventAndWait.reason
```

## WaitForSSMAgent
<a name="wfdoc-step-action-wait-for-ssm-agent"></a>

Diese Schrittaktion wartet darauf, dass eine EC2 Instanz AWS Systems Manager nach erwarteten Phasen, in denen sie nicht reagiert, verwaltbar wird. Dies ist besonders nützlich für Workflows mit bekannten Instanzunterbrechungen, z. B. Systemneustarts, Betriebssystem-Upgrades oder plattformspezifische Operationen, bei denen die Instanz vorübergehend vom SSM getrennt wird. Image Builder überwacht die Instanz, bis die SSM-Konnektivität wiederhergestellt ist oder ein Timeout auftritt.

**Standard-Timeout**: 60 Minuten

**Maximales Timeout: 180 Minuten**

**Rollback:** Für diese Schrittaktion gibt es kein Rollback.

**Eingaben:** Die folgende Tabelle enthält unterstützte Eingaben für diese Schrittaktion.


| Name der Eingabe | Description | Typ | Erforderlich | Standard | Beschränkungen | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | Die ID der Instanz, die auf SSM-Konnektivität überwacht werden soll. | Zeichenfolge | Ja |  | Muss eine gültige EC2 Instanz-ID sein | 

**Ausgaben:** Die folgende Tabelle enthält Ausgaben für diese Schrittaktion.


| Ausgabenname | Description | Typ | 
| --- | --- | --- | 
| Status | Verbindungsstatus des SSM-Agenten. | Zeichenfolge | 

**Beispiel**

Geben Sie die Schrittaktion im Workflow-Dokument an.

```
- name: WaitForInstanceAfterReboot
  action: WaitForSSMAgent
  onFailure: Abort
  timeoutInSeconds: 900
  inputs:
    instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

Verwenden Sie die Ausgabe des Schrittaktionswerts im Workflow-Dokument.

```
$.stepOutputs.WaitForInstanceAfterReboot.Status
```

# Verwenden Sie dynamische Variablen in Ihrem Workflow-Dokument
<a name="wfdoc-dynamic-vars"></a>

Sie können dynamische Variablen in Ihren Workflow-Dokumenten verwenden, um Werte darzustellen, die zur Laufzeit Ihres Image-Erstellungsprozesses variieren. Die Zeichenketteninterpolation für dynamische Variablen ermöglicht es Ihnen, JSONPath Ausdrücke in strukturierte Inhalte wie JSON-Zeichenketten einzubetten. Dies ist besonders nützlich, wenn Sie Laufzeitwerte innerhalb komplexer Nutzlasten an Schrittaktionen wie oder übergeben müssen. `ExecuteStateMachine` `WaitForAction`

Um die Zeichenketteninterpolation für dynamische Variablen zu verwenden, setzen Sie JSONPath Ausdrücke innerhalb Ihres Zeichenketteninhalts in doppelte geschweifte Klammern. `"{{...}}"` Nur JSONPath Ausdrücke, die in doppelte geschweifte Klammern eingeschlossen sind, werden als Variablen verarbeitet. Alle JSONPath Ausdrücke, die nicht in doppelte geschweifte Klammern eingeschlossen sind, werden als wörtliche Zeichenketteninhalte behandelt.

**JSONPath dynamische Workflow-Variablensyntax**

```
$.<document structure>.[<step name>.]<variable name>
```

Dynamische Variablenwerte werden als JSONPath Selektoren mit Strukturknoten dargestellt, die die Zielvariable eindeutig identifizieren. Der erste Knoten nach dem Stamm (\$1) bezieht sich auf die Workflow-Dokumentstruktur, z. B. oder`stepOutputs`, im Fall von Image Builder Builder-Systemvariablen,`imageBuilder`. Die folgende Liste enthält unterstützte Strukturknoten für JSONPath Workflow-Dokumente.

**Knoten für die Dokumentstruktur**
+ Parameter — Die Workflow-Parameter
+ StepOutputs — Ausgaben aus einem Schritt im selben Workflow-Dokument
+ WorkflowOutputs — Ausgaben aus einem Workflow-Dokument, das bereits ausgeführt wurde
+ imagebuilder - Image Builder Builder-Systemvariablen

Die Knoten `parameters` und die `stepOutputs` Dokumentstruktur enthalten einen optionalen Knoten für den Schrittnamen. Dadurch wird sichergestellt, dass in allen Schritten eindeutige Variablennamen verwendet werden.

Der letzte Knoten in der JSONPath ist der Name der Zielvariablen, z. `instanceId` B.

Jeder Schritt kann sich auf die Ausgabe aller Aktionen eines vorherigen Schritts mit diesen JSONPath dynamischen Variablen beziehen. Dies wird auch als *Verkettung oder Referenzierung* bezeichnet. Um auf die Ausgabe einer Aktion aus einem vorherigen Schritt zu verweisen, können Sie die folgende dynamische Variable verwenden.

```
$.stepOutputs.step-name.output-name
```

**Wichtig**  
Wenn sich ein Eingabeparameter auf eine dynamische Variable bezieht, muss der Verkettungsindikator (`.$`) an das Ende des Parameternamens angehängt werden.

**Beispiel 1: Indikator für die Verkettung von Eingabeparametern**

Das folgende Beispiel zeigt einen Eingabeparameter, der Zeichenketteninterpolation verwendet, um zur Laufzeit eine dynamische Variable im Parameterwert aufzulösen.

```
  - name: ApplyTestComponents
    action: ExecuteComponents
    onFailure: Abort
    inputs:
      instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
```

**Beispiel 2: Zeichenketteninterpolation in dynamischen Variablen**

Das folgende Beispiel zeigt, wie dynamische Variablen Zeichenketteninterpolation verwenden, um Werte zur Laufzeit zu bestimmen.

```
- name: ValidateImageConfiguration
  action: ExecuteStateMachine
  inputs:
    stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-east-1",
        "buildDate": "{{ $.imagebuilder.dateTime }}",
        "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}"
      }
```

In diesem Beispiel werden die JSONPath Ausdrücke, die in doppelte geschweifte Klammern eingeschlossen sind, zur Laufzeit aufgelöst:
+ `{{ $.stepOutputs.CreateImageFromInstance.imageId }}`- Löst die tatsächliche Bild-ID aus dem Schritt auf CreateImageFromInstance 
+ `{{ $.imagebuilder.dateTime }}`- Löst den aktuellen Build-Zeitstempel auf. Eine Liste der Image Builder Builder-Systemvariablen, die Sie verwenden können, finden [Verwenden Sie Image Builder Builder-Systemvariablen](#wfdoc-ib-vars) Sie unter.
+ `{{ $.stepOutputs.LaunchStep.instanceType }}`- Löst den Instanztyp auf, der in der LaunchStep

Die literalen Zeichenketten wie `"region": "us-east-1"` bleiben unverändert.

**Anmerkung**  
Die Zeichenketteninterpolation funktioniert mit jedem Zeichenketteninhalt in Ihrem Workflow-Dokument, einschließlich mehrzeiliger Zeichenketten, die den YAML-Operator pipe () verwenden. `|` Die Anforderung geschweifter Klammern dient als Escape-Mechanismus, mit dem klar zwischen JSONPath Variablen und wörtlichem Textinhalt unterschieden werden kann.

## Verwenden Sie Image Builder Builder-Systemvariablen
<a name="wfdoc-ib-vars"></a>

Image Builder stellt die folgenden Systemvariablen bereit, die Sie in Ihrem Workflow-Dokument verwenden können:


|  Variablenname  |  Description  |  Typ  |  Beispielwert  | 
| --- | --- | --- | --- | 
|  cloudWatchLogGruppe  |  Der Name der CloudWatch Protokollgruppe für Ausgabeprotokolle. Format: `/aws/imagebuilder/<recipe-name>`  |  Zeichenfolge  |  `/aws/imagebuilder/sampleImageRecipe`  | 
|  cloudWatchLogStreamen  |  Der Name des CloudWatch Logs-Streams für Ausgabeprotokolle.  |  Zeichenfolge  |  *1.0.0/1*  | 
|  collectImageMetadata  |  Die Einstellung, die Image Builder anweist, ob Instanzmetadaten erfasst werden sollen.  |  Boolesch  |  `true` \$1 `false`  | 
|  collectImageScanErgebnisse  |  Der aktuelle Wert der Einstellung, die es Image Builder ermöglicht, Bildscanergebnisse zu sammeln.  |  Boolesch  |  `true` \$1 `false`  | 
|  imageBuildNumber  |  Die Build-Versionsnummer des Images.  |  Ganzzahl  |  *1*  | 
|  imageId  |  Die AMI-ID des Basis-Images.  |  Zeichenfolge  |  *ami-1234567890abcdef1*  | 
|  Name des Bildes  |  Der Name des Image.  |  Zeichenfolge  |  *sampleImage*  | 
|  ImageType  |  Der Bildausgabetyp.  |  Zeichenfolge  |  `AMI` \$1 `Docker`  | 
|  imageVersionNumber  |  Die Versionsnummer des Bildes.  |  Zeichenfolge  |  *1.0.0*  | 
|  instanceProfileName  |  Der Name der Instanzprofilrolle, die Image Builder zum Starten von Build- und Testinstanzen verwendet.  |  Zeichenfolge  |  *SampleImageBuilderInstanceProfileRole*  | 
|  platform  |  Die Betriebssystemplattform des erstellten Images.  |  Zeichenfolge  |  `Linux` \$1 `Windows` \$1 `MacOS`  | 
|  S3-Protokolle  |  Ein JSON-Objekt, das die Konfiguration für die S3-Protokolle enthält, die Image Builder schreibt.  |  JSON-Objekt  |  \$1's3Logs': \$1's3 BucketName ':' ', 's3*sample-bucket*': KeyPrefix ''\$1\$1 *ib-logs*  | 
|  securityGroups  |  Die Sicherheitsgruppe IDs , die für Build- und Test-Instances gilt.  |  Liste [Zeichenfolge]  |  *[sg-1234567890abcdef1, sg-11112222333344445]*  | 
|  Quelle ImageARN  |  Der Amazon-Ressourcenname (ARN) der Image Builder Builder-Image-Ressource, die der Workflow für Build- und Testphasen verwendet.  |  Zeichenfolge  |  arn:aws:imagebuilder: ::image//*us-east-1**111122223333**sampleImage**1.0.0/1*  | 
|  subnetId  |  Die ID des Subnetzes, in dem die Build- und Test-Instances gestartet werden sollen.  |  Zeichenfolge  |  *subnet-1234567890abcdef1*  | 
|  terminateInstanceOnFehlschlag  |  Der aktuelle Wert der Einstellung, die Image Builder anweist, die Instanz bei einem Fehler zu beenden oder sie zur Fehlerbehebung beizubehalten.  |  Boolesch  |  `true` \$1 `false`  | 
|  WorkflowPhase  |  Die aktuelle Phase, in der die Workflow-Ausführung ausgeführt wird.  |  Zeichenfolge  |  `Build` \$1 `Test`  | 
|  workingDirectory  |  Der Pfad zum Arbeitsverzeichnis.  |  Zeichenfolge  |  `/tmp`  | 

# Verwenden Sie bedingte Anweisungen in Ihren Workflow-Schritten
<a name="wfdoc-conditional-statements"></a>

Bedingte Anweisungen beginnen mit dem Dokumentattribut „`if`Aussage“. Der ultimative Zweck der `if` Anweisung besteht darin, zu bestimmen, ob die Schrittaktion ausgeführt oder übersprungen werden soll. Wenn die `if` Anweisung zu aufgelöst wird`true`, wird die Schrittaktion ausgeführt. Wenn dies der Fall ist`false`, überspringt Image Builder die Schrittaktion und zeichnet den Schrittstatus `SKIPPED` im Protokoll auf.

Die `if` Anweisung unterstützt Verzweigungsanweisungen (`and`,`or`) und bedingte Modifikatoren (). `not` Sie unterstützt auch die folgenden Vergleichsoperatoren, die Wertvergleiche (gleich, kleiner als, größer als) auf der Grundlage der miteinander verglichenen Datentypen (Zeichenfolge oder Zahl) durchführen.

**Unterstützte Vergleichsoperatoren**
+ `booleanEquals`
+ `numberEquals`
+ `numberGreaterThan`
+ `numberGreaterThanEquals`
+ `numberLessThan`
+ `numberLessThanEquals`
+ `stringEquals`

**Regeln für Verzweigungsanweisungen und bedingte Modifikatoren**  
Die folgenden Regeln gelten für Verzweigungsanweisungen (`and`,`or`) und bedingte Modifikatoren (). `not`
+ Verzweigungsanweisungen und bedingte Modifikatoren müssen eigenständig in einer Zeile erscheinen.
+ Verzweigungsanweisungen und bedingte Modifikatoren müssen den Ebenenregeln entsprechen.
  + Auf der übergeordneten Ebene kann es nur eine Anweisung geben.
  + Jeder untergeordnete Zweig oder Modifikator beginnt auf einer neuen Ebene.

  Weitere Informationen zu Ebenen finden Sie unter[Verschachtelte Ebenen in bedingten Anweisungen](#wfdoc-conditional-structure).
+ Jede Verzweigungsanweisung muss mindestens eine untergeordnete bedingte Anweisung haben, jedoch nicht mehr als zehn.
+ Bedingte Modifikatoren funktionieren nur für eine untergeordnete bedingte Anweisung.

## Verschachtelte Ebenen in bedingten Anweisungen
<a name="wfdoc-conditional-structure"></a>

Bedingte Anweisungen funktionieren auf mehreren Ebenen in einem eigenen Abschnitt. Beispielsweise erscheint das `if` Anweisungsattribut in Ihrem Workflow-Dokument auf derselben Ebene wie der Schrittname und die Aktion. Dies ist die Grundlage der bedingten Anweisung.

Sie können bis zu vier Ebenen bedingter Anweisungen angeben, aber nur eine Anweisung kann auf der übergeordneten Ebene erscheinen. Alle anderen Verzweigungsanweisungen, Bedingungsmodifikatoren oder Bedingungsoperatoren werden von dort aus eingerückt, und zwar ein Einzug pro Ebene.

Die folgende Übersicht zeigt die maximale Anzahl verschachtelter Ebenen für eine bedingte Anweisung.

```
base:
  parent: 
    - child (level 2)
        - child (level 3)
            child (level 4)
```

`if` Attribut  
Das `if` Attribut gibt die bedingte Anweisung als Dokumentattribut an. Das ist Stufe Null.

Ebene der Eltern  
Dies ist die erste Ebene der Verschachtelung für bedingte Anweisungen. Auf dieser Ebene kann es nur eine Anweisung geben. Wenn Sie keine Verzweigungen oder Modifikatoren benötigen, kann dies ein bedingter Operator ohne untergeordnete Anweisungen sein. Diese Ebene verwendet keine Bindestrich-Notation, mit Ausnahme von Bedingungsoperatoren.

Stufen für Kinder  
Die Stufen zwei bis vier gelten als Stufen für Kinder. Untergeordnete Anweisungen können Verzweigungsanweisungen, bedingte Modifikatoren oder bedingte Operatoren enthalten.

**Beispiel: Verschachtelte Ebenen**  
Das folgende Beispiel zeigt die maximale Anzahl von Ebenen in einer bedingten Anweisung.

```
if:
  and:                             #first level
    - stringEquals: 'my_string'    #second level
      value: 'my_string'
    - and:                         #also second level
        - numberEquals: '1'        #third level
          value: 1
        - not:                     #also third level
            stringEquals: 'second_string'      #fourth level
            value: "diff_string"
```

**Verschachtelungsregeln**
+ Jeder Zweig oder Modifikator auf der untergeordneten Ebene beginnt mit einer neuen Ebene.
+ Jede Ebene ist eingerückt.
+ Es können maximal vier Ebenen vorhanden sein, darunter eine Anweisung, ein Modifikator oder ein Operator auf der übergeordneten Ebene, und bis zu drei weitere Ebenen.

## Beispiele für bedingte Anweisungen
<a name="wfdoc-conditional-examples"></a>

Diese Gruppe von Beispielen zeigt verschiedene Aspekte bedingter Aussagen.

**Verzweigung: und**  
Die `and` Branching-Anweisung arbeitet mit einer Liste von Ausdrücken, die der Verzweigung untergeordnet sind. Alle Ausdrücke müssen als Ergebnis ausgewertet werden. `true` Image Builder wertet die Ausdrücke in der Reihenfolge aus, in der sie in der Liste erscheinen. Wenn ein Ausdruck zu ausgewertet wird`false`, wird die Verarbeitung gestoppt und die Verzweigung wird berücksichtigt. `false`

Im folgenden Beispiel wird als ausgewertet`true`, weil beide Ausdrücke als 0 ausgewertet werden. `true`

```
if:
  and:
    - stringEquals: 'test_string'
      value: 'test_string'
    - numberEquals: 1
      value: 1
```

**Verzweigung: oder**  
Die `or` Branching-Anweisung arbeitet mit einer Liste von Ausdrücken, die der Verzweigung untergeordnet sind. Mindestens einer davon muss als Ergebnis ausgewertet werden. `true` Image Builder wertet die Ausdrücke in der Reihenfolge aus, in der sie in der Liste erscheinen. Wenn ein Ausdruck zu ausgewertet wird`true`, wird die Verarbeitung gestoppt und die Verzweigung wird berücksichtigt. `true`

Im folgenden Beispiel wird als ausgewertet`true`, obwohl der erste Ausdruck dies ist. `false`

```
if:
  or:
    - stringEquals: 'test_string'
      value: 'test_string_not_equal'
    - numberEquals: 1
      value: 1
```

**Bedingter Modifikator: nicht**  
Der `not` bedingte Modifikator negiert die bedingten Anweisungen, die dem Zweig untergeordnet sind.

Im folgenden Beispiel wird ausgewertet, `true` wann der `not` Modifikator die bedingte Anweisung negiert. `stringEquals`

```
if:
  not:
    - stringEquals: 'test_string'
      value: 'test_string_not_equal'
```

**Bedingte Anweisung: BooleanEquals**  
Der `booleanEquals` Vergleichsoperator vergleicht boolesche Werte und gibt true zurück, wenn die booleschen Werte exakt übereinstimmen.

Das folgende Beispiel bestimmt, ob es aktiviert ist. `collectImageScanFindings`

```
if:
  - booleanEquals: true
    value: '$.imagebuilder.collectImageScanFindings'
```

**Bedingte Anweisung: StringEquals**  
Der `stringEquals` Vergleichsoperator vergleicht zwei Zeichenketten und gibt true zurück, wenn die Zeichenketten exakt übereinstimmen. Wenn einer der Werte keine Zeichenfolge ist, konvertiert Image Builder ihn vor dem Vergleich in eine Zeichenfolge.

Im folgenden Beispiel wird die Plattform-Systemvariable verglichen, um festzustellen, ob der Workflow auf einer Linux-Plattform ausgeführt wird.

```
if:
  - stringEquals: 'Linux'
    value: '$.imagebuilder.Platform'
```

**Bedingte Aussage: NumberEquals**  
Der `numberEquals` Vergleichsoperator vergleicht zwei Zahlen und gibt true zurück, wenn die Zahlen gleich sind. Die zu vergleichenden Zahlen müssen eines der folgenden Formate haben.
+ Ganzzahl
+ Gleitkommazahl
+ Eine Zeichenfolge, die dem folgenden Regex-Muster entspricht:. `^-?[0-9]+(\.)?[0-9]+$`

Die folgenden Beispielvergleiche werden alle als ausgewertet. `true`

```
if:
  # Value provider as a number
  numberEquals: 1
  value: '1'
  
  # Comparison value provided as a string
  numberEquals: '1'
  value: 1
  
  # Value provided as a string
  numberEquals: 1
  value: '1'
  
  # Floats are supported
  numberEquals: 5.0
  value: 5.0
  
  # Negative values are supported
  numberEquals: -1
  value: -1
```