Surveillez les événements de requête Athena avec EventBridge - Amazon Athena

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.

Surveillez les événements de requête Athena avec EventBridge

Vous pouvez utiliser Amazon Athena avec Amazon EventBridge pour recevoir des notifications en temps réel concernant l'état de vos requêtes. Lorsqu'une requête à laquelle vous avez soumis des états de transition, Athena publie un événement EventBridge contenant des informations sur cette transition d'état de requête. Vous pouvez écrire des règles simples pour les événements qui vous intéressent et effectuer des actions automatisées lorsqu'un événement correspond à une règle. Par exemple, vous pouvez créer une règle qui invoque un AWS Lambda fonction lorsqu'une requête atteint un état terminal. Les événements sont générés dans la mesure du possible.

Avant de créer des règles d'événement pour Athena, vous devez procéder comme suit :

Note

Athena propose actuellement un type d'événement appelé événement de changement d'état de requête Athena, mais peut ajouter d'autres types et détails d'événement. Si vous désérialisez des JSON données d'événements par programmation, assurez-vous que votre application est prête à gérer les propriétés inconnues si des propriétés supplémentaires sont ajoutées.

Voici le modèle de base d'un événement Amazon Athena.

{ "source":[ "aws.athena" ], "detail-type":[ "Athena Query State Change" ], "detail":{ "currentState":[ "SUCCEEDED" ] } }

L'exemple suivant montre un événement de changement d'état de requête Athena dont la valeur currentState est SUCCEEDED.

{ "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Athena Query State Change", "source":"aws.athena", "account":"123456789012", "time":"2019-10-06T09:30:10Z", "region":"us-east-1", "resources":[ ], "detail":{ "versionId":"0", "currentState":"SUCCEEDED", "previousState":"RUNNING", "statementType":"DDL", "queryExecutionId":"01234567-0123-0123-0123-012345678901", "workgroupName":"primary", "sequenceNumber":"3" } }

L'exemple suivant montre un événement de changement d'état de requête Athena dont la valeur currentState est FAILED. Le bloc athenaError apparaît uniquement lorsque currentState est FAILED. Pour plus d'informations sur les valeurs de errorCategory et errorType, voir Catalogue d'erreurs Athena.

{ "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Athena Query State Change", "source":"aws.athena", "account":"123456789012", "time":"2019-10-06T09:30:10Z", "region":"us-east-1", "resources":[ ], "detail":{ "athenaError": { "errorCategory": 2.0, //Value depends on nature of exception "errorType": 1306.0, //Type depends on nature of exception "errorMessage": "Amazon S3 bucket not found", //Message depends on nature of exception "retryable":false //Retryable value depends on nature of exception }, "versionId":"0", "currentState": "FAILED", "previousState": "RUNNING", "statementType":"DML", "queryExecutionId":"01234567-0123-0123-0123-012345678901", "workgroupName":"primary", "sequenceNumber":"3" } }

Propriétés de sortie

La JSON sortie inclut les propriétés suivantes.

Propriété Description
athenaError Apparaît uniquement lorsque currentState est FAILED. Contient des informations sur l'erreur qui s'est produite, notamment la catégorie d'erreur, le type d'erreur, le message d'erreur et la possibilité de réessayer l'action qui a conduit à l'erreur. Les valeurs de chacun de ces champs dépendent de la nature de l'erreur. Pour plus d'informations sur les valeurs de errorCategory et errorType, voir Catalogue d'erreurs Athena.
versionId Numéro de version du schéma de l'objet détaillé.
currentState État dans lequel la requête a été placée au moment de l'événement.
previousState État initial de la requête au moment de l'événement.
statementType Type d'instruction de requête exécutée.
queryExecutionId Identifiant unique de la requête exécutée.
workgroupName Nom du groupe de travail dans lequel la requête a été exécutée.
sequenceNumber Nombre croissant de façon monotone qui permet de dédupliquer et d'ordonner les événements entrants qui impliquent une seule requête exécutée. Lorsque des événements dupliqués sont publiés pour le même changement d'état, la valeur sequenceNumber est la même. Lorsqu'une requête subit plusieurs changements d'état, par exemple des requêtes faisant l'objet d'un rare remplacement en file d'attente, vous pouvez utiliser sequenceNumber pour ordonner des événements avec des valeurs currentState et previousState identiques.

Exemple

L'exemple suivant publie des événements sur une SNS rubrique Amazon à laquelle vous êtes abonné. Lorsque Athena est interrogé, vous recevez un e-mail. L'exemple suppose que le SNS sujet Amazon existe et que vous y êtes abonné.

Pour publier des événements Athena sur un sujet Amazon SNS
  1. Créez la cible de votre SNS rubrique Amazon. events.amazonaws.com.rproxy.goskope.comAutorisez le responsable du service des EventBridge événements à publier sur votre SNS rubrique Amazon, comme dans l'exemple suivant.

    { "Effect":"Allow", "Principal":{ "Service":"events.amazonaws.com" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111111111111:your-sns-topic" }
  2. Utilisez la commande AWS CLI events put-rulecommande pour créer une règle pour les événements Athena, comme dans l'exemple suivant.

    aws events put-rule --name {ruleName} --event-pattern '{"source": ["aws.athena"]}'
  3. Utilisez la commande AWS CLI events put-targetscommande pour associer la cible du SNS sujet Amazon à la règle, comme dans l'exemple suivant.

    aws events put-targets --rule {ruleName} --targets Id=1,Arn=arn:aws:sns:us-east-1:111111111111:your-sns-topic
  4. Interrogez Athena et observez la cible invoquée. Vous devriez recevoir les e-mails correspondants de la part du SNS sujet Amazon.

Utiliser Notifications des utilisateurs AWS avec Amazon Athena

Vous pouvez utiliser Notifications des utilisateurs AWSpour configurer des canaux de distribution afin d'être informé des événements Amazon Athena. Vous recevez une notification lorsqu'un événement correspond à une règle que vous avez spécifiée. Vous pouvez recevoir des notifications d'événements par le biais de plusieurs canaux, notamment par e-mail, AWS Chatbotdes notifications de chat, ou AWS Console Mobile Applicationnotifications push. Vous pouvez également consulter les notifications dans le Centre de notifications de la console. Notifications des utilisateurs prend en charge l'agrégation, ce qui peut réduire le nombre de notifications que vous recevez lors d'événements spécifiques.

Pour de plus amples informations, veuillez consulter le .Notifications des utilisateurs AWS Guide de l'utilisateur .