Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi antrian surat mati jadwal di Scheduler EventBridge
Amazon EventBridge Scheduler mendukung antrian huruf mati () DLQ menggunakan Amazon Simple Queue Service. Jika jadwal gagal menjalankan targetnya, EventBridge Scheduler mengirimkan JSON muatan yang berisi detail pemanggilan dan respons apa pun yang diterima dari target ke antrian standar Amazon yang Anda tentukan. SQS
Topik berikut mengacu pada ini JSON sebagai peristiwa surat mati. Acara surat mati memungkinkan Anda memecahkan masalah dengan jadwal atau target Anda. Jika Anda mengonfigurasi kebijakan coba lagi untuk jadwal Anda, EventBridge Scheduler akan mengirimkan peristiwa surat mati yang telah menghabiskan jumlah maksimum percobaan ulang yang Anda tetapkan.
Topik berikut menjelaskan bagaimana Anda dapat mengonfigurasi SQS antrian Amazon sebagai DLQ jadwal Anda, mengatur izin yang dibutuhkan EventBridge Penjadwal untuk mengirimkan pesan ke AmazonSQS, dan menerima peristiwa surat mati dari. DLQ
Topik
Buat SQS antrian Amazon
Sebelum Anda mengkonfigurasi DLQ untuk jadwal Anda, Anda harus membuat SQS antrian Amazon standar. Untuk petunjuk cara membuat antrean menggunakan SQS konsol Amazon, lihat Membuat SQS antrian Amazon di Panduan Pengembang Layanan Antrian Sederhana Amazon.
catatan
EventBridge Scheduler tidak mendukung penggunaan FIFO antrian sebagai jadwal Anda. DLQ
Gunakan AWS CLI perintah berikut untuk membuat antrian standar.
$
aws sqs create-queue --queue-name
queue-name
Jika berhasil, Anda akan melihat QueueURL
di output.
{
"QueueUrl": "https://sqs.us-west-2.amazonaws.com/123456789012/scheduler-dlq-test"
}
Setelah Anda membuat antrian, perhatikan ARN antrean. Anda akan memerlukan ARN ketika Anda menentukan jadwal EventBridge Scheduler Anda. DLQ Anda dapat menemukan antrian Anda ARN di SQS konsol Amazon, atau dengan menggunakan get-queue-attributes
$
aws sqs get-queue-attributes --queue-url
your-dlq-url
--attribute-names QueueArn
Jika berhasil, Anda akan melihat antrian ARN di output.
{ "Attributes": { "QueueArn": "arn:aws:sqs:us-west-2:123456789012:scheduler-dlq-test" } }
Di bagian selanjutnya, Anda akan menambahkan izin yang diperlukan ke peran eksekusi jadwal Anda untuk memungkinkan EventBridge Scheduler mengirimkan peristiwa surat mati ke Amazon. SQS
Siapkan izin peran eksekusi
Agar EventBridge Scheduler dapat mengirimkan peristiwa surat mati ke AmazonSQS, peran eksekusi jadwal Anda memerlukan kebijakan izin berikut. Untuk informasi selengkapnya tentang melampirkan kebijakan izin baru ke peran eksekusi jadwal Anda, lihat Menyiapkan peran eksekusi.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
catatan
Peran eksekusi jadwal Anda mungkin sudah memiliki izin yang diperlukan jika Anda menggunakan EventBridge Scheduler untuk memanggil target Amazon. SQS API
Di bagian berikutnya, Anda akan menggunakan konsol EventBridge Scheduler dan menentukan DLQ untuk jadwal Anda.
Tentukan antrian huruf mati
Untuk menentukanDLQ, gunakan konsol EventBridge Scheduler atau AWS CLI untuk memperbarui jadwal yang ada, atau buat yang baru.
Di bagian berikutnya, Anda akan menggunakan AWS CLI untuk menerima acara surat mati dari. DLQ
Ambil acara surat mati
Gunakan receive-message
--max-number-of-messages
atribut.
$
aws sqs receive-message --queue-url
your-dlq-url
--attribute-names All --message-attribute-names All --max-number-of-messages 1
Jika berhasil, Anda akan melihat output yang mirip dengan berikut ini.
{ "Messages": [ { "MessageId": "2aeg3510-fe3a-4f5a-ab6a-6906560eaf7e", "ReceiptHandle": "AQEBkNKTdOMrWgHKPoITRBwrPoK3eCSZIcZwVqCY0BZ+FfTcORFpopJbtCqj36VbBTlHreM8+qM/m5jcwqSlAlGmIJO/hYmMgn/+dwIty9izE7HnpvRhhEyHxbeTZ5V05RbeasYaBdNyi9WLcnAHviDh6MebLXXNWoFyYNsxdwJuG0f/w3htX6r3dxpXvvFNPGoQb8ihY37+u0gtsbuIwhLtUSmE8rbldEEwiUfi3IJ1zEZpUS77n/k1GWrMrnYg0Gx/BuaLzOrFi2F738XI/Hnh45uv3ca6OYwS1ojPQ1LtX2URg1haV5884FYlaRvY8jRlpCZabTkYRTZKSXG5KNgYZnHpmsspii6JNkjitYVFKPo0H91w5zkHlSx3REAuWk7m3r7PmOMvTNPMhctbD3CkTw==", "MD5OfBody": "07adc3fc889d6107d8bb8fda42fe0573", "Body": "{\"MessageBody\":\"Hello, world!",\"QueueUrl\":\"https://sqs.us-west-2.amazonaws.com/123456789012/does-not-exist\"}", "Attributes": { "SenderId": "AROA2DZE3W4CTL5ZR7EIN:ff00212d8c453aaaae644bc6846d4723", "ApproximateFirstReceiveTimestamp": "1652499058144", "ApproximateReceiveCount": "2", "SentTimestamp": "1652490733042" }, "MD5OfMessageAttributes": "f72c1d78100860e00403d849831d4895", "MessageAttributes": { "ERROR_CODE": { "StringValue": "AWS.SimpleQueueService.NonExistentQueue", "DataType": "String" }, "ERROR_MESSAGE": { "StringValue": "The specified queue does not exist for this wsdl version.", "DataType": "String" }, "EXECUTION_ID": { "StringValue": "ad06616e51cdf74a", "DataType": "String" }, "EXHAUSTED_RETRY_CONDITION": { "StringValue": "MaximumEventAgeInSeconds", "DataType": "String" } "IS_PAYLOAD_TRUNCATED": { "StringValue": "false", "DataType": "String" }, "RETRY_ATTEMPTS": { "StringValue": "0", "DataType": "String" }, "SCHEDULED_TIME": { "StringValue": "2022-05-14T01:12:00Z", "DataType": "String" }, "SCHEDULE_ARN": { "StringValue": "arn:aws:scheduler:us-west-2:123456789012:schedule/DLQ-test", "DataType": "String" }, "TARGET_ARN": { "StringValue": "arn:aws:scheduler:::aws-sdk:sqs:sendMessage", "DataType": "String" } } } ] }
Perhatikan atribut berikut dalam peristiwa dead-letter untuk membantu Anda mengidentifikasi dan memecahkan masalah kemungkinan alasan mengapa inovasi target gagal.
-
ERROR_CODE
— Berisi kode kesalahan yang EventBridge Scheduler terima dari layanan API target. Pada contoh sebelumnya, kode kesalahan yang dikembalikan oleh Amazon SQS adalah.AWS.SimpleQueueService.NonExistentQueue
Jika jadwal gagal memanggil target karena masalah dengan EventBridge Scheduler, Anda akan melihat kode kesalahan berikut sebagai gantinya:.AWS.Scheduler.InternalServerError
-
ERROR_MESSAGE
— Berisi pesan kesalahan yang diterima EventBridge Scheduler dari layanan API target. Dalam contoh sebelumnya, pesan kesalahan yang dikembalikan oleh Amazon SQS adalah.The specified queue does not exist for this wsdl version
Jika jadwal gagal karena masalah dengan EventBridge Scheduler, Anda akan melihat pesan galat berikut:Unexpected error occurred while processing the request
. -
TARGET_ARN
— Target yang dipanggil jadwal Anda, dalam ARN format layanan berikut:arn:aws:scheduler:::aws-sdk:
. ARNservice
:apiAction
-
EXHAUSTED_RETRY_CONDITION
— Menunjukkan mengapa acara dikirim keDLQ. Atribut ini akan hadir jika kesalahan dari target API adalah kesalahan yang dapat dicoba ulang, dan bukan kesalahan permanen. Atribut dapat berisi nilaiMaximumRetryAttempts
jika EventBridge Scheduler mengirimkannya ke DLQ setelah melebihi upaya percobaan ulang maksimum yang Anda konfigurasikan untuk jadwal, atauMaximumEventAgeInSeconds
, jika acara lebih tua dari usia maksimum yang Anda konfigurasikan pada jadwal dan masih gagal dikirimkan.
Pada contoh sebelumnya, kita dapat menentukan, berdasarkan kode kesalahan, dan pesan kesalahan, bahwa antrian target yang kita tentukan untuk jadwal tidak ada.