Monitora gli eventi di interrogazione di Athena con EventBridge - Amazon Athena

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

Monitora gli eventi di interrogazione di Athena con EventBridge

Puoi utilizzare Amazon Athena con Amazon EventBridge per ricevere notifiche in tempo reale sullo stato delle tue richieste. Quando una query a cui hai inviato lo stato di transizione, Athena pubblica un evento EventBridge contenente informazioni sulla transizione dello stato della query. Puoi scrivere semplici regole per gli eventi che ti interessano e intraprendere azioni automatiche quando un evento corrisponde a una regola. Ad esempio, è possibile creare una regola che richiami un AWS Lambda funzione quando una query raggiunge uno stato terminale. Gli eventi vengono emessi secondo il principio del massimo sforzo.

Prima di creare regole per gli eventi per Athena, tuttavia, dovresti assicurarti di:

  • Acquisisci familiarità con eventi, regole e obiettivi in. EventBridge Per ulteriori informazioni, consulta What Is Amazon EventBridge? Per ulteriori informazioni su come configurare le regole, consulta la sezione Guida introduttiva ad Amazon EventBridge.

  • Creare la destinazione o le destinazioni da utilizzare nelle regole degli eventi.

Nota

Athena offre attualmente un tipo di evento, Athena Query State Change, ma può aggiungere altri tipi di eventi e dettagli. Se stai deserializzando a livello di codice JSON i dati degli eventi, assicurati che l'applicazione sia pronta a gestire proprietà sconosciute se vengono aggiunte proprietà aggiuntive.

Di seguito è riportato il modello di base per un evento Amazon Athena.

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

Nell'esempio seguente viene illustrato un evento Athena Query State Change con un valore di currentState pari a 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" } }

Nell'esempio seguente viene illustrato un evento Athena Query State Change con un valore di currentState pari a FAILED. Il blocco athenaError appare solo quando currentState è FAILED. Per informazioni sui valori per errorCategory e errorType, consulta la pagina catalogo degli errori 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" } }

Proprietà di output

L'JSONoutput include le seguenti proprietà.

Proprietà Descrizione
athenaError Appare solo quando currentState è FAILED. Contiene informazioni sull'errore che si è verificato, tra cui la categoria, il tipo e il messaggio di errore, nonché se è possibile ripetere l'operazione che ha portato all'errore. I valori per ciascuno di questi campi dipendono dalla natura dell'errore. Per informazioni sui valori per errorCategory e errorType, consulta la pagina catalogo degli errori Athena.
versionId Il numero di versione per lo schema dell'oggetto di dettaglio.
currentState Lo stato in cui la query è passata al momento dell'evento.
previousState Lo stato da cui la query è transitata al momento dell'evento.
statementType Il tipo di istruzione di query che è stata eseguita.
queryExecutionId Identificatore univoco per la query in esecuzione.
workgroupName Il nome del gruppo di lavoro in cui è stata eseguita la query.
sequenceNumber Un numero crescente monotonicamente che consente la deduplicazione e l'ordinamento di eventi in ingresso che coinvolgono l'esecuzione di una query singola. Quando vengono pubblicati eventi duplicati per la stessa transizione di stato, il valore sequenceNumber è lo stesso. Quando una query sperimenta una transizione di stato più di una volta, ad esempio query che verificano richieste rare, è possibile utilizzare sequenceNumber per ordinare eventi con valori currentState e previousState identici.

Esempio

L'esempio seguente pubblica eventi su un SNS argomento Amazon a cui sei abbonato. Quando Athena viene interrogato, si riceve un'e-mail. L'esempio presuppone che l'SNSargomento Amazon esista e che l'utente sia abbonato.

Per pubblicare gli eventi di Athena su un argomento Amazon SNS
  1. Crea l'obiettivo per il tuo SNS argomento su Amazon. events.amazonaws.com.rproxy.goskope.comAutorizza Service Principal EventBridge gli eventi a pubblicare sul tuo SNS argomento Amazon, come nell'esempio seguente.

    { "Effect":"Allow", "Principal":{ "Service":"events.amazonaws.com" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111111111111:your-sns-topic" }
  2. Usa il AWS CLI events put-rulecomando per creare una regola per gli eventi Athena, come nell'esempio seguente.

    aws events put-rule --name {ruleName} --event-pattern '{"source": ["aws.athena"]}'
  3. Usa il AWS CLI events put-targetscomando per allegare il target dell'SNSargomento Amazon alla regola, come nell'esempio seguente.

    aws events put-targets --rule {ruleName} --targets Id=1,Arn=arn:aws:sns:us-east-1:111111111111:your-sns-topic
  4. Interrogare Athena e osservare il target invocato. Dovresti ricevere le e-mail corrispondenti dall'SNSargomento Amazon.

Utilizzo Notifiche all'utente AWS con Amazon Athena

Puoi usare Notifiche all'utente AWSper configurare canali di distribuzione per ricevere notifiche sugli eventi di Amazon Athena. L'utente riceverà una notifica quando un evento corrisponde a una regola specificata. Puoi ricevere notifiche relative agli eventi tramite più canali, tra cui e-mail, AWS Chatbotnotifiche via chat, oppure AWS Console Mobile Applicationnotifiche push. È anche possibile visualizzare le notifiche nel Centro notifiche della console. Notifiche all'utente supporta l'aggregazione, che può ridurre il numero di notifiche ricevute durante eventi specifici.

Per ulteriori informazioni, consultare la .Notifiche all'utente AWS Guida per l'utente.