

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

# Crea una distribuzione di log per i log di esecuzione dell'API REST
<a name="rest-api-create-log-delivery"></a>

Puoi indirizzare i log di esecuzione ai tuoi gruppi di CloudWatch log Logs, ai bucket Amazon S3 o ai tuoi stream Firehose. A tale scopo, crea una consegna Amazon Logs. CloudWatch Ciò prevede tre passaggi: creare una fonte di consegna, creare una destinazione di consegna e collegarli a una consegna.

## Prerequisiti
<a name="rest-api-create-log-delivery-prereqs"></a>

Prima di creare un registro di consegna, assicurati di disporre di quanto segue:
+ La registrazione dell'esecuzione è abilitata nella fase dell'API REST. Imposta `loggingLevel` su `ERROR` o `INFO`. Se la registrazione non è abilitata, la creazione dell'origine di consegna non riesce.
+ Una risorsa di destinazione: un gruppo di CloudWatch log Logs, un bucket Amazon S3 o uno stream Firehose di tua proprietà.
+ Autorizzazioni per chiamare le API di distribuzione di Amazon Logs CloudWatch . Per ulteriori informazioni, consulta [ Abilitare la registrazione dai AWS servizi ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) nella * Amazon CloudWatch Logs User Guide. *

## Gateway-specific Valori API per la consegna di Amazon CloudWatch Logs
<a name="rest-api-create-log-delivery-values"></a>

Quando crei una distribuzione per i log di esecuzione di API Gateway, utilizza i seguenti valori:

ARN risorsa  
`arn:aws:apigateway:{{{region}}}:{{{account-id}}}:/restapis/{{{rest-api-id}}}/stages/{{{stage-name}}}`

Tipo di log  
`EXECUTION_LOGS`

## Crea una consegna di log (AWS CLI)
<a name="rest-api-create-log-delivery-cli"></a>

L'esempio seguente crea una consegna che invia i log di esecuzione da un'API REST a un gruppo di CloudWatch log Logs di tua proprietà.

1. 

**Crea la fonte di consegna**

   Registra la tua API REST come fonte di consegna.

   ```
   aws logs put-delivery-source \
       --name {{my-apigw-source}} \
       --log-type EXECUTION_LOGS \
       --resource-arn arn:aws:apigateway:{{{region}}}:{{{account-id}}}:/restapis/{{{rest-api-id}}}/stages/{{{stage-name}}}
   ```

1. 

**Crea la destinazione di consegna**

   Registra il tuo gruppo di log come destinazione di consegna.

   ```
   aws logs put-delivery-destination \
       --name {{my-log-destination}} \
       --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{{{region}}}:{{{account-id}}}:log-group:{{{log-group-name}}}"
   ```

1. 

**Crea la consegna**

   Collega l'origine alla destinazione.

   ```
   aws logs create-delivery \
       --delivery-source-name {{my-apigw-source}} \
       --delivery-destination-arn arn:aws:logs:{{{region}}}:{{{account-id}}}:delivery-destination:{{my-log-destination}}
   ```

Per inviare i log ad Amazon S3 o Firehose, specifica l'ARN della risorsa appropriata nel comando. `put-delivery-destination` Per ulteriori informazioni sul flusso completo di distribuzione di Amazon CloudWatch Logs, consulta [ Enable logging from AWS services ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) nella * Amazon CloudWatch Logs User Guide. *

Per inviare i log a più destinazioni, crea consegne aggiuntive utilizzando la stessa fonte di consegna con destinazioni diverse.

## Campi di registrazione
<a name="rest-api-create-log-delivery-record-fields"></a>

Con la distribuzione di Amazon CloudWatch Logs, i log di esecuzione includono campi strutturati che puoi personalizzare per destinazione. Sono disponibili i seguenti campi:
+ `resource_arn`— L'ARN della fase API
+ `event_timestamp`— L'ora dell'evento di registro
+ `api_id`— L'identificatore dell'API REST
+ `stage`— Il nome della fase
+ `resource_path`— Il percorso della risorsa della richiesta
+ `http_method`— Il metodo HTTP
+ `payload`— Il contenuto del registro di esecuzione (uguale ai registri di esecuzione standard)

È possibile selezionare i campi da includere e il formato di output per ciascuna destinazione utilizzando il `--record-fields` parametro on `create-delivery` e il `--output-format` parametro on`put-delivery-destination`.

I formati di output disponibili dipendono dalla destinazione:
+ **CloudWatch Registri**: json, semplici
+ **Amazon S3**: json, semplice, w3c, parquet
+ **Firehose ** — json, semplice

**Corrisponde all'output del registro di esecuzione standard**  
Se desideri un output di consegna che corrisponda alla registrazione di esecuzione standard (solo payload, senza campi aggiuntivi), aggiungi `--output-format "plain"` a `put-delivery-destination` e `--record-fields "payload" --field-delimiter ""` a. `create-delivery`

## Crea un registro di consegna (CloudFormation)
<a name="rest-api-create-log-delivery-cfn"></a>

Quando assemblate lo stage ARN per i CloudFormation modelli, utilizzate il seguente schema:

```
  DeliverySource:
    Type: AWS::Logs::DeliverySource
    Properties:
      Name: my-apigw-source
      LogType: EXECUTION_LOGS
      ResourceArn: !Sub "arn:${AWS::Partition}:apigateway:${AWS::Region}:${AWS::AccountId}:/restapis/${MyApi}/stages/${MyStageName}"
```

## Crea una consegna del registro (console API Gateway)
<a name="rest-api-create-log-delivery-console"></a>

Puoi creare una consegna dei ** log dalla ** sezione Log and tracing della pagina dei dettagli della fase.

1. Accedi alla console API Gateway all'indirizzo [ https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Scegli la tua API REST, quindi scegli ** Stages**.

1. Scegliere una fase.

1. Nella ** sezione ** Log and tracing, in Destinazioni di consegna dei ** log**, scegli ** Aggiungi destinazione**.

1. Scegli un tipo di destinazione (CloudWatch Logs, Amazon S3 o Firehose) e specifica la risorsa di destinazione.

1. Selezionare **Salva**.

**Importante**  
È necessario abilitare la registrazione dell'esecuzione sullo stage prima di poter aggiungere le destinazioni di consegna. Se la registrazione è impostata ** su Off**, la configurazione di consegna non genera registri.

**Nota**  
Per configurare le destinazioni di consegna tra più account, utilizza la CLI AWS . È necessario creare una politica di destinazione della consegna nell'account di destinazione prima di creare la consegna nell'account di origine. Per ulteriori informazioni, consulta l'esempio [ Cross-account di consegna ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/vended-logs-crossaccount-example.html) nella Guida per l'utente di * Amazon CloudWatch Logs*.