View a markdown version of this page

Crea una distribuzione di log per i log di esecuzione dell'API REST - Gateway Amazon API

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

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

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 nella Amazon CloudWatch Logs User Guide.

Gateway-specific Valori API per la consegna di Amazon CloudWatch Logs

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)

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}
  2. 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}"
  3. 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 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

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 onput-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)

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)

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.

  2. Scegli la tua API REST, quindi scegli Stages.

  3. Scegliere una fase.

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

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

  6. 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 nella Guida per l'utente di Amazon CloudWatch Logs.