

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Funções booleanas, de comparação, numéricas e de data e hora, entre outras
<a name="CWL_QuerySyntax-operations-functions"></a>

 CloudWatch O Logs Insights oferece suporte a muitas outras operações e funções em consultas, conforme explicado nas seções a seguir. 

**Topics**
+ [Operadores aritméticos](#CWL_QuerySyntax-operations-arithmetic)
+ [Operadores booleanos](#CWL_QuerySyntax-operations-Boolean)
+ [Operadores de comparação](#CWL_QuerySyntax-operations-comparison)
+ [Operadores numéricos](#CWL_QuerySyntax-operations-numeric)
+ [Tipos de estrutura](#CWL_QuerySyntax-structure-types)
+ [Funções de data e hora](#CWL_QuerySyntax-datetime)
+ [Funções gerais](#CWL_QuerySyntax-general-functions)
+ [Funções JSON](#CWL_QuerySyntax-json-functions)
+ [Funções de string de endereço IP](#CWL_QuerySyntax-IPaddress-functions)
+ [Funções de string](#CWL_QuerySyntax-string-functions)

## Operadores aritméticos
<a name="CWL_QuerySyntax-operations-arithmetic"></a>

 Os operadores aritméticos aceitam tipos de dados numéricos como argumentos e retornam resultados numéricos. Use operadores aritméticos nos comandos `filter` e `fields` e como argumentos de outras funções. 


| Operation | Description | 
| --- | --- | 
|  `a + b` |  Adição  | 
|  `a - b` |  Subtração  | 
|  `a * b` |  Multiplicação  | 
|  `a / b` |  Divisão  | 
|  `a ^ b` |   Exponenciação (`2 ^ 3` retorna `8`)   | 
|  `a % b` |   Resto ou módulo (`10 % 3` retorna `1`)   | 

## Operadores booleanos
<a name="CWL_QuerySyntax-operations-Boolean"></a>

 Use os operadores booleanos `and`, `or` e `not`. 

**nota**  
 Use operadores booleanos somente em funções que retornam um valor de **TRUE** ou **FALSE**. 

## Operadores de comparação
<a name="CWL_QuerySyntax-operations-comparison"></a>

 Os operadores de comparação aceitam todos os tipos de dados como argumentos e retornam um resultado booliano. Use operadores de comparação no comando `filter` e como argumentos de outras funções. 


| Operador | Description | 
| --- | --- | 
|   `=`   |   Equal   | 
|   `!=`   |   Not equal   | 
|   `<`   |   Menor que   | 
|  `>` |   Maior que   | 
|  `<=` |   Menor ou igual a   | 
|   `>=`   |   Maior ou igual a   | 

## Operadores numéricos
<a name="CWL_QuerySyntax-operations-numeric"></a>

 As operações numéricas aceitam tipos de dados numéricos como argumentos e retornam resultados numéricos. Use operadores numéricos nos comandos `filter` e `fields` e como argumentos de outras funções. 


| Operation | Tipo de resultado | Description | 
| --- | --- | --- | 
|   `abs(a: number)`   |   número   |   Valor absoluto   | 
|   `ceil(a: number)`   |   número   |   Arredonde para o máximo (o menor inteiro maior que o valor de `a`)   | 
|   `floor(a: number)`   |  número |   Arredonde para o mínimo (o maior inteiro menor que o valor de `a`)   | 
|   `greatest(a: number, ...numbers: number[])`   |   número   |   Retorna o maior valor   | 
|   `least(a: number, ...numbers: number[])`   |  número |   Retorna o menor valor   | 
|   `log(a: number)`   |   número   |   Log natural   | 
|   `sqrt(a: number)`   |   número   |   Raiz quadrada   | 

## Tipos de estrutura
<a name="CWL_QuerySyntax-structure-types"></a>

 Um mapa ou lista é um tipo de estrutura no CloudWatch Logs Insights que permite acessar e usar atributos para consultas. 

**Exemplo: para obter um mapa ou uma lista**  
 Use `jsonParse` para analisar um campo que é uma string json em um mapa ou uma lista. 

```
fields jsonParse(@message) as json_message
```

**Exemplo: para acessar atributos**  
 Use o operador de acesso por ponto (map.attribute) para acessar itens em um mapa. Se um atributo em um mapa contiver caracteres especiais, use crases para delimitar o nome do atributo (map.attributes). `special.char`). 

```
fields jsonParse(@message) as json_message
| stats count() by json_message.status_code
```

 Use o operador de acesso por colchetes (list[index]) para recuperar um item em uma posição específica na lista. 

```
fields jsonParse(@message) as json_message
| filter json_message.users[1].action = "PutData"
```

 Coloque caracteres especiais entre crases (``) quando caracteres especiais estiverem presentes no nome da chave. 

```
fields jsonParse(@message) as json_message
| filter json_message.`user.id` = "123"
```

**Exemplo: resultados vazios**  
 Mapas e listas são tratados como nulos para funções de string, número e data e hora. 

```
fields jsonParse(@message) as json_message
| display toupper(json_message)
```

 A comparação do mapa e da lista com quaisquer outros campos resulta em `false`. 

**nota**  
 O uso de mapa e lista em `dedup`, `pattern`, `sort` e `stats` não é suportado. 

## Funções de data e hora
<a name="CWL_QuerySyntax-datetime"></a>

 **Funções de data e hora** 

 Use funções de data e hora nos comandos `fields` e `filter` e como argumentos de outras funções. Use essas funções para criar buckets de tempo para consultas com funções de agregação. Use períodos que consistam em um número e uma das seguintes abreviaturas:
+ `ms` para milissegundos 
+ `s` para segundos 
+ `m` para minutos 
+ `h` para horas 

 Por exemplo, `10m` é 10 minutos, e `1h` é uma hora. 

**nota**  
Use a unidade de tempo mais apropriada para a função de data e hora. CloudWatch Os registros limitam sua solicitação de acordo com a unidade de tempo que você escolher. Por exemplo, o limite máximo será 60 para qualquer solicitação que use `s`. Então, se você especificar`bin(300s)`, o CloudWatch Logs realmente implementa isso como 60 segundos, porque 60 é o número de segundos em um minuto, então o CloudWatch Logs não usará um número maior que 60 com`s`. Para criar um bucket de 5 minutos, use `bin(5m)` em vez disso.  
O limite para `ms` é 1.000, o limite para `s` e `m` é 60 e o limite para `h` é 24.

A tabela a seguir contém uma lista das diferentes funções de data e hora que você pode usar nos comandos de consulta. A tabela lista o tipo de resultado de cada função e contém uma descrição de cada função. 

**dica**  
 Quando você cria um comando de consulta, é possível usar o seletor de intervalo de tempo para selecionar um período que deseja consultar. Por exemplo, você pode definir um período entre intervalos de 5 e 30 minutos; intervalos de 1, 3 e 12 horas; ou um período personalizado. Você também pode definir períodos entre datas específicas. 


| Função | Tipo de resultado | Description | 
| --- | --- | --- | 
|  `bin(period: Period)` |  Timestamp |  Arredonda o valor de `@timestamp` para o período indicado e trunca. Por exemplo, `bin(5m)` arredonda o valor de `@timestamp` para os 5 minutos mais próximos. Você pode usar isso para agrupar várias entradas de log em uma consulta. O seguinte exemplo conta a quantidade de exceções por hora: <pre>filter @message like /Exception/ <br />    | stats count(*) as exceptionCount by bin(1h)<br />    | sort exceptionCount desc</pre> As unidades e abreviações de tempo a seguir são compatíveis com a função `bin`. Para todas as unidades e abreviações que incluem mais de um caractere, é permitido adicionar "s" para formar o plural. Assim, ambos `hr` e `hrs` funcionam para especificar horas. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-operations-functions.html)  | 
|  `datefloor(timestamp: Timestamp, period: Period)` |  Timestamp |  Trunca o time stamp para o período indicado. Por exemplo, `datefloor(@timestamp, 1h)` trunca todos os valores de `@timestamp` no final.  | 
|  `dateceil(timestamp: Timestamp, period: Period)` |  Timestamp |  Arredonda o time stamp para o período indicado e trunca. Por exemplo, `dateceil(@timestamp, 1h)` trunca todos os valores de `@timestamp` no início.  | 
|  `fromMillis(fieldName: number)` |  Timestamp |  Interpreta o campo de entrada como o número de milissegundos desde a epoch do Unix e o converte em um time stamp.  | 
|  `toMillis(fieldName: Timestamp)` |  número |  Converte o time stamp encontrado no campo nomeado em um número que representa os milissegundos desde a epoch do Unix. Por exemplo, `toMillis(@timestamp)` converte o carimbo de data/hora `2022-01-14T13:18:031.000-08:00` para `1642195111000`.  | 
|  `now()`  |  número  |  Retorna a hora em que o processamento da consulta foi iniciado, em segundos de época. Essa função não usa argumentos. Você pode usá-la para filtrar os resultados da consulta de acordo com a hora atual. Por exemplo, a consulta a seguir gera todos os erros 4xx das últimas duas horas: <pre>parse @message "Status Code: *;" as statusCode\n <br />| filter statusCode >= 400 and statusCode <= 499  \n <br />| filter toMillis(@timestamp) >= (now() * 1000 - 7200000)</pre> O exemplo a seguir retorna todas as entradas de log das últimas cinco horas que contêm a palavra `error` ou `failure` <pre>fields @timestamp, @message <br />| filter @message like /(?i)(error|failure)/ <br />| filter toMillis(@timestamp) >= (now() * 1000 - 18000000)</pre>  | 

**nota**  
 Atualmente, o CloudWatch Logs Insights não oferece suporte à filtragem de registros com carimbos de data/hora legíveis por humanos. 

## Funções gerais
<a name="CWL_QuerySyntax-general-functions"></a>

 **Funções gerais** 

 Use funções gerais nos comandos `fields` e `filter` e como argumentos de outras funções. 


| Função | Tipo de resultado | Description | 
| --- | --- | --- | 
|   `ispresent(fieldName: LogField)`   |   Booleano   |   Retorna `true` se o campo existir   | 
|   `coalesce(fieldName: LogField, ...fieldNames: LogField[])`   |   LogField   |   Retorna o primeiro valor não nulo da lista   | 

## Funções JSON
<a name="CWL_QuerySyntax-json-functions"></a>

 **Funções JSON** 

 Use funções JSON nos comandos `fields` e `filter` como argumentos de outras funções. 


| Função | Tipo de resultado | Description | 
| --- | --- | --- | 
|   `jsonParse(fieldName: string)`   |   Mapa \$1 Lista \$1 Vazio   |   Retorna um mapa ou uma lista quando a entrada é uma representação de string do objeto JSON ou de uma matriz JSON. Retorna um valor vazio, se a entrada não for uma das representações.   | 
|   `jsonStringify(fieldName: Map \| List)`   |   String   |   Retorna uma string JSON de um mapa ou dados da lista.   | 

## Funções de string de endereço IP
<a name="CWL_QuerySyntax-IPaddress-functions"></a>

 **Funções de string de endereço IP** 

 Use funções de string no endereço IP dos comandos `filter` e `fields` e como argumentos de outras funções. 


| Função | Tipo de resultado | Description | 
| --- | --- | --- | 
|  `isValidIp(fieldName: string)` |  booliano |  Retorna `true` se o campo for um IPv6 endereço válido IPv4 ou.  | 
|  `isValidIpV4(fieldName: string)` |  booleano |  Retorna `true` se o campo for um IPv4 endereço válido.  | 
|  `isValidIpV6(fieldName: string)` |  booleano |  Retorna `true` se o campo for um IPv6 endereço válido.  | 
|  `isIpInSubnet(fieldName: string, subnet: string)` |  booleano |  Retorna `true` se o campo for um IPv6 endereço válido IPv4 ou dentro da sub-rede v4 ou v6 especificada. Ao especificar a sub-rede, use a notação CIDR, como `192.0.2.0/24` ou `2001:db8::/32`, onde `192.0.2.0` ou`2001:db8::` é o início do bloco CIDR.  | 
|  `isIpv4InSubnet(fieldName: string, subnet: string)` |  booleano |  Retorna `true` se o campo for um IPv4 endereço válido dentro da sub-rede v4 especificada. Ao especificar a sub-rede, use a notação CIDR, como `192.0.2.0/24`, em que `192.0.2.0` é o início do bloco CIDR.  | 
|  `isIpv6InSubnet(fieldName: string, subnet: string)` |  booleano |  Retorna `true` se o campo for um IPv6 endereço válido dentro da sub-rede v6 especificada. Ao especificar a sub-rede, use a notação CIDR, como `2001:db8::/32`, em que `2001:db8::` é o início do bloco CIDR.  | 

## Funções de string
<a name="CWL_QuerySyntax-string-functions"></a>

 **Funções de string** 

 Use funções de string nos comandos `fields` e `filter` e como argumentos de outras funções. 


| Função | Tipo de resultado | Description | 
| --- | --- | --- | 
|  `isempty(fieldName: string)` |  Número |  Retornará `1` se o campo não for encontrado ou for uma string vazia.  | 
|  `isblank(fieldName: string)` |  Número |  Retornará `1` se o campo não for encontrado, for uma string vazia ou só contiver espaço branco.  | 
|  `concat(str: string, ...strings: string[])` |  string |  Concatena as strings.  | 
|  `ltrim(str: string)` `ltrim(str: string, trimChars: string)` |  string |  Se a função não tiver um segundo argumento, ela removerá os caracteres em branco da esquerda da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres em `trimChars` à esquerda de `str`. Por exemplo, `ltrim("xyZxyfooxyZ","xyZ")` exibe `"fooxyZ"`.  | 
|  `rtrim(str: string)` `rtrim(str: string, trimChars: string)` |  string |  Se a função não tiver um segundo argumento, ela removerá os caracteres em branco da direita da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres de `trimChars` à direita de `str`. Por exemplo, `rtrim("xyZfooxyxyZ","xyZ")` exibe `"xyZfoo"`.  | 
|  `trim(str: string)` `trim(str: string, trimChars: string)` |  string |  Se a função não tiver um segundo argumento, ela removerá os caracteres em branco nas duas extremidades da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres de `trimChars` de ambos os lados de `str`. Por exemplo, `trim("xyZxyfooxyxyZ","xyZ")` exibe `"foo"`.  | 
|  `strlen(str: string)` |  número |  Retorna o tamanho da string em pontos de código Unicode.  | 
|  `toupper(str: string)` |  string |  Converte a string em letras maiúsculas.  | 
|  `tolower(str: string)` |  string |  Converte a string em letras minúsculas.  | 
|  `substr(str: string, startIndex: number)` `substr(str: string, startIndex: number, length: number)` |  string |  Retorna uma substring do índice especificado pelo argumento de número ao final da string. Se tiver um segundo argumento de número, a função conterá o tamanho da substring a ser recuperada. Por exemplo, `substr("xyZfooxyZ",3, 3)` exibe `"foo"`.  | 
|  `replace(fieldName: string, searchValue: string, replaceValue: string)` |  string |  Substitui todas as instâncias de `searchValue` em `fieldName: string` por `replaceValue`. Por exemplo, a função `replace(logGroup,"smoke_test","Smoke")` pesquisa eventos de log em que o campo `logGroup` contém o valor da string `smoke_test` e substitui o valor pela string `Smoke`.  | 
|  `strcontains(str: string, searchValue: string)` |  número |  Retornará 1 se `str` contiver `searchValue` e 0, do contrário.  | 