Diagnostika výjimek neautorizovaných služeb Azure Cosmos DB a řešení souvisejících potíží

PLATÍ PRO: NoSQL

HTTP 401: Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis. Pokud se vám zobrazila chybová zpráva 401 Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis, může to být způsobeno následujícími scénáři.

U starších sad SDK se výjimka může zobrazovat jako neplatná výjimka JSON místo správné výjimky 401 Neautorizováno. Novější sady SDK tento scénář správně zpracují a poskytnou platnou chybovou zprávu.

Postup při řešení potíží

Následující seznam obsahuje známé příčiny a řešení neoprávněných výjimek.

Klíč nebyl správně obměněný, je nejběžnější scénář.

Signatura 401 MAC se zobrazuje krátce po obměně klíčů a nakonec se zastaví bez jakýchkoli změn.

Řešení:

Došlo k obměně klíče, která se neřídila osvědčenými postupy. Obměně klíčů účtu služby Azure Cosmos DB může v závislosti na velikosti účtu služby Azure Cosmos DB trvat od několika sekund až po několik dnů.

Klíč je chybně nakonfigurovaný.

Problém s podpisem 401 mac bude konzistentní a bude k němu docházet u všech volání používajících tento klíč.

Řešení:

Klíč je v aplikaci nesprávně nakonfigurovaný a pro účet se používá nesprávný klíč, nebo se nezkopíroval celý klíč.

Aplikace používá klíče jen pro čtení pro operace zápisu.

K problému s podpisem 401 MAC dochází pouze u operací zápisu, jako je vytvoření nebo nahrazení, ale požadavky na čtení jsou úspěšné.

Řešení:

Přepněte aplikaci tak, aby používala klíč pro čtení a zápis, aby se operace mohly úspěšně dokončit.

Konflikt časování s vytvořením kontejneru

K problému s podpisem 401 MAC dochází krátce po vytvoření kontejneru. K tomuto problému dochází pouze do dokončení vytváření kontejneru.

Řešení:

Při vytváření kontejneru dochází ke konfliktu časování. Instance aplikace se pokouší o přístup ke kontejneru před dokončením vytváření kontejneru. Nejběžnějším scénářem této konfliktu časování je, když je aplikace spuštěná a kontejner se odstraní a znovu vytvoří se stejným názvem. Sada SDK se pokusí použít nový kontejner, ale vytváření kontejneru stále probíhá, takže nemá klíče.

Povolený hromadný režim

Při použití povoleného hromadného režimu jsou operace čtení a zápisu optimalizované pro nejlepší výkon sítě a odesílají se do back-endu prostřednictvím vyhrazeného rozhraní Bulk API. Chyby 401 při provádění operací čtení s povoleným hromadným režimem často znamenají, že aplikace používá klíče jen pro čtení.

Řešení

Při provádění operací s povoleným hromadným režimem používejte klíče pro čtení a zápis nebo autorizační mechanismus s přístupem k zápisu.

Další kroky