Verwenden Sie bedingte Konstrukte in AWSTOE - EC2Image 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.

Verwenden Sie bedingte Konstrukte in AWSTOE

Bedingte Konstrukte führen unterschiedliche Aktionen in Ihrem Komponentendokument aus, je nachdem, ob der angegebene bedingte Ausdruck als oder ausgewertet wird. true false Sie können das if Konstrukt verwenden, um den Ausführungsablauf in Ihrem Komponentendokument zu steuern.

wenn Konstrukt

Sie können das if Konstrukt verwenden, um zu bewerten, ob ein Schritt ausgeführt werden soll oder nicht. Standardmäßig wird der Schritt AWSTOE ausgeführt, wenn der if bedingte Ausdruck zu ausgewertet wirdtrue, und wenn die Bedingung zu ausgewertet wirdfalse, wird der Schritt AWSTOE übersprungen. Wenn ein Schritt übersprungen wird, wird er bei der AWSTOE Bewertung, ob die Phase und das Dokument erfolgreich ausgeführt wurden, als erfolgreicher Schritt behandelt.

Anmerkung

Eine if Anweisung wird nur einmal ausgewertet, auch wenn der Schritt einen Neustart auslöst. Wenn ein Schritt neu gestartet wird, erkennt er, dass die if Anweisung bereits ausgewertet wurde, und setzt dort fort, wo sie aufgehört hat.

Syntax

if: - <conditional expression>: [then: <step action>] [else: <step action>]
Tastenname Erforderlich Beschreibung
bedingter Ausdruck Ja

Der bedingte Ausdruck kann genau einen der folgenden Typen von Operatoren auf oberster Ebene enthalten.

  • Vergleichsoperator — Eine Liste der Vergleichsoperatoren und Informationen zu ihrer Funktionsweise in AWSTOE Komponentendokumenten finden Sie unterVergleichsoperatoren.

  • Logischer Operator — Zu den logischen Operatoren gehören andor, undnot, und, die auf einen oder mehrere Vergleichsoperatoren angewendet werden. Weitere Hinweise zur Funktionsweise logischer Operatoren in AWSTOE Komponentendokumenten finden Sie unterLogische Operatoren.

Wenn Ihr Ausdruck mehrere Bedingungen erfüllen muss, verwenden Sie einen logischen Operator, um Ihre Bedingungen anzugeben.

then Nein

Definiert die Aktion, die ausgeführt werden soll, wenn der bedingte Ausdruck zu true ausgewertet wird.

else Nein

Definiert die Aktion, die ausgeführt werden soll, wenn der bedingte Ausdruck als Ergebnis ausgewertet wird. false

Schritt, Aktion Bedingt

Wenn Sie then oder verwendenelse, müssen Sie eine der folgenden Schrittaktionen angeben:

  • Abbrechen — AWSTOE markiert den Schritt als fehlgeschlagen.

  • Ausführen — AWSTOE führt den Schritt aus.

  • Überspringen — AWSTOE überspringt den Schritt.

Beispiel 1: Paket installieren

In den folgenden Beispielschritten aus einem AWSTOE Komponentendokument werden logische Operatoren verwendet, um einen Parameterwert zu testen und die entsprechenden Paketmanager-Befehle auszuführen, um eine Anwendung zu installieren, falls das Paket entpackt ist.

- name: InstallUnzipAptGet action: ExecuteBash if: and: - binaryExists: 'apt-get' - not: binaryExists: 'unzip' inputs: commands: - sudo apt-get update - sudo apt-get install -y unzip - name: InstallUnzipYum action: ExecuteBash if: and: - binaryExists: 'yum' - not: binaryExists: 'unzip' inputs: commands: - sudo yum install -y unzip - name: InstallUnzipZypper action: ExecuteBash if: and: - binaryExists: 'zypper' - not: binaryExists: 'unzip' inputs: commands: - sudo zypper refresh - sudo zypper install -y unzip
Beispiel 2: Einen Schritt überspringen

Das folgende Beispiel zeigt zwei Möglichkeiten, einen Schritt zu überspringen. Einer verwendet einen logischen Operator, und einer verwendet einen Vergleichsoperator mit der Skip Schrittaktion.

# Creates a file if it does not exist using not - name: CreateMyConfigFile-1 action: ExecuteBash if: not: fileExists: '/etc/my_config' inputs: commands: - echo "Hello world" > '/etc/my_config' # Creates a file if it does not exist using then and else - name: CreateMyConfigFile-2 action: ExecuteBash if: fileExists: '/etc/my_config' then: Skip else: Execute inputs: commands: - echo "Hello world" > '/etc/my_config'