Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyelesaian Masalah Titik Akhir HTTP
Bagian ini menjelaskan langkah-langkah pemecahan masalah umum saat menangani Amazon Data Firehose yang mengirimkan data ke tujuan titik akhir HTTP generik dan ke tujuan mitra, termasuk Datadog, Dynatrace,, MongoDB, New Relic, Splunk LogicMonitor, atau Sumo Logic. Untuk tujuan bagian ini, semua tujuan yang berlaku disebut sebagai titik akhir HTTP. Pastikan bahwa peran IAM yang ditentukan dalam aliran Firehose Anda dapat mengakses bucket cadangan S3 dan fungsi Lambda untuk transformasi data (jika transformasi data diaktifkan). Juga, pastikan bahwa peran IAM memiliki akses ke grup CloudWatch log dan aliran log untuk memeriksa log kesalahan. Untuk informasi selengkapnya, lihat Memberikan Akses Firehose ke Tujuan Titik Akhir HTTP.
catatan
Informasi di bagian ini tidak berlaku untuk tujuan berikut: Splunk, OpenSearch Service, S3, dan Redshift.
CloudWatch Log
Sangat disarankan agar Anda mengaktifkan CloudWatch Logging for. Log hanya diterbitkan ketika ada kesalahan pengiriman ke tujuan Anda.
Pengecualian Tujuan
ErrorCode: HttpEndpoint.DestinationException
{ "deliveryStreamARN": "arn:aws:firehose:us-east-1:123456789012:deliverystream/ronald-test", "destination": "custom.firehose.endpoint.com...", "deliveryStreamVersionId": 1, "message": "The following response was received from the endpoint destination. 413: {\"requestId\": \"43b8e724-dbac-4510-adb7-ef211c6044b9\", \"timestamp\": 1598556019164, \"errorMessage\": \"Payload too large\"}", "errorCode": "HttpEndpoint.DestinationException", "processor": "arn:aws:lambda:us-east-1:379522611494:function:httpLambdaProcessing" }
Pengecualian tujuan menunjukkan bahwa Firehose mampu membuat koneksi ke titik akhir Anda dan membuat permintaan HTTP, tetapi tidak menerima kode respon 200. 2xx tanggapan yang bukan 200 juga akan menghasilkan pengecualian tujuan. Amazon Data Firehose mencatat kode respons dan payload respons terpotong yang diterima dari titik akhir yang dikonfigurasi ke Log. CloudWatch Karena Amazon Data Firehose mencatat kode respons dan payload tanpa modifikasi atau interpretasi, terserah titik akhir untuk memberikan alasan yang tepat mengapa ia menolak permintaan pengiriman HTTP Amazon Data Firehose. Berikut ini adalah rekomendasi pemecahan masalah paling umum untuk pengecualian ini:
-
400: Menunjukkan bahwa Anda mengirim permintaan yang buruk karena kesalahan konfigurasi Amazon Data Firehose Anda. Pastikan Anda memiliki url, atribut umum, pengkodean konten,access key, dan petunjuk buffering yang benar untuk tujuan Anda. Lihat dokumentasi spesifik tujuan pada konfigurasi yang diperlukan.
-
401: Menunjukkan bahwa kunci akses yang Anda konfigurasikan untuk aliran Firehose Anda salah atau hilang.
-
403: Menunjukkan bahwa kunci akses yang Anda konfigurasikan untuk aliran Firehose tidak memiliki izin untuk mengirimkan data ke titik akhir yang dikonfigurasi.
-
413: Menunjukkan bahwa payload permintaan yang dikirimkan Amazon Data Firehose ke endpoint terlalu besar untuk ditangani endpoint. Coba turunkan petunjuk buffering ke ukuran yang disarankan untuk tujuan Anda.
-
429: Menunjukkan bahwa Amazon Data Firehose mengirimkan permintaan pada tingkat yang lebih besar daripada yang dapat ditangani oleh tujuan. Sempurnakan petunjuk buffering Anda dengan meningkatkan waktu buffering Anda and/or meningkatkan ukuran buffering Anda (tetapi masih dalam batas tujuan Anda).
-
5xx: Menunjukkan bahwa ada masalah dengan tujuan. Layanan Amazon Data Firehose masih berfungsi dengan baik.
penting
Penting: Meski ini adalah rekomendasi pemecahan masalah umum, titik akhir tertentu mungkin memiliki alasan berbeda saat memberikan kode respons dan Anda perlu mengikuti rekomendasi khusus titik akhir tersebut terlebih dahulu..
Respons Tidak Valid
ErrorCode: HttpEndpoint.InvalidResponseFromDestination
{ "deliveryStreamARN": "arn:aws:firehose:us-east-1:123456789012:deliverystream/ronald-test", "destination": "custom.firehose.endpoint.com...", "deliveryStreamVersionId": 1, "message": "The response received from the specified endpoint is invalid. Contact the owner of the endpoint to resolve the issue. Response for request 2de9e8e9-7296-47b0-bea6-9f17b133d847 is not recognized as valid JSON or has unexpected fields. Raw response received: 200 {\"requestId\": null}", "errorCode": "HttpEndpoint.InvalidResponseFromDestination", "processor": "arn:aws:lambda:us-east-1:379522611494:function:httpLambdaProcessing" }
Pengecualian respons yang tidak valid menunjukkan bahwa Amazon Data Firehose menerima respons yang tidak valid dari tujuan titik akhir. Respons harus sesuai dengan spesifikasi respons atau Amazon Data Firehose akan menganggap upaya pengiriman gagal dan akan mengirimkan ulang data yang sama hingga durasi percobaan ulang yang dikonfigurasi terlampaui. Amazon Data Firehose memperlakukan respons yang tidak mengikuti spesifikasi respons sebagai kegagalan meskipun respons memiliki status 200. Jika Anda mengembangkan titik akhir yang kompatibel dengan Amazon Data Firehose, ikuti spesifikasi respons untuk memastikan data berhasil dikirim.
Berikut adalah beberapa jenis respons tidak valid yang umum dan cara memperbaikinya:
-
JSON Tidak Valid atau Bidang Tak Terduga: Menunjukkan bahwa respons tidak dapat dideserialisasi dengan benar sebagai JSON atau memiliki bidang tak terduga. Pastikan respons tidak dikodekan dengan konten.
-
Hilang RequestId: Menunjukkan bahwa respon tidak mengandung RequesTid.
-
RequestId tidak cocok: Menunjukkan bahwa requestid dalam respons tidak cocok dengan RequesTid keluar.
-
Stempel Waktu Hilang: Menunjukkan bahwa respons tidak mengandung bidang stempel waktu. Bidang stempel waktu harus berisi angka dan bukan string.
-
Header Tipe Konten Hilang: Menunjukkan bahwa respons tidak berisi header “content-type: application/json”. Tipe konten lainnya tidak diterima.
penting
Penting: Amazon Data Firehose hanya dapat mengirimkan data ke titik akhir yang mengikuti permintaan Firehose dan spesifikasi respons. Jika Anda mengonfigurasi tujuan Anda ke layanan pihak ketiga, pastikan Anda menggunakan titik akhir yang kompatibel dengan Amazon Data Firehose yang benar yang kemungkinan akan berbeda dari titik akhir konsumsi publik. Misalnya titik akhir Amazon Data Firehose Datadog adalah https://aws-kinesis-http-intake.logs.datadoghq.com/
saat titik akhir publiknya. https://api.datadoghq.com/
Kesalahan Umum Lainnya
Kode kesalahan tambahan dan definisinya tercantum di bawah ini.
-
Kode Kesalahan: HttpEndpoint. RequestTimeout - Menunjukkan bahwa titik akhir membutuhkan waktu lebih dari 3 menit untuk merespons. Jika Anda adalah pemilik tujuan, kurangi waktu respons titik akhir tujuan. Jika Anda bukan pemilik tujuan, hubungi pemilik dan tanyakan apakah ada sesuatu yang dapat dilakukan untuk menurunkan waktu respons (yaitu mengurangi petunjuk buffering sehingga data yang diproses per permintaan lebih sedikit).
-
Kode Kesalahan: HttpEndpoint. ResponseTooLarge - Menunjukkan bahwa responsnya terlalu besar. Respons harus kurang dari 1 MiB termasuk headernya.
-
Kode Kesalahan: HttpEndpoint. ConnectionFailed - Menunjukkan koneksi tidak dapat dibuat dengan titik akhir yang dikonfigurasi. Ini mungkin karena kesalahan ketik di url yang dikonfigurasi, titik akhir tidak dapat diakses oleh Amazon Data Firehose, atau titik akhir yang terlalu lama untuk menanggapi permintaan koneksi.
-
Kode Kesalahan: HttpEndpoint. ConnectionReset - Menunjukkan koneksi dibuat tetapi diatur ulang atau ditutup sebelum waktunya oleh titik akhir.
-
Kode Kesalahan: HttpEndpoint. SSLHandshakeKegagalan - Menunjukkan jabat tangan SSL tidak berhasil diselesaikan dengan titik akhir yang dikonfigurasi.