Pantau acara kueri Athena dengan EventBridge - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pantau acara kueri Athena dengan EventBridge

Anda dapat menggunakan Amazon Athena dengan Amazon EventBridge untuk menerima pemberitahuan waktu nyata mengenai status pertanyaan Anda. Ketika kueri yang Anda kirimkan menyatakan transisi, Athena menerbitkan peristiwa EventBridge yang berisi informasi tentang transisi status kueri tersebut. Anda dapat menulis aturan sederhana untuk acara yang menarik bagi Anda dan mengambil tindakan otomatis saat acara cocok dengan aturan. Misalnya, Anda dapat membuat aturan yang memanggil AWS Lambda fungsi saat kueri mencapai status terminal. Peristiwa dipancarkan atas dasar upaya terbaik.

Sebelum Anda membuat aturan acara untuk Athena, Anda harus melakukan hal berikut:

  • Biasakan diri Anda dengan acara, aturan, dan target di EventBridge. Untuk informasi selengkapnya, lihat Apa itu Amazon EventBridge? Untuk informasi selengkapnya tentang cara mengatur aturan, lihat Memulai Amazon EventBridge.

  • Buat target tersebut atau target untuk digunakan dalam aturan peristiwa Anda.

catatan

Athena saat ini menawarkan satu jenis acara, Athena Query State Change, tetapi dapat menambahkan jenis dan detail acara lainnya. Jika Anda secara terprogram deserialisasi JSON data peristiwa, pastikan aplikasi Anda siap untuk menangani properti yang tidak dikenal jika properti tambahan ditambahkan.

Berikut ini adalah pola dasar untuk acara Amazon Athena.

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

Contoh berikut menunjukkan Athena Query State Change event dengan currentState nilai. 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" } }

Contoh berikut menunjukkan Athena Query State Change event dengan currentState nilai. FAILED athenaErrorBlok hanya muncul ketika currentState adaFAILED. Untuk informasi tentang nilai untuk errorCategory danerrorType, lihatKatalog kesalahan 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" } }

Properti keluaran

JSONOutputnya mencakup properti berikut.

Properti Deskripsi
athenaError Muncul hanya ketika currentState ituFAILED. Berisi informasi tentang kesalahan yang terjadi, termasuk kategori kesalahan, jenis kesalahan, pesan kesalahan, dan apakah tindakan yang menyebabkan kesalahan dapat dicoba ulang. Nilai untuk masing-masing bidang ini tergantung pada sifat kesalahan. Untuk informasi tentang nilai untuk errorCategory danerrorType, lihatKatalog kesalahan Athena.
versionId Nomor versi untuk skema objek detail.
currentState Status bahwa query dialihkan ke pada saat acara.
previousState Keadaan bahwa kueri dialihkan dari pada saat acara.
statementType Jenis pernyataan query yang dijalankan.
queryExecutionId Pengidentifikasi unik untuk kueri yang dijalankan.
workgroupName Nama workgroup tempat kueri dijalankan.
sequenceNumber Jumlah yang meningkat secara monoton yang memungkinkan deduplikasi dan pengurutan peristiwa masuk yang melibatkan satu kueri yang dijalankan. Ketika peristiwa duplikat diterbitkan untuk transisi status yang sama, sequenceNumber nilainya sama. Saat kueri mengalami transisi status lebih dari sekali, seperti kueri yang mengalami requeuing langka, Anda dapat menggunakannya sequenceNumber untuk mengurutkan peristiwa dengan nilai dan identikcurrentState. previousState

Contoh

Contoh berikut menerbitkan acara ke SNS topik Amazon yang telah Anda berlangganan. Ketika Athena ditanyai, Anda menerima email. Contohnya mengasumsikan bahwa SNS topik Amazon ada dan Anda telah berlangganan.

Untuk mempublikasikan acara Athena ke topik Amazon SNS
  1. Buat target untuk SNS topik Amazon Anda. Berikan events.amazonaws.com izin Principal Layanan EventBridge acara untuk mempublikasikan ke SNS topik Amazon Anda, seperti pada contoh berikut.

    { "Effect":"Allow", "Principal":{ "Service":"events.amazonaws.com" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111111111111:your-sns-topic" }
  2. Gunakan AWS CLI events put-rule perintah untuk membuat aturan untuk acara Athena, seperti pada contoh berikut.

    aws events put-rule --name {ruleName} --event-pattern '{"source": ["aws.athena"]}'
  3. Gunakan AWS CLI events put-targets perintah untuk melampirkan target SNS topik Amazon ke aturan, seperti pada contoh berikut.

    aws events put-targets --rule {ruleName} --targets Id=1,Arn=arn:aws:sns:us-east-1:111111111111:your-sns-topic
  4. Tanyakan Athena dan amati target yang dipanggil. Anda harus menerima email yang sesuai dari SNS topik Amazon.

Gunakan Notifikasi Pengguna AWS dengan Amazon Athena

Anda dapat menggunakan Notifikasi Pengguna AWSuntuk mengatur saluran pengiriman untuk mendapatkan pemberitahuan tentang acara Amazon Athena. Anda akan menerima notifikasi saat ada sebuah peristiwa yang cocok dengan sebuah aturan yang Anda tentukan. Anda dapat menerima notifikasi untuk peristiwa melalui beberapa saluran, termasuk email, notifikasi obrolan AWS Chatbot, atau notifikasi push AWS Console Mobile Application. Anda juga dapat melihat notifikasi di Pusat Pemberitahuan Konsol. Notifikasi Pengguna mendukung agregasi, yang dapat mengurangi jumlah notifikasi yang Anda terima selama acara tertentu.

Untuk informasi selengkapnya, lihat Panduan Pengguna Notifikasi Pengguna AWS .