

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Funzioni booleane, di confronto, numeriche, datetime e altre
<a name="CWL_QuerySyntax-operations-functions"></a>

 CloudWatch Logs Insights supporta molte altre operazioni e funzioni nelle query, come spiegato nelle sezioni seguenti. 

**Topics**
+ [Operatori aritmetici](#CWL_QuerySyntax-operations-arithmetic)
+ [Operatori booleani](#CWL_QuerySyntax-operations-Boolean)
+ [Operatori di confronto](#CWL_QuerySyntax-operations-comparison)
+ [Operatori numerici](#CWL_QuerySyntax-operations-numeric)
+ [Tipi di struttura](#CWL_QuerySyntax-structure-types)
+ [Funzioni DateTime](#CWL_QuerySyntax-datetime)
+ [Funzioni generali](#CWL_QuerySyntax-general-functions)
+ [Funzioni JSON](#CWL_QuerySyntax-json-functions)
+ [Funzioni della stringa di indirizzi IP](#CWL_QuerySyntax-IPaddress-functions)
+ [Funzioni stringa](#CWL_QuerySyntax-string-functions)

## Operatori aritmetici
<a name="CWL_QuerySyntax-operations-arithmetic"></a>

 Le operazioni aritmetiche accettano tipi di dati numerici come argomenti e restituiscono risultati numerici. Puoi utilizzare operazioni aritmetiche nei comandi `filter` e `fields` e come argomenti per altre funzioni. 


| Operation | Description | 
| --- | --- | 
|  `a + b` |  Addizione  | 
|  `a - b` |  Sottrazione  | 
|  `a * b` |  Moltiplicazione  | 
|  `a / b` |  Divisione  | 
|  `a ^ b` |   Elevamento a potenza (`2 ^ 3` restituisce `8`)   | 
|  `a % b` |   Resto o modulo (`10 % 3` restituisce `1`)   | 

## Operatori booleani
<a name="CWL_QuerySyntax-operations-Boolean"></a>

 Utilizza gli operatori booleani `and`, `or` e `not`. 

**Nota**  
 Utilizza gli operatori booleani solo nelle funzioni che restituiscono un valore **TRUE** o **FALSE**. 

## Operatori di confronto
<a name="CWL_QuerySyntax-operations-comparison"></a>

 Le operazioni di confronto accettano tutti i tipi di dati come argomenti e restituiscono un risultato booleano. Utilizza operazioni di confronto nel comando `filter` e come argomenti per altre funzioni. 


| Operatore | Description | 
| --- | --- | 
|   `=`   |   Uguale   | 
|   `!=`   |   Non uguale   | 
|   `<`   |   Minore di   | 
|  `>` |   Maggiore di   | 
|  `<=` |   Minore o uguale a   | 
|   `>=`   |   Maggiore o uguale a   | 

## Operatori numerici
<a name="CWL_QuerySyntax-operations-numeric"></a>

 Le operazioni numeriche accettano tipi di dati numerici come argomenti e restituiscono risultati numerici. Utilizza operazioni aritmetiche nei comandi `filter` e `fields`, oltre che come argomenti per altre funzioni. 


| Operation | Tipo di risultato | Description | 
| --- | --- | --- | 
|   `abs(a: number)`   |   numero   |   Valore assoluto   | 
|   `ceil(a: number)`   |   numero   |   Arrotonda per eccesso (l'intero più piccolo che è maggiore del valore di `a`)   | 
|   `floor(a: number)`   |  numero |   Arrotonda per difetto (l'intero più grande che è minore del valore di `a`)   | 
|   `greatest(a: number, ...numbers: number[])`   |   numero   |   Restituisce il valore più grande   | 
|   `least(a: number, ...numbers: number[])`   |  numero |   Restituisce il valore di piccolo   | 
|   `log(a: number)`   |   numero   |   Log naturale   | 
|   `sqrt(a: number)`   |   numero   |   Radice quadrata   | 

## Tipi di struttura
<a name="CWL_QuerySyntax-structure-types"></a>

 Una mappa o un elenco è un tipo di struttura in CloudWatch Logs Insights che consente di accedere e utilizzare gli attributi per le query. 

**Esempio: per ottenere una mappa o un elenco**  
 `jsonParse`Utilizzalo per analizzare un campo che è una stringa json in una mappa o in un elenco. 

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

**Esempio: per accedere agli attributi**  
 Utilizza l'operatore dot access (map.attribute) per accedere agli elementi in una mappa. Se un attributo in una mappa contiene caratteri speciali, usa i backtick per racchiudere il nome dell'attributo (map.attributes). `special.char`). 

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

 Usa l'operatore di accesso tra parentesi (list [index]) per recuperare un elemento in una posizione specifica all'interno dell'elenco. 

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

 Se nel nome della chiave sono presenti caratteri speciali, racchiudi i caratteri speciali nei backtick (``). 

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

**Esempio: risultati vuoti**  
 Le mappe e gli elenchi vengono considerati nulli per le funzioni di tipo stringa, numerico e datetime. 

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

 Il risultato del confronto della mappa e dell'elenco con qualsiasi altro campo risulta. `false` 

**Nota**  
 L'utilizzo di map and list in `dedup``pattern`,`sort`, e `stats` non è supportato. 

## Funzioni DateTime
<a name="CWL_QuerySyntax-datetime"></a>

 **Funzioni DateTime** 

 Utilizza le funzioni datetime nei comandi `fields` e `filter` e come argomenti per altre funzioni. Utilizza queste funzioni per creare bucket temporali per le query con funzioni di aggregazione. Utilizza periodi di tempo composti da un numero e da uno dei seguenti:
+ `ms`per millisecondi 
+ `s`per secondi 
+ `m`per minuti 
+ `h`per ore 

 Ad esempio, `10m` è 10 minuti e `1h` è un'ora. 

**Nota**  
Usa l'unità di tempo più appropriata per la tua funzione datetime. CloudWatch Logs limita la richiesta in base all'unità di tempo scelta. Ad esempio, limita 60 come valore massimo per qualsiasi richiesta che utilizza. `s` Quindi, se si specifica`bin(300s)`, CloudWatch Logs lo implementa effettivamente come 60 secondi, poiché 60 è il numero di secondi in un minuto, quindi CloudWatch Logs non utilizzerà un numero superiore a 60 con. `s` Per creare un bucket da 5 minuti, usa invece. `bin(5m)`  
Il limite di `ms` è 1000, i cappucci di `s` e `m` sono 60 e il limite di `h` è 24.

La tabella seguente contiene un elenco delle diverse funzioni datetime che è possibile utilizzare nei comandi di query. La tabella elenca il tipo di risultato di ciascuna funzione e contiene una descrizione di ciascuna funzione. 

**Suggerimento**  
 Quando crei un comando di query, puoi utilizzare il selettore temporale per selezionare un periodo di tempo per il quale desideri eseguire query. Ad esempio, puoi impostare un periodo di tempo con intervalli di 5 e 30 minuti, intervalli di 1, 3 e 12 ore oppure un intervallo di tempo personalizzato. Puoi anche impostare periodi di tempo tra date specifiche. 


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|  `bin(period: Period)` |  Time stamp |  Arrotonda il valore di `@timestamp` al periodo di tempo specificato per poi troncarlo. Ad esempio, `bin(5m)` arrotonda il valore `@timestamp` ai 5 minuti più vicini. È possibile utilizzarlo per raggruppare più voci di log in un'interrogazione. L'esempio seguente restituisce il numero di eccezioni all'ora: <pre>filter @message like /Exception/ <br />    | stats count(*) as exceptionCount by bin(1h)<br />    | sort exceptionCount desc</pre> La funzione `bin` supporta le seguenti abbreviazioni e unità di tempo. Per tutte le unità e le abbreviazioni che includono più di un carattere, è supportata l'aggiunta di s per il plurale. Quindi entrambi `hr` e `hrs` lavorano per specificare gli orari. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-operations-functions.html)  | 
|  `datefloor(timestamp: Timestamp, period: Period)` |  Time stamp |  Tronca il time stamp al periodo specificato. Ad esempio, `datefloor(@timestamp, 1h)` tronca tutti i valori di `@timestamp` alla mezzora.  | 
|  `dateceil(timestamp: Timestamp, period: Period)` |  Time stamp |  Arrotonda il time stamp al periodo specificato e quindi tronca. Ad esempio, `dateceil(@timestamp, 1h)` tronca tutti i valori di `@timestamp` all'inizio di ogni ora.  | 
|  `fromMillis(fieldName: number)` |  Time stamp |  Interpreta il campo di input come il numero di millisecondi dall'epoca Unix e lo converte in un timestamp.  | 
|  `toMillis(fieldName: Timestamp)` |  numero |  Converte il timestamp trovato nel campo denominato in un numero che rappresenta i millisecondi dall'epoca di Unix. Ad esempio, `toMillis(@timestamp)` converte il timestamp `2022-01-14T13:18:031.000-08:00` in `1642195111000`.  | 
|  `now()`  |  numero  |  Restituisce l'ora in cui è stata avviata l'elaborazione della query, in secondi epocali. Questa funzione non accetta argomenti. È possibile utilizzarla per filtrare i risultati della query in base all'ora corrente. Ad esempio, la seguente query restituisce tutti gli errori 4xx delle ultime due ore: <pre>parse @message "Status Code: *;" as statusCode\n <br />| filter statusCode >= 400 and statusCode <= 499  \n <br />| filter toMillis(@timestamp) >= (now() * 1000 - 7200000)</pre> L'esempio seguente restituisce tutte le voci di registro delle ultime cinque ore che contengono la parola `error` o `failure` <pre>fields @timestamp, @message <br />| filter @message like /(?i)(error|failure)/ <br />| filter toMillis(@timestamp) >= (now() * 1000 - 18000000)</pre>  | 

**Nota**  
 Attualmente, CloudWatch Logs Insights non supporta il filtraggio dei log con timestamp leggibili dall'uomo. 

## Funzioni generali
<a name="CWL_QuerySyntax-general-functions"></a>

 **Funzioni generali** 

 Utilizza le funzioni generali nei comandi `fields` e `filter` e come argomenti per altre funzioni. 


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|   `ispresent(fieldName: LogField)`   |   Booleano   |   Restituisce `true` se il campo esiste   | 
|   `coalesce(fieldName: LogField, ...fieldNames: LogField[])`   |   LogField   |   Restituisce il primo valore non nullo dall'elenco.   | 

## Funzioni JSON
<a name="CWL_QuerySyntax-json-functions"></a>

 **Funzioni JSON** 

 Usa le funzioni JSON nei `filter` comandi `fields` and e come argomenti per altre funzioni. 


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|   `jsonParse(fieldName: string)`   |   Mappa \$1 Elenco \$1 Vuoto   |   Restituisce una mappa o un elenco quando l'input è una rappresentazione in formato stringa di un oggetto JSON o di un array JSON. Restituisce un valore vuoto, se l'input non è una delle rappresentazioni.   | 
|   `jsonStringify(fieldName: Map \| List)`   |   Stringa   |   Restituisce una stringa JSON da una mappa o da un elenco di dati.   | 

## Funzioni della stringa di indirizzi IP
<a name="CWL_QuerySyntax-IPaddress-functions"></a>

 **Funzioni della stringa di indirizzi IP** 

 Utilizza le funzioni stringa per gli indirizzi IP nei comandi `filter` e `fields`, oltre che come argomenti per altre funzioni. 


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|  `isValidIp(fieldName: string)` |  booleano |  Restituisce `true` se il campo è un IPv6 indirizzo IPv4 o valido.  | 
|  `isValidIpV4(fieldName: string)` |  booleano |  Restituisce `true` se il campo è un IPv4 indirizzo valido.  | 
|  `isValidIpV6(fieldName: string)` |  booleano |  Restituisce `true` se il campo è un IPv6 indirizzo valido.  | 
|  `isIpInSubnet(fieldName: string, subnet: string)` |  booleano |  Restituisce `true` se il campo è un IPv6 indirizzo IPv4 or valido all'interno della sottorete v4 o v6 specificata. Quando si specifica la sottorete, utilizzare la notazione CIDR, come `192.0.2.0/24` o `2001:db8::/32`, dove `192.0.2.0` o `2001:db8::` è l'inizio del blocco CIDR.  | 
|  `isIpv4InSubnet(fieldName: string, subnet: string)` |  booleano |  Restituisce `true` se il campo è un IPv4 indirizzo valido all'interno della sottorete v4 specificata. Quando si specifica la sottorete, utilizzare la notazione CIDR, come `192.0.2.0/24`, dove `192.0.2.0` è l'inizio del blocco CIDR.  | 
|  `isIpv6InSubnet(fieldName: string, subnet: string)` |  booleano |  Restituisce `true` se il campo è un IPv6 indirizzo valido all'interno della sottorete v6 specificata. Quando si specifica la sottorete, utilizzare la notazione CIDR, come `2001:db8::/32`, dove `2001:db8::` è l'inizio del blocco CIDR.  | 

## Funzioni stringa
<a name="CWL_QuerySyntax-string-functions"></a>

 **Funzioni stringa** 

 Utilizza le funzioni stringa nei comandi `fields` e `filter`, oltre che come argomenti per altre funzioni. 


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|  `isempty(fieldName: string)` |  Numero |  Restituisce `1` se il campo manca o è una stringa vuota.  | 
|  `isblank(fieldName: string)` |  Numero |  Restituisce `1` se il campo manca, è una stringa vuota o contiene solo spazi vuoti.  | 
|  `concat(str: string, ...strings: string[])` |  stringa |  Concatena le stringhe.  | 
|  `ltrim(str: string)` `ltrim(str: string, trimChars: string)` |  stringa |  Se la funzione non dispone di un secondo argomento, rimuove gli spazi vuoti dalla sinistra della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri in `trimChars` dalla sinistra di `str`. Ad esempio, `ltrim("xyZxyfooxyZ","xyZ")` restituisce `"fooxyZ"`.  | 
|  `rtrim(str: string)` `rtrim(str: string, trimChars: string)` |  stringa |  Se la funzione dispone di un secondo argomento stringa, rimuove gli spazi vuoti dalla destra della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri di `trimChars` dalla destra di `str`. Ad esempio, `rtrim("xyZfooxyxyZ","xyZ")` restituisce `"xyZfoo"`.  | 
|  `trim(str: string)` `trim(str: string, trimChars: string)` |  stringa |  Se la funzione dispone di un secondo argomento, rimuove gli spazi vuoti da entrambe le estremità della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri di `trimChars` da entrambi i lati di `str`. Ad esempio, `trim("xyZxyfooxyxyZ","xyZ")` restituisce `"foo"`.  | 
|  `strlen(str: string)` |  numero |  Restituisce la lunghezza della stringa in punti di codice Unicode.  | 
|  `toupper(str: string)` |  stringa |  Converte la stringa in maiuscolo.  | 
|  `tolower(str: string)` |  stringa |  Converte la stringa in minuscolo.  | 
|  `substr(str: string, startIndex: number)` `substr(str: string, startIndex: number, length: number)` |  stringa |  Restituisce una sottostringa partendo dall'indice specificato dall'argomento numero fino alla fine della stringa. Se la funzione dispone di un secondo argomento numero, contiene la lunghezza della sottostringa da recuperare. Ad esempio, `substr("xyZfooxyZ",3, 3)` restituisce `"foo"`.  | 
|  `replace(fieldName: string, searchValue: string, replaceValue: string)` |  stringa |  Sostituisce tutte le istanze di `searchValue` in `fieldName: string` con `replaceValue`. Ad esempio, la funzione `replace(logGroup,"smoke_test","Smoke")` cerca log eventi in cui il campo `logGroup` contiene il valore della stringa `smoke_test` e sostituisce il valore con la stringa `Smoke`.  | 
|  `strcontains(str: string, searchValue: string)` |  numero |  Restituisce 1 se `str` contiene `searchValue` e 0 in caso contrario.  | 