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
loggingLevelsurERRORouINFO. 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.
-
Création de la source de diffusion
Enregistrez votre API REST en tant que source de diffusion.
aws logs put-delivery-source \ --namemy-apigw-source\ --log-type EXECUTION_LOGS \ --resource-arn arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name} -
Créez la destination de livraison
Enregistrez votre groupe de journaux en tant que destination de livraison.
aws logs put-delivery-destination \ --namemy-log-destination\ --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{region}:{account-id}:log-group:{log-group-name}" -
Créez la livraison
Liez la source à la destination.
aws logs create-delivery \ --delivery-source-namemy-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 APIevent_timestamp— L'heure de l'événement de journalisationapi_id— L'identifiant de l'API RESTstage— Le nom de scèneresource_path— Le chemin de ressource de la demandehttp_method— La méthode HTTPpayload— 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.
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway
. -
Choisissez votre API REST, puis choisissez Stages.
-
Choisissez une étape.
-
Dans la section Journaux et suivi, sous Destinations de livraison des journaux, choisissez Ajouter une destination.
-
Choisissez un type de destination (CloudWatch Logs, Amazon S3 ou Firehose) et spécifiez la ressource de destination.
-
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.