

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.<br />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><br />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.<br />Você pode usá-la para filtrar os resultados da consulta de acordo com a hora atual.<br />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><br />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 \| Lista \| 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)`<br />`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)`<br />`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)`<br />`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)`<br />`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`.<br />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. | 