

# Configurazione della registrazione per risorse Wireless AWS IoT
<a name="configure-resource-logging"></a>

Per configurare la registrazione per le risorse Wireless AWS IoT, puoi utilizzare l'API o la CLI. Quando inizi a monitorare le risorse Wireless AWS IoT, puoi utilizzare la configurazione di default. A tale scopo, puoi saltare questo argomento e procedere a [Monitoraggio di Wireless AWS IoT tramite CloudWatch Logs](cloud-watch-logs.md) per monitorare i log.

Dopo aver avviato il monitoraggio dei log, è possibile utilizzare l'interfaccia della riga di comando per modificare i livelli di log in un'opzione più dettagliata, ad esempio fornendo `INFO` e informazioni sul livello `ERROR` e abilitare la registrazione per ulteriori risorse.

## Risorse Wireless AWS IoT e livelli di registro
<a name="log-levels-resources"></a>

Prima di utilizzare l'API o l'interfaccia della riga di comando, utilizza la tabella seguente per informazioni sui diversi livelli di log e sulle risorse per cui è possibile configurare la registrazione. La tabella mostra i parametri visualizzati nei registri di CloudWatch quando si monitorano le risorse. La modalità di configurazione della registrazione per le risorse determinerà i log visualizzati nella console.

Per informazioni sull'aspetto di un esempio di registro CloudWatch e su come è possibile utilizzare questi parametri per registrare informazioni utili sulle risorse Wireless AWS IoT, consulta [Visualizza voci di registro Wireless AWS IoT CloudWatch](cwl-format.md).


**Livelli di registro e risorse**  

| Nome | Valori possibili | Descrizione | 
| --- | --- | --- | 
| logLevel |  `INFO`, `ERROR` o `DISABLED`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot-wireless/latest/developerguide/configure-resource-logging.html)  | 
| resource |  `WirelessGateway` o `WirelessDevice`  |  Il tipo di risorsa, che può essere `WirelessGateway` o `WirelessDevice`.  | 
| wirelessGatewayType | LoRaWAN | Il tipo di gateway wireless, quando resource è WirelessGateway, che è sempre LoRaWAN. | 
| wirelessDeviceType | LoRaWAN o Sidewalk | Il tipo di dispositivo wireless, quando resource è WirelessDevice, che può essere LoRaWAN o Sidewalk. | 
| wirelessGatewayId | - | L'identificatore del gateway wireless, quando resource è WirelessGateway. | 
| wirelessDeviceId | - | L'identificatore del dispositivo wireless, quando resource è WirelessDevice. | 
| event | Join, Rejoin, Registration, Uplink\$1data, Downlink\$1data, CUPS\$1Request e Certificate | Il tipo di evento registrato, che dipende dal fatto che la risorsa che stai registrando sia un dispositivo wireless o un gateway wireless. Per ulteriori informazioni, consultare [Visualizza voci di registro Wireless AWS IoT CloudWatch](cwl-format.md).  | 

## API di registrazione Wireless AWS IoT
<a name="logging-api-roles"></a>

Per configurare la registrazione di controllo, puoi usare le operazioni API seguenti. Nella tabella viene inoltre illustrata una policy IAM di esempio che è necessario creare per l'utilizzo delle operazioni API. Nella sezione seguente viene descritto come utilizzare le API per configurare i livelli di log delle risorse.


**Registrazione di operazioni API**  

| Nome API | Descrizione | Policy IAM di esempio | 
| --- | --- | --- | 
|  [GetLogLevelsByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetLogLevelsByResourceTypes.html)  |  Restituisce i livelli di log predefiniti correnti o i livelli di log in base ai tipi di risorse, che possono includere opzioni di log per dispositivi wireless o gateway wireless.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:GetLogLevelsByResourceTypes"            <br />            ],            <br />            "Resource": [                <br />                "*"            <br />            ]        <br />        }<br />    ]<br />}</pre>  | 
|  [GetResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourceLogLevel.html)  | Restituisce l'override a livello di log per un determinato identificatore di risorsa e tipo di risorsa. La risorsa può essere un dispositivo wireless o un gateway wireless.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:GetResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                 "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",           <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [PutResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_PutResourceLogLevel.html)  | Imposta l'override a livello di log per un determinato identificatore di risorsa e tipo di risorsa. La risorsa può essere un gateway wireless o un dispositivo wireless.  Questa API ha un limite di 200 sostituzioni a livello di registro per account.   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:PutResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",            <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [ResetAllResourceLogLevels](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ResetAllResourceLogLevels.html)  |  Rimuove le sostituzioni a livello di log per tutte le risorse che includono sia gateway wireless che dispositivi wireless.  Questa API non influisce sui livelli di log impostati utilizzando l'opzione API `UpdateLogLevelsByResourceTypes`.   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:ResetAllResourceLogLevels"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/*", <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/*<br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [ResetResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ResetResourceLogLevel.html)  |  Rimuove l'override a livello di log per un determinato identificatore di risorsa e tipo di risorsa. La risorsa può essere un gateway wireless o un dispositivo wireless.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:ResetResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",            <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [UpdateLogLevelsByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateLogLevelsByResourceTypes.html)  |  Imposta il livello di log predefinito o i livelli di log in base ai tipi di risorse. È possibile utilizzare questa API per le opzioni di log per dispositivi wireless o gateway wireless e controllare i messaggi di log che verranno visualizzati in CloudWatch.  Gli eventi sono facoltativi e il tipo di evento è associato al tipo di risorsa. Per ulteriori informazioni, consultare [Eventi e tipi di risorse](cwl-format.md#cwl-format-events-resources).   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:UpdateLogLevelsByResourceTypes"            <br />            ],            <br />            "Resource": [                <br />                "*"            <br />            ]        <br />        }<br />    ]<br />}</pre> | 

## Configurare i livelli di log delle risorse utilizzando la CLI
<a name="configure-logging-api"></a>

In questa sezione viene descritto come configurare i livelli di registro per le risorse Wireless AWS IoT utilizzando l'API o la AWS CLI.

**Prima di utilizzare la CLI:**
+ Assicurati di aver creato la policy IAM per l'API per cui desideri eseguire il comando CLI, come descritto in precedenza.
+ Hai bisogno dell'Amazon Resource Name (ARN) del ruolo che desideri utilizzare. Se è necessario creare un ruolo da utilizzare per la registrazione, consulta [Creare un ruolo di registrazione e una policy per Wireless AWS IoT](create-logging-role-policy.md). 

**Perché usare AWS CLI**  
Per impostazione predefinita, se crei il ruolo IAM, `IoTWirelessLogsRole`, come descritto in [Creare un ruolo di registrazione e una policy per Wireless AWS IoT](create-logging-role-policy.md), vedrai i log di CloudWatch nella Console di gestione AWS che hanno un livello di log predefinito di `ERROR`. Per modificare il livello di registro di default per tutte le risorse o per risorse specifiche, utilizza l’API di registrazione wireless Wireless AWS IoT o CLI.

**Come utilizzare AWS CLI**  
Le operazioni API possono essere classificate nei seguenti tipi a seconda che si desideri configurare i livelli di log per tutte le risorse o per risorse specifiche:
+ Le operazioni dell'API `GetLogLevelsByResourceTypes` e `UpdateLogLevelsByResourceTypes` possono recuperare e aggiornare i livelli di log per tutte le risorse del tuo account che sono di un tipo specifico, ad esempio un gateway wireless, o un dispositivo LoRaWAN o Sidewalk.
+ Le operazioni dell'API `GetResourceLogLevel`, `PutResourceLogLevel`, e `ResetResourceLogLevel` possono recuperare, aggiornare e reimpostare i livelli di log delle singole risorse specificate utilizzando un identificatore di risorsa.
+ L’operazione API `ResetAllResourceLogLevels` reimposta l'override a livello di log su `null` per tutte le risorse per le quali è stato specificato un override a livello di log utilizzando l’API `PutResourceLogLevel`.

**Per utilizzare l'interfaccia a riga di comando per configurare la registrazione specifica delle risorse per AWS IoT**
**Nota**  
È inoltre possibile eseguire questa procedura con l'API utilizzando i metodi dell'API AWS corrispondenti ai comandi CLI illustrati di seguito. 

1. Per impostazione predefinita, tutte le risorse hanno il livello di log impostato su `ERROR`. Per impostare i livelli di log predefiniti o i livelli di log in base ai tipi di risorse per tutte le risorse dell'account, utilizza il comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/update-log-levels-by-resource-types.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/update-log-levels-by-resource-types.html). L'esempio seguente mostra come puoi creare un file JSON, `Input.json`, e fornirlo come input per il comando CLI. È possibile utilizzare questo comando per disabilitare selettivamente la registrazione o ignorare il livello di log predefinito per tipi specifici di risorse ed eventi.

   ```
   {
       "DefaultLogLevel": "INFO",
       "WirelessDeviceLogOptions": 
        [
           {
            "Type": "Sidewalk",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                 "Event": "Registration",
                 "LogLevel": "DISABLED"
               }
             ]
           }, 
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "Join",
                "LogLevel": "DISABLED"
               }, 
               {
                "Event": "Rejoin",
                "LogLevel": "ERROR"
               }
             ]
           }
         ]
        "WirelessGatewayLogOptions": 
         [
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "CUPS_Request",
                "LogLevel": "DISABLED"
               }, 
               {
                 "Event": "Certificate",
                 "LogLevel": "ERROR"
               }
             ]
           }
         ]
   }
   ```

   dove:  
**WirelessDeviceLogOptions**  
Elenco delle opzioni di log per un dispositivo wireless. Ogni opzione di log include il tipo di dispositivo wireless (Sidewalk o LoRaWAN) e un elenco di opzioni di log eventi del dispositivo wireless. Ogni opzione di log eventi del dispositivo wireless può includere facoltativamente il tipo di evento e il relativo livello di log.  
**WirelessGatewayLogOptions**  
Elenco delle opzioni di log per un gateway wireless. Ogni opzione di log include il tipo di gateway wireless (LoRaWAN) e un elenco di opzioni di log eventi del gateway wireless. Ogni opzione di log eventi del gateway wireless può includere facoltativamente il tipo di evento e il relativo livello di log.  
**DefaultLogLevel**  
Livello di log da utilizzare per tutte le risorse. I valori validi sono`ERROR`, `INFO` e `DISABLED`. Il valore predefinito è `INFO`.  
**LogLevel**  
Livello di log che si desidera utilizzare per i singoli tipi di risorse ed eventi. Questi livelli di log sovrascrivono il livello di log predefinito, ad esempio il livello di log `INFO` per il gateway LoRaWAN e i livelli di log `DISABLED` e `ERROR` per i due tipi di evento.

   Nel comando di esempio seguente viene utilizzato un file di input `Input.json` per fornire il codice della funzione al comando. Il comando non produce output.

   ```
   aws iotwireless update-log-levels-by-resource-types \ 
       --cli-input-json Input.json
   ```

   Se desideri rimuovere le opzioni di log sia per i dispositivi wireless che per i gateway wireless, esegui il comando seguente.

   ```
   {
       "DefaultLogLevel":"DISABLED",
       "WirelessDeviceLogOptions": [],
       "WireslessGatewayLogOptions":[]
   }
   ```

1. Il comando **update-log-levels-by-resource-types** non restituisce alcun output. Utilizza il comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-log-levels-by-resource-types.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-log-levels-by-resource-types.html) per recuperare le informazioni di registrazione specifiche delle risorse. Il comando restituisce il livello di log predefinito e le opzioni di log del dispositivo wireless e del gateway wireless.
**Nota**  
Il comando **get-log-levels-by-resource-types** non è in grado di recuperare direttamente i livelli di log nella console CloudWatch. Puoi utilizzare il comando **get-log-levels-by-resource-types** per ottenere le informazioni più recenti a livello di log specificate per le risorse utilizzando il comando **update-log-levels-by-resource-types**.

   ```
   aws iotwireless get-log-levels-by-resource-types 
   ```

   Quando si esegue il comando seguente, restituisce le informazioni di registrazione più recenti specificate con **update-log-levels-by-resource-types**. Ad esempio, se rimuovi le opzioni di log dei dispositivi wireless, **get-log-levels-by-resource-types** restituirà questo valore come `null`. 

   ```
   {
       "DefaultLogLevel": "INFO",
       "WirelessDeviceLogOptions": null,
        "WirelessGatewayLogOptions": 
         [
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "CUPS_Request",
                "LogLevel": "DISABLED"
               }, 
               {
                 "Event": "Certificate",
                 "LogLevel": "ERROR"
               }
             ]
           }
         ]
   }
   ```

1. Per controllare i livelli di log per singoli gateway wireless o risorse di dispositivi wireless, utilizza i seguenti comandi CLI:
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/put-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/put-resource-log-level.html)
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-resource-log-level.html)
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-resource-log-level.html)

   Per un esempio su quando utilizzare questi CLI, supponi di disporre di un numero elevato di dispositivi wireless o gateway che vengono registrati nell’account. Se desideri risolvere gli errori solo per alcuni dispositivi wireless, puoi disabilitare la registrazione per tutti i dispositivi wireless impostando `DefaultLogLevel` su `DISABLED` e utilizzando **put-resource-log-level** per impostare il `LogLevel` su `ERROR`, solo per i dispositivi nel tuo account.

   ```
   aws iotwireless put-resource-log-level \ 
       --resource-identifier 
       --resource-type WirelessDevice
       --log-level ERROR
   ```

   In questo esempio, il comando imposta il livello di log su `ERROR` solo per la risorsa del dispositivo wireless specificata mentre i log per tutte le altre risorse sono disabilitati. Il comando non produce output. Per recuperare queste informazioni e verificare che i livelli di log siano stati impostati, utilizza il comando **get-resource-log-level**.

1. Nel passaggio precedente, dopo aver eseguito il debug del problema e risolto l'errore, puoi eseguire il comando **reset-resource-log-level** per reimpostare il livello di log per tale risorsa su `null`. Se hai usato il comando `put-resource-log-level` per impostare l'override a livello di log per più dispositivi wireless o risorse gateway, ad esempio per la risoluzione dei problemi relativi a più dispositivi, puoi ripristinare le sostituzioni a livello di log su `null` per tutte quelle risorse che usano il comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-all-resource-log-levels.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-all-resource-log-levels.html).

   ```
   aws iotwireless reset-all-resource-log-levels
   ```

   Il comando non produce output. Per recuperare le informazioni di registrazione per le risorse, esegui il comando **get-resource-log-level**.

## Fasi successive
<a name="configure-logging-next-steps"></a>

Hai appreso come creare il ruolo di registrazione e utilizzare l'API Wireless AWS IoT wireless per configurare la registrazione per le tue risorse AWS IoT Core per LoRaWAN. Successivamente, per ulteriori informazioni sul monitoraggio delle voci di log, vai a [Monitoraggio di Wireless AWS IoT tramite CloudWatch Logs](cloud-watch-logs.md).