View a markdown version of this page

Création d'une livraison de journal pour les journaux d'exécution de l'API REST - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'une livraison de journal pour les journaux d'exécution de l'API REST

Vous pouvez acheminer les journaux d'exécution vers vos propres groupes de CloudWatch journaux, vos compartiments Amazon S3 ou vos flux Firehose. Pour ce faire, créez une livraison Amazon CloudWatch Logs. Cela implique trois étapes : créer une source de livraison, créer une destination de livraison et les associer à une livraison.

Conditions préalables

Avant de créer une livraison de journaux, assurez-vous de disposer des éléments suivants :

  • La journalisation de l'exécution est activée sur le stage de votre API REST. Définissez loggingLevel sur ERROR ou INFO. Si la journalisation n'est pas activée, la création de la source de diffusion échoue.

  • Une ressource de destination : un groupe de CloudWatch journaux Logs, un compartiment Amazon S3 ou un flux Firehose dont vous êtes propriétaire.

  • Autorisations pour appeler les API de livraison Amazon CloudWatch Logs. Pour plus d'informations, consultez la section Activer la journalisation à partir AWS des services dans le guide de l'utilisateur Amazon CloudWatch Logs.

Gateway-specific Valeurs d'API pour la livraison d'Amazon CloudWatch Logs

Lorsque vous créez une diffusion pour les journaux d'exécution d'API Gateway, utilisez les valeurs suivantes :

ARN des ressources

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

Type de journal

EXECUTION_LOGS

Créez une livraison de journaux (AWS CLI)

L'exemple suivant crée une diffusion qui envoie des journaux d'exécution depuis une API REST vers un groupe de CloudWatch journaux de journaux dont vous êtes le propriétaire.

  1. Création de la source de diffusion

    Enregistrez votre API REST en tant que source de diffusion.

    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. Créez la destination de livraison

    Enregistrez votre groupe de journaux en tant que destination de livraison.

    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. Créez la livraison

    Liez la source à la destination.

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

Pour envoyer des journaux à Amazon S3 ou Firehose, spécifiez l'ARN de ressource approprié dans la put-delivery-destination commande. Pour plus d'informations sur le flux de livraison complet d'Amazon CloudWatch Logs, consultez la section Activer la journalisation à partir AWS des services dans le guide de l'utilisateur Amazon CloudWatch Logs.

Pour envoyer des journaux vers plusieurs destinations, créez des livraisons supplémentaires en utilisant la même source de livraison avec différentes destinations.

Champs d'enregistrement

Avec la diffusion d'Amazon CloudWatch Logs, les journaux d'exécution incluent des champs structurés que vous pouvez personnaliser en fonction de la destination. Les champs suivants sont disponibles :

  • resource_arn— L'ARN de l'étape API

  • event_timestamp— L'heure de l'événement de journalisation

  • api_id— L'identifiant de l'API REST

  • stage— Le nom de scène

  • resource_path— Le chemin de ressource de la demande

  • http_method— La méthode HTTP

  • payload— Le contenu du journal d'exécution (identique à celui des journaux d'exécution standard)

Vous pouvez sélectionner les champs à inclure et le format de sortie pour chaque destination à l'aide du --record-fields paramètre activé create-delivery et du --output-format paramètre activéput-delivery-destination.

Les formats de sortie disponibles dépendent de la destination :

  • CloudWatch Journaux — json, en clair

  • Amazon S3 — JSON, brut, W3C, parquet

  • Firehose — json, clair

Correspond à la sortie standard du journal d'exécution

Si vous souhaitez que le résultat de livraison corresponde à la journalisation d'exécution standard (charge utile uniquement, pas de champs supplémentaires), ajoutez --output-format "plain" à put-delivery-destination et --record-fields "payload" --field-delimiter "" àcreate-delivery.

Créez une livraison de journaux (CloudFormation)

Lorsque vous assemblez l'ARN de scène pour les CloudFormation modèles, utilisez le modèle suivant :

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}"

Créer une livraison de journal (console API Gateway)

Vous pouvez créer une livraison de journaux dans la section Journaux et suivi de la page des détails de votre étape.

  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API REST, puis choisissez Stages.

  3. Choisissez une étape.

  4. Dans la section Journaux et suivi, sous Destinations de livraison des journaux, choisissez Ajouter une destination.

  5. Choisissez un type de destination (CloudWatch Logs, Amazon S3 ou Firehose) et spécifiez la ressource de destination.

  6. Cliquez sur Enregistrer.

Important

Vous devez activer la journalisation des exécutions sur la scène avant de pouvoir ajouter des destinations de livraison. Si la journalisation est désactivée, la configuration de diffusion ne génère pas de journaux.

Note

Pour configurer les destinations de livraison entre comptes, utilisez l' AWS interface de ligne de commande. Vous devez créer une politique de destination de livraison dans le compte de destination avant de créer la livraison dans le compte source. Pour plus d'informations, consultez l'exemple Cross-account de livraison dans le guide de l'utilisateur Amazon CloudWatch Logs.