Usa gli operatori di confronto nei documenti AWSTOE dei componenti - EC2Image Builder

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa gli operatori di confronto nei documenti AWSTOE dei componenti

È possibile utilizzare i seguenti operatori di confronto con il modulo di Asserire azione e con le espressioni condizionali che utilizzano ilif Construct. Un operatore di confronto può operare su un singolo valore, ad esempiostringIsEmpty, oppure confrontare un valore di base con un secondo valore (valore variabile) per determinare se l'espressione condizionale restituisce o. true false

Se il confronto opera su due valori, il secondo valore può essere una variabile di concatenamento.

Quando si confrontano valori di tipo diverso, prima del confronto possono verificarsi le seguenti conversioni di valore:

  • Per i confronti numerici, se il valore della variabile è una stringa, AWSTOE converte la stringa in un numero prima della valutazione. Se la conversione non è possibile, viene restituito il confronto. false Ad esempio, se il valore della variabile è"1.0", la conversione funziona, ma se il valore della variabile è "a10" la conversione fallisce.

  • Per i confronti tra stringhe, se il valore della variabile è un numero, lo AWSTOE converte in una stringa prima della valutazione.

Confronta le stringhe

I seguenti operatori di confronto utilizzano le stringhe per confrontare valori, verificare la presenza di spazi o una stringa vuota o confrontare un valore di input con un modello regex. I confronti tra stringhe non fanno distinzione tra maiuscole e minuscole e non tagliano gli spazi dall'inizio o dalla fine degli input delle stringhe.

stringIsEmpty

L'stringIsEmptyoperatore restituisce true se la stringa specificata non contiene caratteri. Per esempio:

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

Verifica se la stringa specificata per stringIsWhitespace contiene solo spazi. Per esempio:

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

Verifica se la stringa specificata per stringEquals corrisponde esattamente alla stringa specificata nel value parametro. Per esempio:

# 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

Verifica se la stringa specificata per stringLessThan è inferiore alla stringa specificata nel value parametro. Per esempio:

# 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'
stringLessThanUguale a

Verifica se la stringa specificata per stringLessThanEquals è minore o uguale alla stringa specificata nel value parametro. Per esempio:

# 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

Verifica se la stringa specificata per stringGreaterThan è maggiore della stringa specificata nel value parametro. Per esempio:

# 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'
stringGreaterThanUguale a

Verifica se la stringa specificata per stringGreaterThanEquals è maggiore o uguale alla stringa specificata nel value parametro. Per esempio:

# 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

Verifica se la stringa specificata nel value parametro corrisponde al modello regex specificato perpatternMatches. Il confronto utilizza il pacchetto Golang regexp, che è conforme alla sintassi. RE2 Per ulteriori informazioni sulle RE2 regole, consulta il repository google/re2 in. GitHub

L'esempio seguente mostra un pattern match che restituisce: true

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

Confronta i numeri

I seguenti operatori di confronto funzionano con i numeri. I valori forniti per questi operatori devono essere di uno dei seguenti tipi, in base alle YAML specifiche. Il supporto per i confronti numerici utilizza l'operatore di confronto di pacchetti golang big, ad esempio: func (*Float) Cmp.

  • Numero intero

  • Float (basato su float64, che supporta numeri da -1.7e+308 a +1.7e+308)

  • Una stringa che corrisponde al seguente schema regex: ^[-+]?([0-9]+[.])?[0-9]+$

numberEquals

Verifica se il numero specificato per numberEquals è uguale al numero specificato nel value parametro. Tutti i seguenti esempi di confronto restituisconotrue:

# 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

Verifica se il numero specificato per numberLessThan è inferiore al numero specificato nel value parametro. Per esempio:

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

Verifica se il numero specificato per numberLessThanEquals è inferiore o uguale al numero specificato nel value parametro. Per esempio:

# 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

Verifica se il numero specificato per numberGreaterThan è maggiore del numero specificato nel value parametro. Per esempio:

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

Verifica se il numero specificato per numberGreaterThanEquals è maggiore o uguale al numero specificato nel value parametro. Per esempio:

# 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

Controlla i file

I seguenti operatori di confronto controllano l'hash del file o controllano se esiste un file o una cartella.

binaryExists

Verifica se un'applicazione è disponibile nel percorso corrente. Per esempio:

binaryExists: 'foo'
Nota

Su sistemi Linux e macOS, per un'applicazione denominata foo, funziona come il seguente comando bash:type foo >/dev/null 2>&1, dove $? == 0 indica un confronto riuscito.

Nei sistemi Windows, per un'applicazione denominata foo, funziona come il PowerShell comando & C:\Windows\System32\where.exe /Q foo dove $LASTEXITCODE = 0 indica un confronto riuscito.

fileExists

Verifica se un file esiste nel percorso specificato. È possibile fornire un percorso assoluto o relativo. Se la posizione specificata esiste ed è un file, il confronto restituisce. true Per esempio:

fileExists: '/path/to/file'
Nota

Sui sistemi Linux e macOS, funziona come il seguente comando bash:-d /path/to/file, dove $? == 0 indica un confronto riuscito.

Sui sistemi Windows, funziona come il PowerShell comando. Test-Path -Path 'C:\path\to\file' -PathType 'Leaf'

folderExists

Verifica se esiste una cartella nel percorso specificato. È possibile fornire un percorso assoluto o relativo. Se la posizione specificata esiste ed è una cartella, il confronto restituisce. true Per esempio:

folderExists: '/path/to/folder'
Nota

Sui sistemi Linux e macOS, funziona come il seguente comando bash:-d /path/to/folder, dove $? == 0 indica un confronto riuscito.

Sui sistemi Windows, funziona come il PowerShell comando. Test-Path -Path 'C:\path\to\folder' -PathType 'Container'

file MD5Equals

Verifica se l'MD5hash di un file è uguale a un valore specificato. Per esempio:

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

Verifica se l'SHA1hash di un file è uguale a un valore specificato. Per esempio:

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

Verifica se l'SHA256hash di un file è uguale a un valore specificato. Per esempio:

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

Verifica se l'SHA512hash di un file è uguale a un valore specificato. Per esempio:

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