Verwenden Sie Vergleichsoperatoren in AWSTOE Komponentendokumenten - 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 Vergleichsoperatoren in AWSTOE Komponentendokumenten

Sie können die folgenden Vergleichsoperatoren mit dem Assert Aktionsmodul und mit bedingten Ausdrücken verwenden, die den verwendenwenn Konstrukt. Ein Vergleichsoperator kann beispielsweise stringIsEmpty mit einem einzelnen Wert arbeiten oder einen Basiswert mit einem zweiten Wert (Variablenwert) vergleichen, um festzustellen, ob der bedingte Ausdruck als true oder false ausgewertet wird.

Wenn der Vergleich auf zwei Werten basiert, kann der zweite Wert eine verkettete Variable sein.

Beim Vergleich von Werten eines anderen Typs können vor dem Vergleich die folgenden Wertekonvertierungen erfolgen:

  • Wenn der Variablenwert bei numerischen Vergleichen eine Zeichenfolge ist, wird die Zeichenfolge vor der Auswertung in eine Zahl AWSTOE umgewandelt. Wenn die Konvertierung nicht möglich ist, kehrt der Vergleich zurückfalse. Wenn der Variablenwert beispielsweise ist"1.0", funktioniert die Konvertierung, aber wenn der Variablenwert ist, schlägt "a10" die Konvertierung fehl.

  • Wenn der Variablenwert bei Zeichenkettenvergleichen eine Zahl ist, wird er vor der Auswertung in eine Zeichenfolge AWSTOE umgewandelt.

Vergleiche Zeichenketten

Die folgenden Vergleichsoperatoren verwenden Zeichenketten, um Werte zu vergleichen, auf Leerzeichen oder eine leere Zeichenfolge zu testen oder einen Eingabewert mit einem Regex-Muster zu vergleichen. Bei Zeichenfolgenvergleichen wird nicht zwischen Groß- und Kleinschreibung unterschieden und Leerzeichen am Anfang oder Ende der Zeichenketteneingaben werden nicht gekürzt.

stringIsEmpty

Der stringIsEmpty Operator kehrt zurück, true wenn die angegebene Zeichenfolge keine Zeichen enthält. Beispielsweise:

# Evaluates to true stringIsEmpty: "" # Evaluates to false stringIsEmpty: " " # Evaluates to false stringIsEmpty: "Hello."
stringIsWhitespace

Testet, ob die für angegebene Zeichenfolge nur Leerzeichen stringIsWhitespace enthält. Beispielsweise:

# Evaluates to true stringIsWhitespace: " " # Evaluates to false stringIsWhitespace: "" # Evaluates to false stringIsWhitespace: " Hello?"
stringEquals

Testet, ob die für stringEquals angegebene Zeichenfolge exakt mit der im value Parameter angegebenen Zeichenfolge übereinstimmt. Beispielsweise:

# Evaluates to true stringEquals: 'Testing, testing...' value: 'Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Hello again.' # Evaluates to false stringEquals: 'Testing, testing...' value: 'TESTING, TESTING....' # Evaluates to false stringEquals: 'Testing, testing...' value: ' Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Testing, testing... '
stringLessThan

Testet, ob die für angegebene Zeichenfolge kleiner als die im value Parameter angegebene Zeichenfolge stringLessThan ist. Beispielsweise:

# Evaluates to true # This comparison operator isn't case sensitive stringlessThan: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringlessThan: 'b' value: 'a' # Evaluates to true # Numeric strings compare as less than alphabetic strings stringlessThan: 'a' value: '0' # Evaluates to false stringlessThan: '0' value: 'a'
stringLessThanEntspricht

Testet, ob die für angegebene Zeichenfolge kleiner oder gleich der im value Parameter angegebenen Zeichenfolge stringLessThanEquals ist. Beispielsweise:

# Evaluates to true - 'a' is equal to 'a' stringLessThanEquals: 'a' value: 'a' # Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A' stringLessThanEquals: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringLessThanEquals: 'b' value: 'a' # Evaluates to true - '0' is less than 'a' stringLessThanEquals: 'a' value: '0' # Evaluates to false - 'a' is greater than '0' stringLessThanEquals: '0' value: 'a'
stringGreaterThan

Testet, ob die für angegebene Zeichenfolge größer als die im value Parameter angegebene Zeichenfolge stringGreaterThan ist. Beispielsweise:

# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a' stringGreaterThan: 'a' value: 'A' # Evaluates to true - 'b' is greater than 'a' stringGreaterThan: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThan: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThan: 'a' value: '0'
stringGreaterThanEntspricht

Testet, ob die für angegebene Zeichenfolge größer oder gleich der im value Parameter angegebenen Zeichenfolge stringGreaterThanEquals ist. Beispielsweise:

# Evaluates to true - 'a' is equal to 'A' stringGreaterThanEquals: 'A' value: 'a' # Evaluates to true - 'b' is greater than 'a' stringGreaterThanEquals: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThanEquals: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThanEquals: 'a' value: '0'
patternMatches

Testet, ob die im value Parameter angegebene Zeichenfolge mit dem für angegebenen Regex-Muster übereinstimmt. patternMatches Der Vergleich verwendet das Golang-Regexp-Paket, das der Syntax entspricht. RE2 Weitere Informationen zu RE2 Regeln finden Sie im google/re2-Repository unter. GitHub

Das folgende Beispiel zeigt eine Musterübereinstimmung, die Folgendes zurückgibttrue:

patternMatches: '^[a-z]+$' value: 'ThisIsValue'

Zahlen vergleichen

Die folgenden Vergleichsoperatoren arbeiten mit Zahlen. Bei den für diese Operatoren bereitgestellten Werte muss es sich gemäß der YAML Spezifikation um einen der folgenden Typen handeln. Die Support für numerische Vergleiche verwendet den Golang Big Package Comparison Operator, zum Beispiel: func (*Float) Cmp.

  • Ganzzahl

  • Float (basiert auf float64, das Zahlen von -1.7e+308 bis +1.7e+308 unterstützt)

  • Eine Zeichenfolge, die dem folgenden Regex-Muster entspricht: ^[-+]?([0-9]+[.])?[0-9]+$

numberEquals

Testet, ob die für numberEquals angegebene Zahl der im value Parameter angegebenen Zahl entspricht. Alle folgenden Beispielvergleiche geben Folgendes zurücktrue:

# Values provided as a positive number numberEquals: 1 value: 1 # Comparison value provided as a string numberEquals: '1' value: 1 # Value provided as a string numberEquals: 1 value: '1' # Values provided as floats numberEquals: 5.0 value: 5.0 # Values provided as a negative number numberEquals: -1 value: -1
numberLessThan

Testet, ob die für angegebene Zahl kleiner als die im value Parameter angegebene Zahl numberLessThan ist. Beispielsweise:

# Evaluates to true numberLessThan: 2 value: 1 # Evaluates to true numberLessThan: 2 value: 1.9 # Evaluates to false numberLessThan: 2 value: '2'
numberLessThanEntspricht

Testet, ob die für angegebene Zahl kleiner oder gleich der im value Parameter angegebenen Zahl numberLessThanEquals ist. Beispielsweise:

# Evaluates to true numberLessThanEquals: 2 value: 1 # Evaluates to true numberLessThanEquals: 2 value: 1.9 # Evaluates to true numberLessThanEquals: 2 value: '2' # Evaluates to false numberLessThanEquals: 2 value: 2.1
numberGreaterThan

Testet, ob die für angegebene Zahl größer als die im value Parameter angegebene Zahl numberGreaterThan ist. Beispielsweise:

# Evaluates to true numberGreaterThan: 1 value: 2 # Evaluates to true numberGreaterThan: 1 value: 1.1 # Evaluates to false numberGreaterThan: 1 value: '1'
numberGreaterThanEntspricht

Testet, ob die für angegebene Zahl größer oder gleich der im value Parameter angegebenen Zahl numberGreaterThanEquals ist. Beispielsweise:

# Evaluates to true numberGreaterThanEquals: 1 value: 2 # Evaluates to true numberGreaterThanEquals: 1 value: 1.1 # Evaluates to true numberGreaterThanEquals: 1 value: '1' # Evaluates to false numberGreaterThanEquals: 1 value: 0.8

Überprüfen Sie die Dateien

Die folgenden Vergleichsoperatoren überprüfen den Datei-Hash oder prüfen, ob eine Datei oder ein Ordner existiert.

binaryExists

Testet, ob eine Anwendung im aktuellen Pfad verfügbar ist. Beispielsweise:

binaryExists: 'foo'
Anmerkung

Auf Linux- und macOS-Systemen für eine Anwendung mit dem Namen foo, dies funktioniert genauso wie der folgende Bash-Befehl:type foo >/dev/null 2>&1, wobei $? == 0 auf einen erfolgreichen Vergleich hinweist.

Auf Windows-Systemen für eine Anwendung mit dem Namen foo, funktioniert genauso wie der PowerShell Befehl, der $LASTEXITCODE = 0 auf & C:\Windows\System32\where.exe /Q foo einen erfolgreichen Vergleich hinweist.

fileExists

Testet, ob eine Datei im angegebenen Pfad existiert. Sie können einen absoluten oder relativen Pfad angeben. Wenn der von Ihnen angegebene Speicherort existiert und es sich um true eine Datei handelt, ergibt der Vergleich Folgendes: Beispielsweise:

fileExists: '/path/to/file'
Anmerkung

Auf Linux- und macOS-Systemen funktioniert dies genauso wie der folgende Bash-Befehl:-d /path/to/file, wobei $? == 0 auf einen erfolgreichen Vergleich hinweist.

Auf Windows-Systemen funktioniert das genauso wie der PowerShell BefehlTest-Path -Path 'C:\path\to\file' -PathType 'Leaf'.

folderExists

Testet, ob ein Ordner unter dem angegebenen Pfad existiert. Sie können einen absoluten oder relativen Pfad angeben. Wenn der von Ihnen angegebene Speicherort vorhanden ist und es sich um true einen Ordner handelt, ergibt der Vergleich Folgendes: Beispielsweise:

folderExists: '/path/to/folder'
Anmerkung

Auf Linux- und macOS-Systemen funktioniert dies genauso wie der folgende Bash-Befehl:-d /path/to/folder, wobei $? == 0 auf einen erfolgreichen Vergleich hinweist.

Auf Windows-Systemen funktioniert das genauso wie der PowerShell BefehlTest-Path -Path 'C:\path\to\folder' -PathType 'Container'.

Datei MD5Equals

Testet, ob der MD5 Hash einer Datei einem bestimmten Wert entspricht. Beispielsweise:

fileMD5Equals: '<MD5Hash>' path: '/path/to/file'
Datei SHA1Equals

Testet, ob der SHA1 Hash einer Datei einem bestimmten Wert entspricht. Beispielsweise:

fileSHA1Equals: '<SHA1Hash>' path: '/path/to/file'
Datei SHA256Equals

Testet, ob der SHA256 Hash einer Datei einem bestimmten Wert entspricht. Beispielsweise:

fileSHA256Equals: '<SHA256Hash>' path: '/path/to/file'
Datei SHA512Equals

Testet, ob der SHA512 Hash einer Datei einem bestimmten Wert entspricht. Beispielsweise:

fileSHA512Equals: '<SHA512Hash>' path: '/path/to/file'