Diagnostisera och felsöka undantag som inte är tillåtna i Azure Cosmos DB
GÄLLER FÖR: NoSQL
HTTP-statuskoden 403 representerar att begäran inte kan slutföras.
Brandväggsblockeringsbegäranden
Dataplansbegäranden kan komma till Azure Cosmos DB via följande tre sökvägar.
- Offentligt Internet (IPv4)
- Tjänstslutpunkt
- Privat slutpunkt
När en dataplansbegäran blockeras med 403 Förbjuden anger felmeddelandet via vilken av de föregående tre sökvägarna som begäran kom till Azure Cosmos DB.
Request originated from client IP {...} through public internet.
Request originated from client VNET through service endpoint.
Request originated from client VNET through private endpoint.
Lösning
Förstå via vilken sökväg begäran förväntas komma till Azure Cosmos DB.
- Om felmeddelandet visar att begäran inte kom till Azure Cosmos DB via den förväntade sökvägen kommer problemet troligen att bero på konfigurationen på klientsidan. Dubbelkolla konfigurationen på klientsidan genom att följa dokumentationen.
- Offentligt Internet: Konfigurera IP-brandväggen i Azure Cosmos DB.
- Tjänstslutpunkt: Konfigurera åtkomst till Azure Cosmos DB från virtuella nätverk. Tänk på om du förväntade dig att använda tjänstslutpunkten, men begäran kom till Azure Cosmos DB från det offentliga Internet. Den här situationen kan tyda på att det undernät som klienten kördes i inte aktiverade tjänstslutpunkten till Azure Cosmos DB.
- Privat slutpunkt: Konfigurera Azure Private Link för ett Azure Cosmos DB-konto. Tänk också på om du förväntade dig att använda en privat slutpunkt, men begäran kom till Azure Cosmos DB från det offentliga Internet. Den här situationen kan tyda på att domännamnsservern (DNS) på den virtuella datorn inte har konfigurerats för att matcha kontoslutpunkten till den privata i stället för den offentliga IP-adressen.
- Om begäran kom till Azure Cosmos DB via den förväntade sökvägen blockerades begäran eftersom källnätverksidentiteten inte har konfigurerats för kontot. Kontrollera inställningarna för kontot beroende på vilken sökväg begäran kom till Azure Cosmos DB.
- Offentligt Internet: kontrollera kontots konfigurationer för offentligt nätverk och IP-intervallfilter.
- Tjänstslutpunkt: Kontrollera kontots offentliga nätverksåtkomst och filterkonfigurationer för virtuella nätverk.
- Privat slutpunkt: Kontrollera kontots privata slutpunktskonfiguration och klientens privata DNS-konfiguration. Det här problemet kan bero på åtkomst till kontot från en privat slutpunkt som har konfigurerats för ett annat konto.
Om du nyligen har uppdaterat kontots brandväggskonfigurationer bör du tänka på att det kan ta upp till 15 minuter att göra ändringar.
Partitionsnyckeln överskrider lagringen
I det här scenariot är det vanligt att se fel som de här:
Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB
Lösning
Det här felet innebär att din aktuella partitioneringsdesign och arbetsbelastning försöker lagra mer än den tillåtna mängden data för ett visst partitionsnyckelvärde. Det finns ingen gräns för antalet logiska partitioner i containern, men storleken på data som varje logisk partition kan lagra är begränsad. Du kan kontakta supporten för förtydliganden.
Icke-dataåtgärder tillåts inte
Det här scenariot inträffar vid försök att utföra icke-dataåtgärder med hjälp av Microsoft Entra-identiteter. I det här scenariot är det vanligt att se fel som de här:
Operation 'POST' on resource 'calls' is not allowed through Azure Cosmos DB endpoint
Forbidden (403); Substatus: 5300; The given request [PUT ...] cannot be authorized by AAD token in data plane.
Lösning
Utför åtgärden via Azure Resource Manager, Azure Portal, Azure CLI eller Azure PowerShell.
Om du använder Azure Functions Azure Cosmos DB-utlösaren kontrollerar du att CreateLeaseContainerIfNotExists
utlösarens egenskap inte är inställd på true
. Användning av Microsoft Entra-identiteter blockerar alla icke-dataåtgärder, till exempel att skapa lånecontainern.