Megosztás a következőn keresztül:


Az Azure Cosmos DB jogosulatlan kivételeinek diagnosztizálása és hibaelhárítása

A KÖVETKEZŐRE VONATKOZIK: NoSQL

HTTP 401: A HTTP-kérelemben található MAC-aláírás nem ugyanaz, mint a számított aláírás. Ha a 401-as hibaüzenetet kapta: "A HTTP-kérelemben talált MAC-aláírás nem ugyanaz, mint a számított aláírás", az alábbi forgatókönyvek okozhatják.

Régebbi SDK-k esetén a kivétel érvénytelen JSON-kivételként jelenhet meg a helyes 401-hez nem engedélyezett kivétel helyett. Az újabb SDK-k megfelelően kezelik ezt a forgatókönyvet, és érvényes hibaüzenetet adnak.

Hibaelhárítási lépések

Az alábbi lista a jogosulatlan kivételek ismert okait és megoldásait tartalmazza.

A kulcs nem volt megfelelően elforgatva, ez a leggyakoribb forgatókönyv

A 401 MAC-aláírás röviddel a kulcsváltás után látható, és végül módosítások nélkül leáll.

Solution

Lecserélődött a kulcs, és a kulcsváltás során nem követték az ajánlott eljárásokat. Az Azure Cosmos DB-fiók kulcsváltása az Azure Cosmos DB-fiók méretétől függően akár néhány másodperctől akár napokig is eltarthat.

A kulcs helytelenül van konfigurálva

A 401 MAC-aláírással kapcsolatos probléma konzisztens lesz, és az adott kulcsot használó összes hívás esetében előfordul.

Solution

A kulcs helytelenül van konfigurálva az alkalmazásban, és nem a megfelelő kulcsot használja a fiókhoz, vagy a teljes kulcsot nem másolták át.

Az alkalmazás írási műveletekhez használja a csak olvasható kulcsokat

A 401 MAC-aláírási probléma csak olyan írási műveleteknél fordul elő, mint a létrehozás vagy a csere, de az olvasási kérelmek sikeresek.

Solution

Váltson az alkalmazásra olvasási/írási kulcs használatára, hogy a műveletek sikeresen befejeződjenek.

Versenyfeltétel tároló létrehozásával

A 401 MAC-aláírással kapcsolatos probléma röviddel a tároló létrehozása után látható. Ez a probléma csak a tároló létrehozásának befejezéséig jelentkezik.

Solution

Van egy versenyfeltétel a tárolók létrehozásával. Egy alkalmazáspéldány a tároló létrehozása előtt próbál hozzáférni a tárolóhoz. Ennek a versenyfeltételnek a leggyakoribb forgatókönyve az, ha az alkalmazás fut, és a tárolót ugyanazzal a névvel törli és újra létrehozza. Az SDK megpróbálja használni az új tárolót, de a tároló létrehozása még folyamatban van, így nem rendelkezik a kulcsokkal.

A tömeges mód engedélyezve

Ha engedélyezve van a tömeges mód, az olvasási és írási műveletek a legjobb hálózati teljesítményre vannak optimalizálva, és egy dedikált Tömeges API-val küldik el a háttérrendszernek. A tömeges módban végzett olvasási műveletek során fellépő 401-hiba gyakran azt jelenti, hogy az alkalmazás írásvédett kulcsokat használ.

Megoldás

Használja az olvasási/írási kulcsokat vagy az engedélyezési mechanizmust írási hozzáféréssel, ha a tömeges mód engedélyezve van.

Következő lépések