Mendiagnosis dan memecahkan masalah pengecualian tidak sah di Azure Cosmos DB

BERLAKU UNTUK: NoSQL

HTTP 401: Tanda tangan MAC yang terdapat di permintaan HTTP tidak sama dengan tanda tangan yang terkomputasi. Pesan kesalahan 401 "Tanda tangan MAC yang terdapat di permintaan HTTP tidak sama dengan tanda tangan terkomputasi" dapat disebabkan oleh skenario berikut.

Untuk SDK yang lebih lama, pengecualian yang muncul dapat berupa pengecualian JSON yang tidak valid alih-alih pengecualian tidak sah 401 yang benar. SDK yang lebih baru dapat menangani skenario ini dengan tepat dan memberikan pesan kesalahan yang valid.

Langkah-langkah pemecahan masalah

Berikut ini adalah daftar penyebab dan solusi yang diketahui untuk pengecualian yang tidak sah.

Kunci tidak diputar dengan benar merupakan skenario yang paling umum

Tanda tangan MAC 401 muncul tak lama setelah kunci diputar dan akhirnya berhenti tanpa perubahan apa pun.

Solusi:

Kunci diputar dan tidak mengikuti praktik terbaik. Pemutaran kunci akun Microsoft Azure Cosmos DB dapat berlangsung dari beberapa detik hingga beberapa hari, tergantung pada ukuran akun Azure Cosmos DB.

Kunci salah dikonfigurasi

Masalah tanda tangan MAC 401 akan bersifat konsisten dan terjadi untuk semua panggilan yang menggunakan kunci tersebut.

Solusi:

Kunci salah dikonfigurasi pada aplikasi dan menggunakan kunci yang salah untuk akun, atau seluruh kunci tidak disalin.

Aplikasi menggunakan kunci baca-saja untuk operasi tulis

Masalah tanda tangan MAC 401 hanya terjadi untuk operasi tulis seperti membuat atau mengganti, tetapi permintaan baca berhasil.

Solusi:

Ganti aplikasi agar menggunakan kunci baca/tulis sehingga operasi dapat diselesaikan.

Kondisi persaingan dengan membuat kontainer

Masalah tanda tangan MAC 401 segera muncul setelah kontainer dibuat. Masalah ini terjadi hanya sampai pembuatan kontainer selesai.

Solusi:

Ada ketentuan bersaing dengan pembuatan kontainer. Instans aplikasi mencoba mengakses kontainer sebelum pembuatan kontainer selesai. Skenario paling umum untuk ini adalah jika aplikasi sedang berjalan, dan kontainer dihapus dan dibuat ulang dengan nama yang sama. SDK akan mencoba menggunakan kontainer baru, tetapi pembuatan kontainer masih berlangsung sehingga tidak memiliki kunci.

Mode massal diaktifkan

Saat menggunakan Mode massal diaktifkan, operasi baca dan tulis dioptimalkan untuk performa jaringan terbaik dan dikirim ke backend melalui API Massal khusus. Kesalahan 401 saat melakukan operasi baca dengan mode Massal diaktifkan sering berarti bahwa aplikasi menggunakan kunci baca-saja.

Solusi

Gunakan tombol baca/tulis atau mekanisme otorisasi dengan akses tulis saat melakukan operasi dengan mode Massal diaktifkan.

Langkah berikutnya