

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à.

# Configurazione della registrazione per API WebSocket APIs Gateway
<a name="websocket-api-logging"></a>

È possibile abilitare la registrazione per scrivere i log nei registri. CloudWatch Esistono due tipi di accesso tramite API CloudWatch: registrazione dell'esecuzione e registrazione degli accessi. Nella registrazione dell'esecuzione, API Gateway gestisce i CloudWatch log. Il processo include la creazione di gruppi e flussi di log e la segnalazione ai flussi di log delle richieste e delle risposte dell'intermediario. 

Per migliorare il livello di sicurezza, è consigliabile utilizzare la registrazione nei log dell’esecuzione a livello di `ERROR` o `INFO`. Potrebbe essere necessario eseguire questa operazione per rispettare vari framework di conformità. Per ulteriori informazioni, consultare [Amazon API Gateway controls](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) nella *Guida per l’utente di AWS Security Hub *.

Nella registrazione degli accessi, in qualità di sviluppatore dell'API puoi registrare chi ha avuto accesso alla tua API e in che modo l'intermediario ha avuto accesso all'API. Puoi creare un gruppo di log personalizzato o sceglierne uno esistente che potrebbe essere gestito da API Gateway. Per specificare i dettagli di accesso, seleziona variabili `$context` (espresse in un formato a scelta) e scegli un gruppo di log come destinazione.

Per istruzioni su come configurare la CloudWatch registrazione, consulta. [Configurare la registrazione delle CloudWatch API utilizzando la console API Gateway](set-up-logging.md#set-up-access-logging-using-console)

Quando specifichi il **Log Format (Formato di log)**, puoi scegliere quali variabili di contesto registrare. Sono supportate le seguenti variabili.


| Parametro | Descrizione | 
| --- | --- | 
| \$1context.apiId |  Identificatore assegnato da API Gateway all'API.  | 
| \$1context.authorize.error | Il messaggio di errore di autorizzazione. | 
| \$1context.authorize.latency | La latenza di autorizzazione in ms. | 
| \$1context.authorize.status | Il codice di stato restituito da un tentativo di autorizzazione. | 
| \$1context.authorizer.error | Il messaggio di errore restituito da un'autorizzazione. | 
| \$1context.authorizer.integrationLatency | La latenza del provider di autorizzazioni Lambda in ms. | 
| \$1context.authorizer.integrationStatus | Il codice di stato restituito da un'autorizzazione Lambda. | 
| \$1context.authorizer.latency | La latenza di autorizzazione in ms. | 
| \$1context.authorizer.requestId | L'ID della richiesta dell' AWS endpoint. | 
| \$1context.authorizer.status | Il codice di stato restituito da un'autorizzazione. | 
| \$1context.authorizer.principalId |  Identificazione dell'utente principale associata al token inviato dal client e restituita da una funzione Lambda del provider di autorizzazioni di Lambda API Gateway. (Un provider di autorizzazioni Lambda in precedenza noto come autorizzazioni ad hoc).  | 
| \$1context.authorizer.property |  Valore in formato stringa della coppia chiave/valore specificata della mappa `context` restituita da una funzione delle autorizzazioni Lambda di API Gateway. Ad esempio, se le autorizzazioni restituiscono la mappa `context` seguente:  <pre>"context" : {<br />                            "key": "value",<br />                            "numKey": 1,<br />                            "boolKey": true<br />                            }</pre> la chiamata di `$context.authorizer.key` restituisce la stringa `"value"`, la chiamata di `$context.authorizer.numKey` restituisce la stringa `"1"` e la chiamata di `$context.authorizer.boolKey` restituisce la stringa `"true"`.  | 
| \$1context.authenticate.error | Il messaggio di errore restituito da un tentativo di autenticazione. | 
| \$1context.authenticate.latency | La latenza di autenticazione in ms. | 
| \$1context.authenticate.status | Il codice di stato restituito da un tentativo di autenticazione. | 
| \$1context.connectedAt |  L'ora della connessione in formato [Epoch](https://en.wikipedia.org/wiki/Unix_time).  | 
| \$1context.connectionId |  Un ID univoco per la connessione, che può essere utilizzato per effettuare un callback al client.  | 
| \$1context.domainName |  Un nome di dominio per l' WebSocket API. Può essere utilizzato per effettuare un callback al client (invece di un valore codificato).  | 
| \$1context.error.message |  Una stringa contenente un messaggio di errore API Gateway.  | 
| \$1context.error.messageString | Valore \$1context.error.message tra virgolette, ovvero "\$1context.error.message". | 
| \$1context.error.responseType |  Il tipo di risposta di errore.  | 
| \$1context.error.validationErrorString |  Stringa contenente un messaggio di errore di convalida dettagliato.  | 
| \$1context.eventType |  Il tipo di evento: `CONNECT`, `MESSAGE` o `DISCONNECT`.  | 
| \$1context.extendedRequestId | Equivalente a \$1context.requestId. | 
| \$1context.identity.accountId |  L'ID AWS dell'account associato alla richiesta.  | 
| \$1context.identity.apiKey |  Chiave del proprietario dell'API associata alla richiesta API abilitata dalla chiave.  | 
| \$1context.identity.apiKeyId | ID chiave API associato alla richiesta API abilitata dalla chiave | 
| \$1context.identity.caller |  Identificatore dell'entità principale dell'intermediario che ha firmato la richiesta. Supportato per route che utilizzano l'autorizzazione IAM.  | 
| \$1context.identity.cognitoAuthenticationProvider |  Un elenco separato da virgole con tutti i provider di autenticazione Amazon Cognito utilizzati dal chiamante che effettua la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.  Ad esempio, per un'identità di un pool di utenti Amazon Cognito, `cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim` Per informazioni sui provider di autenticazione Amazon Cognito disponibili, consulta [Using Federated Identities](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) nella *Guida per gli sviluppatori di Amazon Cognito*. | 
| \$1context.identity.cognitoAuthenticationType |  Tipo di autenticazione Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito. I valori possibili includono `authenticated` per le identità autenticate e `unauthenticated` per le identità non autenticate. | 
| \$1context.identity.cognitoIdentityId |  ID identità di Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.  | 
| \$1context.identity.cognitoIdentityPoolId |  ID pool di identità di Amazon Cognito dell'intermediario da cui proviene la richiesta. Disponibile solo se la richiesta è stata firmata con credenziali Amazon Cognito.  | 
| \$1context.identity.principalOrgId |  L'[ID organizzazione AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html). Supportato per route che utilizzano l'autorizzazione IAM.  | 
| \$1context.identity.sourceIp |  Indirizzo IP di origine della connessione TCP da cui proviene la richiesta ad API Gateway.  | 
| \$1context.identity.user |  Identificatore dell'entità principale dell'utente che sarà autorizzato per l'accesso alle risorse. Supportato per route che utilizzano l'autorizzazione IAM.  | 
| \$1context.identity.userAgent |  Agente utente del chiamante API.  | 
| \$1context.identity.userArn |  Amazon Resource Name (ARN) dell'utente valido identificato dopo l'autenticazione.  | 
| \$1context.integration.error | Il messaggio di errore restituito da un'integrazione. | 
| \$1context.integration.integrationStatus | Per l'integrazione del proxy Lambda, il codice di stato restituito dal codice della funzione Lambda di backend AWS Lambda, non dal codice della funzione Lambda. | 
| \$1context.integration.latency | Latenza di integrazione in ms. Equivalente a \$1context.integrationLatency. | 
| \$1context.integration.requestId | L'ID della AWS richiesta dell'endpoint. Equivalente a \$1context.awsEndpointRequestId. | 
| \$1context.integration.status | Il codice di stato restituito da un'integrazione. Per le integrazioni proxy Lambda, questo è il codice di stato restituito dal codice della funzione Lambda. Equivalente a \$1context.integrationStatus. | 
| \$1context.integrationLatency | La latenza di integrazione in millisecondi, disponibile solo per il log di accesso. | 
| \$1context.messageId |  Un ID univoco sul lato server per un messaggio. Disponibile solo quando `$context.eventType` è `MESSAGE`.  | 
| \$1context.requestId |  Come `$context.extendedRequestId`.  | 
| \$1context.requestTime | Ora della richiesta in formato [CLF](https://httpd.apache.org/docs/current/logs.html#common) (dd/MMM/yyyy:HH:mm:ss \$1-hhmm). | 
| \$1context.requestTimeEpoch | L'ora della richiesta in formato [epoca (Unix epoch)](https://en.wikipedia.org/wiki/Unix_time) in millisecondi. | 
| \$1context.routeKey |  La chiave di instradamento selezionata.  | 
| \$1context.stage |  Fase di distribuzione della chiamata API, ad esempio, beta o di produzione.  | 
| \$1context.status |  Lo stato della risposta.  | 
| \$1context.waf.error | Il messaggio di errore restituito da AWS WAF. | 
| \$1context.waf.latency | La AWS WAF latenza in ms. | 
| \$1context.waf.status | Il codice di stato restituito da AWS WAF. | 

Esempi di alcuni formati di log delle operazioni di accesso utilizzati con maggiore frequenza sono mostrati nella console API Gateway ed elencati qui di seguito.
+ `CLF` ([Common Log Format](https://httpd.apache.org/docs/current/logs.html#common)):

  ```
  $context.identity.sourceIp $context.identity.caller \
  $context.identity.user [$context.requestTime] "$context.eventType $context.routeKey $context.connectionId" \
  $context.status $context.requestId
  ```

  I caratteri di continuazione (`\`) sono intesi come un aiuto visivo. Il formato del registro deve essere una singola riga. È possibile aggiungere un carattere di nuova riga (`\n`) alla fine del formato di registro per includere una nuova riga alla fine di ogni voce di registro.
+  `JSON`: 

  ```
  {
  "requestId":"$context.requestId", \
  "ip": "$context.identity.sourceIp", \
  "caller":"$context.identity.caller", \
  "user":"$context.identity.user", \
  "requestTime":"$context.requestTime", \
  "eventType":"$context.eventType", \
  "routeKey":"$context.routeKey", \
  "status":"$context.status", \
  "connectionId":"$context.connectionId"
  }
  ```

  I caratteri di continuazione (`\`) sono intesi come un aiuto visivo. Il formato del registro deve essere una singola riga. È possibile aggiungere un carattere di nuova riga (`\n`) alla fine del formato di registro per includere una nuova riga alla fine di ogni voce di registro.
+ `XML`: 

  ```
  <request id="$context.requestId"> \
   <ip>$context.identity.sourceIp</ip> \
   <caller>$context.identity.caller</caller> \
   <user>$context.identity.user</user> \
   <requestTime>$context.requestTime</requestTime> \
   <eventType>$context.eventType</eventType> \
   <routeKey>$context.routeKey</routeKey> \
   <status>$context.status</status> \
   <connectionId>$context.connectionId</connectionId> \
  </request>
  ```

  I caratteri di continuazione (`\`) sono intesi come un aiuto visivo. Il formato del registro deve essere una singola riga. È possibile aggiungere un carattere di nuova riga (`\n`) alla fine del formato di registro per includere una nuova riga alla fine di ogni voce di registro.
+ `CSV` (valori separati da virgola):

  ```
  $context.identity.sourceIp,$context.identity.caller, \
  $context.identity.user,$context.requestTime,$context.eventType, \
  $context.routeKey,$context.connectionId,$context.status, \
  $context.requestId
  ```

  I caratteri di continuazione (`\`) sono intesi come un aiuto visivo. Il formato del registro deve essere una singola riga. È possibile aggiungere un carattere di nuova riga (`\n`) alla fine del formato di registro per includere una nuova riga alla fine di ogni voce di registro.