Utilice operadores de comparación en los documentos TOE de AWS de componentes - EC2Image Builder

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilice operadores de comparación en los documentos TOE de AWS de componentes

Puede utilizar los siguientes operadores de comparación con el módulo de Afirmar acción y con las expresiones condicionales que utilizan elsi Construct. Un operador de comparación puede operar con un único valor, por ejemplostringIsEmpty, o puede comparar un valor de referencia con un segundo valor (valor variable) para determinar si la expresión condicional se evalúa como true ofalse.

Si la comparación funciona con dos valores, el segundo valor puede ser una variable encadenante.

Al comparar valores de un tipo diferente, se pueden producir las siguientes conversiones de valores antes de la comparación:

  • Para las comparaciones numéricas, si el valor de la variable es una cadena, TOE de AWS convierte la cadena en un número antes de la evaluación. Si la conversión no es posible, se devuelve la comparaciónfalse. Por ejemplo, si el valor de la variable es"1.0", la conversión funciona, pero si el valor de la variable es, "a10" la conversión falla.

  • Para las comparaciones de cadenas, si el valor de la variable es un número, lo TOE de AWS convierte en una cadena antes de la evaluación.

Compara cadenas

Los siguientes operadores de comparación funcionan con cadenas para comparar valores, comprobar si hay espacios o una cadena vacía, o para comparar un valor de entrada con un patrón de expresiones regulares. Las comparaciones de cadenas no distinguen entre mayúsculas y minúsculas y no recortan los espacios desde el principio o el final de las entradas de cadenas.

stringIsEmpty

El stringIsEmpty operador regresa true si la cadena especificada no contiene ningún carácter. Por ejemplo:

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

Comprueba si la cadena especificada stringIsWhitespace contiene solo espacios. Por ejemplo:

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

Comprueba si la cadena especificada coincide exactamente con la cadena especificada en el value parámetro. stringEquals Por ejemplo:

# 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

Comprueba si la cadena especificada stringLessThan es menor que la cadena especificada en el value parámetro. Por ejemplo:

# 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'
stringLessThanEs igual a

Comprueba si la cadena especificada stringLessThanEquals es menor o igual que la cadena especificada en el value parámetro. Por ejemplo:

# 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

Comprueba si la cadena especificada stringGreaterThan es mayor que la cadena especificada en el value parámetro. Por ejemplo:

# 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'
stringGreaterThanEs igual a

Comprueba si la cadena especificada stringGreaterThanEquals es mayor o igual que la cadena especificada en el value parámetro. Por ejemplo:

# 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

Comprueba si la cadena especificada en el value parámetro coincide con el patrón de expresiones regulares especificado para. patternMatches La comparación utiliza el paquete de expresiones regulares de Golang, que se ajusta a la sintaxis. RE2 Para obtener más información sobre RE2 las reglas, consulte el repositorio google/ re2 en. GitHub

El siguiente ejemplo muestra una coincidencia de patrones que devuelvetrue:

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

Compara números

Los siguientes operadores de comparación funcionan con números. Los valores proporcionados para estos operadores deben ser de uno de los siguientes tipos, según la YAML especificación. El soporte para comparaciones numéricas utiliza el operador de comparación de paquetes grandes de golang, por ejemplo: func (*Float) Cmp.

  • Entero

  • Float (basado en float64, que admite números del -1.7e+308 al +1.7e+308)

  • Una cadena que coincide con el siguiente patrón de expresiones regulares: ^[-+]?([0-9]+[.])?[0-9]+$

numberEquals

Comprueba si el número especificado numberEquals es igual al número especificado en el value parámetro. Todos los ejemplos de comparación siguientes arrojan resultadostrue:

# 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

Comprueba si el número especificado numberLessThan es inferior al número especificado en el value parámetro. Por ejemplo:

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

Comprueba si el número especificado numberLessThanEquals es menor o igual al número especificado en el value parámetro. Por ejemplo:

# 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

Comprueba si el número especificado numberGreaterThan es mayor que el número especificado en el value parámetro. Por ejemplo:

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

Comprueba si el número especificado numberGreaterThanEquals es mayor o igual al número especificado en el value parámetro. Por ejemplo:

# 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

Compruebe los archivos

Los siguientes operadores de comparación comprueban el hash del archivo o comprueban si existe un archivo o una carpeta.

binaryExists

Comprueba si una aplicación está disponible en la ruta actual. Por ejemplo:

binaryExists: 'foo'
nota

En sistemas Linux y macOS, para una aplicación llamada foo, funciona igual que el siguiente comando bash:type foo >/dev/null 2>&1, donde $? == 0 indica que la comparación se ha realizado correctamente.

En sistemas Windows, para una aplicación llamada foo, funciona igual que el PowerShell comando que $LASTEXITCODE = 0 indica & C:\Windows\System32\where.exe /Q foo que la comparación se ha realizado correctamente.

fileExists

Comprueba si existe un archivo en la ruta especificada. Puede proporcionar una ruta absoluta o relativa. Si la ubicación que especifique existe y es un archivo, la comparación se evaluará como tal. true Por ejemplo:

fileExists: '/path/to/file'
nota

En los sistemas Linux y macOS, esto funciona igual que el siguiente comando bash:-d /path/to/file, donde $? == 0 indica una comparación exitosa.

En los sistemas Windows, funciona igual que el PowerShell comandoTest-Path -Path 'C:\path\to\file' -PathType 'Leaf'.

folderExists

Comprueba si existe una carpeta en la ruta especificada. Puede proporcionar una ruta absoluta o relativa. Si la ubicación que especifique existe y es una carpeta, la comparación se evaluará como tal. true Por ejemplo:

folderExists: '/path/to/folder'
nota

En los sistemas Linux y macOS, esto funciona igual que el siguiente comando bash:-d /path/to/folder, donde $? == 0 indica una comparación exitosa.

En los sistemas Windows, funciona igual que el PowerShell comandoTest-Path -Path 'C:\path\to\folder' -PathType 'Container'.

archivo MD5Equals

Comprueba si el MD5 hash de un archivo es igual a un valor especificado. Por ejemplo:

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

Comprueba si el SHA1 hash de un archivo es igual a un valor especificado. Por ejemplo:

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

Comprueba si el SHA256 hash de un archivo es igual a un valor especificado. Por ejemplo:

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

Comprueba si el SHA512 hash de un archivo es igual a un valor especificado. Por ejemplo:

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