Penanganan kesalahan - Amazon Rekognition

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 pengecualian LimitExceededException (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 untuk melihat apakah ada masalah operasional dengan layanan ini.

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.