Cómo usar el Creador de expresiones

Compatible con:

El compilador de expresiones te permite analizar y modificar los resultados de JSON para usarlos en acciones posteriores. El compilador de expresiones genera varias funciones de transformación dinámica que puedes encadenar, obtener una vista previa y probar, lo que proporciona una experiencia interactiva para transformar y analizar los resultados de acciones sin procesar.

Después de seleccionar un marcador de posición para el parámetro en la acción del libro de jugadas, puedes usar los resultados en formato JSON. Estos resultados te brindan información integral que devuelve la acción, la cual puedes usar en acciones y flujos posteriores del playbook. Para obtener más información, consulta Casos de uso del compilador de expresiones.

Cómo ver el Generador de expresiones

Este ejemplo muestra datos potenciales y no refleja resultados en tiempo real. Los datos reales pueden diferir y contener más o menos campos. Si un analista conoce campos adicionales que se devolverán en el tiempo de ejecución, puede ingresar la ruta de clave correspondiente en el campo sintaxis.

Funciones

Se admiten las siguientes funciones de canalización:

  • First (x): Devuelve los primeros X elementos de un array.
    Ejemplo: alerts | First(2) (si alerts es [{"id": "A"}, {"id": "B"}, {"id": "C"}], devuelve [{"id": "A"}, {"id": "B"}])
  • Last (x): Devuelve los últimos X elementos de un array.
    Ejemplo: alerts | Last(1) (si alerts es [{"id": "A"}, {"id": "B"}, {"id": "C"}], devuelve [{"id": "C"}])
  • Min (KeyPath): Devuelve el elemento con el valor mínimo de un array. Si se proporciona un parámetro keyPath, devuelve el objeto con el valor mínimo en la ruta de acceso especificada.
    Ejemplo: alerts | Min("score") (si alerts contiene una lista de objetos con un campo score, devuelve el objeto con la puntuación más baja)
  • Max (KeyPath): Devuelve el elemento con el valor máximo de un array. Si se proporciona un parámetro keyPath, devuelve el objeto con el valor máximo en la ruta de acceso especificada.
    Ejemplo: alerts | Max("score") (si alerts contiene una lista de objetos con un campo score, devuelve el objeto con la puntuación más alta)
  • Filter (ConditionKey, Operator, Value): Filtra un array de objetos y muestra solo los objetos que coinciden con una condición en un campo especificado.
    • ConditionKey: Es el campo de cada objeto que se evaluará según la condición.
    • Operador: Es el operador que se usará para la condición.
      • Para la entrada de cadena: =, !=, in, not in.
      • Para la entrada de números o fechas: =, !=, >, >=, < , <=.
  • Valor: Es el valor que se verificará en la condición.
    Ejemplo: alerts | Filter("severity", "=", "HIGH") (devuelve todas las alertas en las que el campo severity es "ALTO")
  • DateFormat ("pattern"): Da formato a una fecha según un patrón determinado (el patrón se especifica como parámetro) con el siguiente formato: YYYY-MM-DDThh:mm:ssZ.
    Ejemplo: timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss") (si timestamp_field es "2024/07/20T10:00:00Z", devuelve "2024-07-20 10:00:00")
  • Count (): Devuelve la cantidad de elementos del array de entrada.
    Ejemplo: alerts | Count() (si alerts es un array con 4 elementos, devuelve 4)
  • OrderBy ("keyPath", "direction"): Ordena un array de objetos según los valores de una ruta de clave especificada.
    Ejemplo: alerts | OrderBy("score", "DESC") (ordena el array alerts por score en orden descendente)
  • toLower (): Convierte una entrada en caracteres en minúscula.
    Ejemplo: status_field | toLower() (si status_field es "OPEN", devuelve "open")
  • toUpper (): Convierte una entrada en caracteres en mayúsculas.
    Ejemplo: severity_field | toUpper() (si severity_field es "high", devuelve "HIGH")
  • Replace ("x", "y"): Reemplaza una subcadena dentro de una cadena por otra cadena.
    Ejemplo: message_field | Replace("World", "Universe") (si message_field es "Hello World", devuelve "Hello Universe")
  • Distinct (): Quita los valores duplicados de un array. En el caso de los arrays de objetos, realiza una comparación detallada para identificar objetos duplicados.
    Ejemplo: [10, 20, 30, 20, 40] | Distinct() (devuelve [10, 20, 30, 40])
  • getByIndex ("index"): Obtén elementos de un array por un índice especificado o una lista de índices.
    Ejemplo: alerts | getByIndex("0") (devuelve el primer elemento del array alerts)
    Ejemplo: alerts | getByIndex("0,2") (devuelve el primer y tercer elemento del array alerts)
  • split ("delimitador"): Divide una cadena en un array de subcadenas, usando un delimitador especificado.
    Ejemplo: "tag1,tag2,tag3" | split(",") (devuelve ["tag1", "tag2", "tag3"])
  • join ("delimiter"): Concatena un array de cadenas en una sola cadena, con un delimitador especificado.
    Ejemplo: ["malware", "critical"] | join(" & ") (devuelve "malware & critical")
  • trim (): Quita los espacios en blanco iniciales y finales de una cadena.
    Ejemplo: " hello world " | trim() (devuelve "hello world")
  • trimChars ("characters"): Quita los caracteres especificados del principio y el final de una cadena. Los espacios en blanco iniciales y finales siempre se quitan, incluso si no se especifican de forma explícita.
    Ejemplo: "--TEST--ABC--" | trimChars("-") (devuelve "TEST--ABC")
  • substring (start, end): Extrae una substring de una cadena, con un índice de inicio especificado y un índice de finalización opcional.
    Ejemplo: "Hello World" | substring(0, 5) (devuelve "Hello")
    Ejemplo: "Hello World" | substring(6) (devuelve "World")
  • incrementValue (value): Aumenta un valor numérico en una cantidad especificada. Si no se especifica una cantidad, el valor se incrementa en 1.
    Ejemplo: score_field | incrementValue(5) (si score_field es 90, devuelve 95)
    Ejemplo: counter_field | incrementValue() (si counter_field es 10, devuelve 11)
  • setIfEmpty ("defaultValue"): Muestra el valor predeterminado proporcionado si el valor de entrada está vacío.
    Ejemplo: optional_field | setIfEmpty("N/A") (si optional_field está vacío, devuelve "N/A"; de lo contrario, devuelve el valor de optional_field)
  • toUnixtime (): Convierte una cadena de fecha y hora legible (p.ej., "2014/03/12T13:37:27Z" o "2014-03-12T13:37:27+01:00") en una marca de tiempo de Unix, expresada en UTC.
    Ejemplo: "2024-07-20T10:00:00Z" | toUnixtime() (devuelve 1721469600)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult"): Evalúa una condición y devuelve la primera expresión si es verdadera; de lo contrario, devuelve la segunda expresión.
    Ejemplo: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority") (si severity_field es "HIGH", devuelve "Prioridad alta"; de lo contrario, devuelve "Prioridad normal")
    Ejemplo: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold") (si score_field es 90, devuelve "Por encima del umbral"; si score_field es 60, devuelve "Por debajo del umbral")

Expresión:

En el campo Expression, se insertan los resultados JSON junto con las funciones y las canalizaciones para agregar varias funciones y compilar la expresión.

Ejecución o resultados:

Después de completar el compilador de expresiones, haz clic en Ejecutar para mostrar los resultados basados en los datos de muestra en formato JSON que se muestran en el compilador de expresiones.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.