Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Überwachen Sie Athena-Abfrageereignisse mit EventBridge
Sie können Amazon Athena mit Amazon verwenden EventBridge , um in Echtzeit Benachrichtigungen über den Status Ihrer Anfragen zu erhalten. Wenn eine von Ihnen eingereichte Abfrage den Status wechselt, veröffentlicht Athena ein Ereignis, das Informationen über diesen Abfragestatusübergang EventBridge enthält. Sie können einfache Regeln für Ereignisse schreiben, die für Sie von Interesse sind, und automatisierte Aktionen ausführen, wenn ein Ereignis mit einer Regel übereinstimmt. Sie können beispielsweise eine Regel erstellen, die eine AWS Lambda Funktion aufruft, wenn eine Abfrage einen Terminalstatus erreicht. Ereignisse werden auf bestmögliche Weise ausgegeben.
Führen Sie vor dem Erstellen von Ereignisregeln für Athena die folgenden Schritte aus:
-
Machen Sie sich mit Ereignissen, Regeln und Zielen in EventBridge vertraut. Weitere Informationen finden Sie unter Was ist Amazon EventBridge? Weitere Informationen zum Einrichten von Regeln finden Sie unter Erste Schritte mit Amazon EventBridge.
-
Erstellen Sie die Ziele für die Ereignisregeln.
Anmerkung
Athena bietet aktuell einen Ereignistyp, nämlich die Athena-Abfragezustandsänderung, wird aber möglicherweise um weitere Ereignistypen und Details erweitert. Wenn Sie JSON Ereignisdaten programmgesteuert deserialisieren, stellen Sie sicher, dass Ihre Anwendung darauf vorbereitet ist, unbekannte Eigenschaften zu verarbeiten, falls zusätzliche Eigenschaften hinzugefügt werden.
Im Folgenden finden Sie das grundlegende Muster für ein Amazon-Athena-Ereignis.
{ "source":[ "aws.athena" ], "detail-type":[ "Athena Query State Change" ], "detail":{ "currentState":[ "SUCCEEDED" ] } }
Das folgende Beispiel zeigt ein Athena-Abfragezustand-Änderungsereignis-Ereignis mit dem currentState
-Wert von 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" } }
Das folgende Beispiel zeigt ein Athena-Abfragezustand-Änderungsereignis-Ereignis mit dem currentState
-Wert von FAILED
. Der athenaError
-Block wird nur angezeigt, wenn currentState
FAILED
ist. Informationen zu den Werten für errorCategory
und errorType
finden Sie unter Athena-Fehlerkatalog.
{ "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" } }
Ausgabe-Eigenschaften
Die JSON Ausgabe umfasst die folgenden Eigenschaften.
Property (Eigenschaft) | Description (Beschreibung) |
---|---|
athenaError |
Wird nur angezeigt, wenn currentState FAILED ist. Enthält Informationen über den aufgetretenen Fehler, einschließlich Fehlerkategorie, Fehlertyp, Fehlermeldung und ob die Aktion, die zum Fehler geführt hat, wiederholt werden kann. Die Werte für jedes dieser Felder hängen von der Art des aufgetretenen Fehlers ab. Informationen zu den Werten für errorCategory und errorType finden Sie unter Athena-Fehlerkatalog. |
versionId |
Die Versionsnummer für das Schema des Detailobjekts. |
currentState |
Der Zustand, in den die Abfrage zum Zeitpunkt des Ereignisses übergegangen ist. |
previousState |
Der Zustand, aus dem die Abfrage zum Zeitpunkt des Ereignisses übergegangen ist. |
statementType |
Der Typ der Abfrageanweisung, die ausgeführt wurde. |
queryExecutionId |
Der eindeutige Bezeichner für die ausgeführte Abfrage. |
workgroupName |
Der Name der Arbeitsgruppe, in der die Abfrage ausgeführt wurde. |
sequenceNumber |
Eine monoton zunehmende Zahl, die die Deduplizierung und Anordnung eingehender Ereignisse ermöglicht, die eine einzelne Abfrageausführung erfordern. Wenn doppelte Ereignisse für denselben Statusübergang veröffentlicht werden, ist der Wert sequenceNumber derselbe. Wenn bei einer Abfrage mehr als einmal ein Zustandsübergang auftritt, z. B. bei Abfragen mit dem selten vorkommenden erneuten Einreihen in die Warteschlange, können mit sequenceNumber Ereignisse nach identischen currentState - und previousState -Werten angeordnet werden. |
Beispiel
Im folgenden Beispiel werden Ereignisse zu einem SNS Amazon-Thema veröffentlicht, das Sie abonniert haben. Wenn Athena abgefragt wird, erhalten Sie eine E-Mail. Das Beispiel geht davon aus, dass das SNS Amazon-Thema existiert und dass Sie es abonniert haben.
Um Athena-Ereignisse zu einem SNS Amazon-Thema zu veröffentlichen
-
Erstellen Sie das Ziel für Ihr SNS Amazon-Thema. Erteilen Sie dem Service Principal für EventBridge Ereignisse die
events.amazonaws.com
Erlaubnis, sie in Ihrem SNS Amazon-Thema zu veröffentlichen, wie im folgenden Beispiel gezeigt.{ "Effect":"Allow", "Principal":{ "Service":"events.amazonaws.com" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111111111111:your-sns-topic" }
-
Verwenden Sie den AWS CLI
events put-rule
Befehl, um eine Regel für Athena-Ereignisse zu erstellen, wie im folgenden Beispiel.aws events put-rule --name {
ruleName
} --event-pattern '{"source": ["aws.athena"]}' -
Verwenden Sie den AWS CLI
events put-targets
Befehl, um das SNS Amazon-Themenziel an die Regel anzuhängen, wie im folgenden Beispiel.aws events put-targets --rule {
ruleName
} --targets Id=1,Arn=arn:aws:sns:us-east-1:111111111111:your-sns-topic -
Fragen Sie Athena ab und achten Sie auf das aufgerufene Ziel ab. Sie sollten entsprechende E-Mails vom SNS Amazon-Thema erhalten.
AWS-Benutzerbenachrichtigungen Mit Amazon Athena verwenden
Sie können mit AWS-Benutzerbenachrichtigungen Lieferkanäle festlegen, um über Amazon-Athena-Ereignisse benachrichtigt zu werden. Sie erhalten eine Benachrichtigung, wenn ein Ereignis einer von Ihnen angegebenen Regel entspricht. Sie können Benachrichtigungen für Ereignisse über mehrere Kanäle erhalten, einschließlich E-Mail-, AWS Chatbot-Chat- oder AWS Console Mobile Application-Push-Benachrichtigungen. Sie können Benachrichtigungen auch im Benachrichtigungscenter der Konsole
Weitere Informationen finden Sie im AWS-Benutzerbenachrichtigungen -Benutzerhandbuch.