Use o criador de expressões

Compatível com:

O Construtor de expressões permite-lhe analisar e modificar os resultados JSON para utilização em ações subsequentes. O criador de expressões gera várias funções de transformação dinâmicas que pode encadear, pré-visualizar e testar, oferecendo uma experiência interativa para transformar e analisar resultados de ações não processados.

Depois de selecionar um marcador de posição para o parâmetro na ação do plano de ação, pode usar os resultados JSON. Estes resultados dão-lhe informações abrangentes devolvidas pela ação, que pode usar em ações subsequentes do manual de soluções e fluxo. Para ver detalhes, consulte o artigo Exemplos de utilização do criador de expressões.

Veja o criador de expressões

Este exemplo demonstra dados potenciais e não reflete resultados em tempo real. Os dados reais podem ser diferentes e podem conter mais ou menos campos. Se um analista souber de campos adicionais que vão ser devolvidos no tempo de execução, pode introduzir o caminho da chave correspondente no campo sintaxe.

Funções

As seguintes funções de barra vertical são suportadas:

  • First (x): devolve os primeiros X elementos de uma matriz.
    Exemplo: alerts | First(2) (se alerts for [{"id": "A"}, {"id": "B"}, {"id": "C"}], devolve [{"id": "A"}, {"id": "B"}])
  • Últimos (x): devolve os últimos X elementos de uma matriz.
    Exemplo: alerts | Last(1) (se alerts for [{"id": "A"}, {"id": "B"}, {"id": "C"}], devolve [{"id": "C"}])
  • Min (KeyPath): devolve o item com o valor mínimo de uma matriz. Se for fornecido um parâmetro keyPath, devolve o objeto com o valor mínimo no caminho especificado.
    Exemplo: alerts | Min("score") (se alerts contiver uma lista de objetos com um campo score, devolve o objeto com a pontuação mais baixa)
  • Max (KeyPath): devolve o item com o valor máximo de uma matriz. Se for fornecido um parâmetro keyPath, devolve o objeto com o valor máximo no caminho especificado.
    Exemplo: alerts | Max("score") (se alerts contiver uma lista de objetos com um campo score, devolve o objeto com a pontuação mais alta)
  • Filter (ConditionKey, Operator, Value): filtra uma matriz de objetos, devolvendo apenas os objetos que correspondem a uma condição num campo especificado.
    • ConditionKey: o campo em cada objeto a avaliar em função da condição.
    • Operador: operador a usar para a condição.
      • Para a entrada de strings: =, !=, in, not in.
      • Para a introdução de números/datas: =, !=, >, >=, < , <=.
  • Valor: valor a verificar na condição.
    Exemplo: alerts | Filter("severity", "=", "HIGH") (devolve todos os alertas em que o campo severity é "ALTO")
  • DateFormat ("pattern"): formata uma data num determinado padrão (o padrão é especificado como parâmetro) para o seguinte formato: YYYY-MM-DDThh:mm:ssZ.
    Exemplo: timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss") (se timestamp_field for "2024/07/20T10:00:00Z", devolve "2024-07-20 10:00:00")
  • Count (): devolve o número de itens na matriz de entrada.
    Exemplo: alerts | Count() (se alerts for uma matriz com 4 elementos, devolve 4)
  • OrderBy ("keyPath", "direction"): ordena uma matriz de objetos com base nos valores de um caminho de chave especificado.
    Exemplo: alerts | OrderBy("score", "DESC") (ordena a matriz alerts por score por ordem descendente)
  • toLower (): converte uma entrada em carateres minúsculos.
    Exemplo: status_field | toLower() (se status_field for "ABERTO", devolve "aberto")
  • toUpper (): converte uma entrada em carateres maiúsculos.
    Exemplo: severity_field | toUpper() (se severity_field for "high", devolve "HIGH")
  • Replace ("x", "y"): substitui uma substring numa string por outra string.
    Exemplo: message_field | Replace("World", "Universe") (se message_field for "Hello World", devolve "Hello Universe")
  • Distinct (): remove valores duplicados de uma matriz. Para matrizes de objetos, faz uma comparação detalhada para identificar objetos duplicados.
    Exemplo: [10, 20, 30, 20, 40] | Distinct() (devolve [10, 20, 30, 40])
  • getByIndex ("index"): recebe itens de uma matriz através de um índice especificado ou de uma lista de índices.
    Exemplo: alerts | getByIndex("0") (devolve o primeiro elemento da matriz alerts)
    Exemplo: alerts | getByIndex("0,2") (devolve o primeiro e o terceiro elementos da matriz alerts)
  • split ("delimiter"): divide uma string numa matriz de substrings, usando um delimitador especificado.
    Exemplo: "tag1,tag2,tag3" | split(",") (devolve ["tag1", "tag2", "tag3"])
  • join ("delimiter"): concatena uma matriz de strings numa única string, usando um delimitador especificado.
    Exemplo: ["malware", "critical"] | join(" & ") (devolve "malware & critical")
  • trim (): remove os espaços em branco à esquerda e à direita de uma string.
    Exemplo: " hello world " | trim() (devolve "hello world")
  • trimChars ("carateres"): remove carateres especificados do início e do fim de uma string. Os espaços em branco à esquerda e à direita são sempre removidos, mesmo que não sejam especificados explicitamente.
    Exemplo: "--TEST--ABC--" | trimChars("-") (devolve "TEST--ABC")
  • substring (start, end): extrai uma substring de uma string, usando um índice inicial especificado e um índice final opcional.
    Exemplo: "Hello World" | substring(0, 5) (devolve "Hello")
    Exemplo: "Hello World" | substring(6) (devolve "World")
  • incrementValue (value): aumenta um valor numérico por um montante especificado. Se não for especificado nenhum valor, o valor é incrementado em 1.
    Exemplo: score_field | incrementValue(5) (se score_field for 90, devolve 95)
    Exemplo: counter_field | incrementValue() (se counter_field for 10, devolve 11)
  • setIfEmpty ("defaultValue"): devolve o valor predefinido fornecido se o valor de entrada estiver vazio.
    Exemplo: optional_field | setIfEmpty("N/A") (se optional_field estiver vazio, devolve "N/A"; caso contrário, devolve o valor de optional_field)
  • toUnixtime (): converte uma string de data e hora legível (por exemplo, "2014/03/12T13:37:27Z" ou "2014-03-12T13:37:27+01:00") numa indicação de tempo Unix, expressa em UTC.
    Exemplo: "2024-07-20T10:00:00Z" | toUnixtime() (devolve 1721469600)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult"): avalia uma condição e devolve a primeira expressão se for verdadeira. Caso contrário, devolve a segunda expressão.
    Exemplo: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority") (se severity_field for "HIGH", devolve "High Priority"; caso contrário, devolve "Normal Priority")
    Exemplo: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold") (se score_field for 90, devolve "Above Threshold"; se score_field for 60, devolve "Below Threshold")

Expressão:

No campo Expressão, insere os resultados JSON juntamente com as funções e os pipes para adicionar várias funções em conjunto e criar a expressão.

Execução / Resultados:

Depois de preencher o criador de expressões, clique em Executar para apresentar os resultados com base nos dados de exemplo JSON apresentados no criador de expressões.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.