Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penanganan kesalahan
Bagian ini menjelaskan kesalahan waktu aktif dan cara menanganinya. Ini juga menjelaskan pesan kesalahan dan kode yang khusus untuk Amazon Rekognition.
Komponen kesalahan
Ketika program Anda mengirimkan permintaan, Amazon Rekognition mencoba untuk memprosesnya. Jika permintaan berhasil, Amazon Rekognition mengembalikan kode status sukses HTTP (200 OK
), bersama dengan hasil dari operasi yang diminta.
Jika permintaan tidak berhasil, Amazon Rekognition mengembalikan kesalahan. Setiap kesalahan memiliki tiga komponen:
-
Kode status HTTP (seperti
400
). -
Nama pengecualian (seperti
InvalidS3ObjectException
). -
Pesan kesalahan (seperti
Unable to get object metadata from S3. Check object key, region and/or access permissions.
).
SDK AWS menangani kesalahan penyebaran untuk aplikasi Anda, sehingga Anda dapat mengambil tindakan yang tepat. Misalnya, dalam program Java, Anda bisa menulis logika try-catch
untuk menangani ResourceNotFoundException
.
Jika Anda tidak menggunakan SDK AWS, Anda perlu mengurai isi dari respons tingkat rendah dari Amazon Rekognition. Berikut ini adalah contoh responsnya:
HTTP/1.1 400 Bad Request Content-Type: application/x-amz-json-1.1 Date: Sat, 25 May 2019 00:28:25 GMT x-amzn-RequestId: 03507c9b-7e84-11e9-9ad1-854a4567eb71 Content-Length: 222 Connection: keep-alive {"__type":"InvalidS3ObjectException","Code":"InvalidS3ObjectException","Logref":"5022229e-7e48-11e9-9ad1-854a4567eb71","Message":"Unable to get object metadata from S3. Check object key, region and/or access permissions."}
Pesan dan kode kesalahan
Berikut ini adalah daftar pengecualian yang dikembalikan oleh Amazon Rekognition, dikelompokkan berdasarkan kode status HTTP. Jika Boleh diulang? adalah Ya, Anda dapat mengirimkan permintaan yang sama lagi. Jika Boleh diulang? adalah Tidak, Anda harus memperbaiki masalah di sisi klien sebelum mengirimkan permintaan baru.
Kode status HTTP 400
Kode status 400
HTTP menunjukkan adanya masalah dengan permintaan Anda. Beberapa contoh masalah adalah kegagalan autentikasi, parameter yang diperlukan hilang, atau melebihi operasi yang ditetapkan throughput. Anda harus memperbaiki masalah dalam aplikasi Anda sebelum mengirimkan permintaan lagi.
- AccessDeniedException
-
Pesan:Terjadi galat (AccessDeniedException) Saat memanggil <Operation>operasi: Pengguna: <User ARN>tidak berwenang untuk melakukan: <Operation>pada sumber daya:<Resource ARN>.
Anda tidak berwenang untuk melakukan tindakan. Gunakan Amazon Resource Name (ARN) dari pengguna resmi atau IAM role untuk melakukan operasi.
Boleh diulang? Tidak
- GroupFacesInProgressException
-
Pesan:Gagal menjadwalkanGroupFacespekerjaan. Sudah ada grup yang menghadapi tugas untuk koleksi ini.
Coba lagi operasi setelah tugas yang ada selesai.
Boleh diulang? Tidak
- IdempotentParameterMismatchException
-
Pesan:YangClientRequestToken: <Token>Anda telah disediakan sudah digunakan.
Parameter input ClientRequestToken digunakan kembali dengan suatu operasi, tapi setidaknya salah satu parameter input lainnya berbeda dari panggilan ke operasi sebelumnya.
Boleh diulang? Tidak
- ImageTooLargeException
-
Pesan: Ukuran citra terlalu besar.
Ukuran citra input melebihi batas yang diizinkan. Jika Anda memanggil DetectProtectiveEquipment, ukuran citra atau resolusi melebihi batas yang diizinkan. Untuk informasi selengkapnya, lihat Pedoman dan kuota dalam Amazon Rekognition.
Boleh diulang? Tidak
- InvalidImageFormatException
-
Pesan: Permintaan memiliki format citra yang tidak sah.
Tidak mendukung format citra yang disediakan. Gunakan format citra yang didukung (.JPEG dan .PNG). Untuk informasi selengkapnya, lihat Pedoman dan kuota dalam Amazon Rekognition.
Boleh diulang? Tidak
- InvalidPaginationTokenException
-
Pesan
Token Tidak Valid
Token Pagination Tidak Valid
Token pemberian nomor halaman dalam permintaan tidak valid. Token mungkin telah kedaluwarsa.
Boleh diulang? Tidak
- InvalidParameterException
-
Pesan: Permintaan memiliki parameter yang tidak valid.
Parameter input melanggar batasan. Validasi parameter Anda sebelum memanggil operasi API lagi.
Boleh diulang? Tidak
- Invalid3ObjectException
-
Pesan:
Permintaan memiliki objek S3 tidak valid.
Tidak bisa mendapatkan metadata objek dari S3. Periksa kunci objek, wilayah dan/atau izin akses.
Amazon Rekognition tidak dapat mengakses objek S3 yang ditentukan dalam permintaan. Untuk informasi selengkapnya, lihat Konfigurasi Akses ke S3: Akses Pengelolaan AWS S3. Untuk informasi pemecahan masalah, lihat Memecahkan Masalah Amazon S3.
Boleh diulang? Tidak
- LimitExceededException
Pesan:
<Current Limit>Batas prosesor aliran terlampaui untuk akun, batas -.
<Number of Open Jobs>terbuka Pekerjaan untuk pengguna <User ARN>batas maksimum: <Maximum Limit>
Melebihi batas layanan Amazon Rekognition. Misalnya, jika Anda memulai terlalu banyak tugas untuk Amazon Rekognition Video secara bersamaan, panggilan untuk memulai operasi, seperti
StartLabelDetection
, menaikkan pengecualianLimitExceededException
(kode status HTTP: 400) hingga jumlah tugas yang berjalan bersama berada di bawah batas layanan Amazon Rekognition.Boleh diulang? Tidak
- ProvisionedThroughputExceededException
-
Pesan:
Tingkat Disediakan terlampaui.
Batas unduhan S3 terlampaui.
Jumlah permintaan melebihi batas throughput Anda. Untuk informasi selengkapnya, lihat Service Limits Amazon Rekognition.
Untuk meminta penambahan batas, ikuti petunjuk di Buat kasus untuk mengubah kuota TPS.
Boleh diulang? Ya
- ResourceAlreadyExistsException
-
Pesan: Koleksi id: <Collection Id> sudah ada.
Koleksi dengan ID tertentu sudah ada.
Boleh diulang? Tidak
- ResourceInUseException
-
Pesan:
Nama prosesor streaming sudah digunakan.
Sumber daya yang ditentukan sedang digunakan.
Prosesor tidak tersedia untuk menghentikan aliran.
Tidak dapat menghapus prosesor stream.
Coba lagi bila sumber daya tersedia.
Boleh diulang? Tidak
- ResourceNotFoundException
-
Pesan: Berbagai pesan tergantung pada panggilan API.
Sumber daya yang ditentukan tidak ada.
Boleh diulang? Tidak
- ThrottlingException
-
Pesan: Pelan-pelan; terjadi peningkatan angka permintaan secara mendadak.
Angka peningkatan permintaan Anda terlalu cepat. Perlambat angka permintaan Anda dan tingkatkan secara bertahap. Kami merekomendasikan agar Anda mundur secara eksponensial dan mencoba lagi. Secara default, SDK AWS menggunakan logika pengulangan otomatis dan backoff eksponensial. Untuk informasi selengkapnya, lihat Pengulangan Kesalahan dan Backoff Eksponensial di AWS dan Backoff Eksponensial dan Jitter
. Boleh diulang? Ya
- VideoTooLargeException
-
Pesan: Ukuran video dalam bit: <Video Size> lebih dari batas maksimum: <Max Size> byte.
Ukuran file atau durasi media yang disediakan terlalu besar. Untuk informasi selengkapnya, lihat Pedoman dan kuota dalam Amazon Rekognition.
Boleh diulang? Tidak
Kode Status HTTP 5xx
Kode status 5xx
HTTP menunjukkan masalah yang harus diselesaikan oleh AWS. Ini mungkin kesalahan sementara. Jika ya, Anda dapat mencoba kembali permintaan Anda hingga berhasil. Jika tidak, masuk ke AWS Service Health Dashboard
- InternalServerError(HTTP 500)
-
Pesan: Kesalahan server internal
Amazon Rekognition mengalami masalah layanan. Coba lagi panggilan Anda. Anda harus mundur secara eksponensial dan coba lagi. Secara default, SDK AWS menggunakan logika pengulangan otomatis dan backoff eksponensial. Untuk informasi selengkapnya, lihat Pengulangan Kesalahan dan Backoff Eksponensial di AWS dan Backoff Eksponensial dan Jitter
. Boleh diulang? Ya
- ThrottlingException(HTTP 500)
-
Pesan: Layanan Tidak Tersedia
Amazon Rekognition untuk sementara tidak dapat memproses permintaan. Coba lagi panggilan Anda. Kami merekomendasikan agar Anda mundur secara eksponensial dan mencoba lagi. Secara default, SDK AWS menggunakan logika pengulangan otomatis dan backoff eksponensial. Untuk informasi selengkapnya, lihat Pengulangan Kesalahan dan Backoff Eksponensial di AWS dan Backoff Eksponensial dan Jitter
. Boleh diulang? Ya
Penanganan kesalahan dalam aplikasi Anda
Agar aplikasi Anda berjalan lancar, Anda perlu menambahkan logika untuk menangkap kesalahan dan menanggapinya. Pendekatan umum termasuk menggunakan blok try-catch
atau pernyataan if-then
.
SDK AWS melakukan pemeriksaan pengulangan dan kesalahan mereka sendiri. Jika Anda mengalami kesalahan saat menggunakan salah satu SDK AWS, kode dan deskripsi kesalahan dapat membantu Anda memecahkan masalah itu.
Anda juga harus melihat Request ID
dalam respons. Request
ID
dapat membantu jika Anda perlu bekerja dengan AWS Support untuk mendiagnosis suatu masalah.
Cuplikan kode Java berikut mencoba untuk mendeteksi objek dalam citra dan melakukan penanganan kesalahan dasar. (Dalam hal ini, itu hanya menginformasikan pengguna bahwa permintaan gagal.)
try { DetectLabelsResult result = rekognitionClient.detectLabels(request); List <Label> labels = result.getLabels(); System.out.println("Detected labels for " + photo); for (Label label: labels) { System.out.println(label.getName() + ": " + label.getConfidence().toString()); } } catch(AmazonRekognitionException e) { System.err.println("Could not complete operation"); System.err.println("Error Message: " + e.getMessage()); System.err.println("HTTP Status: " + e.getStatusCode()); System.err.println("AWS Error Code: " + e.getErrorCode()); System.err.println("Error Type: " + e.getErrorType()); System.err.println("Request ID: " + e.getRequestId()); } catch (AmazonClientException ace) { System.err.println("Internal error occurred communicating with Rekognition"); System.out.println("Error Message: " + ace.getMessage()); }
Dalam contoh kode ini, try-catch
mencoba menangani dua tipe pengecualian:
-
AmazonRekognitionException
— Pengecualian ini terjadi jika permintaan klien dikirim dengan benar ke Amazon Rekognition, tetapi Amazon Rekognition tidak dapat memproses permintaan dan sebagai gantinya mengembalikan respons kesalahan. AmazonClientException
– Pengecualian ini terjadi jika klien tidak bisa mendapatkan respons dari layanan, atau jika klien tidak bisa mengurai respons dari layanan.