Uitzonderingen met verboden Azure Cosmos DB vaststellen en oplossen
VAN TOEPASSING OP: NoSQL
De HTTP-statuscode 403 geeft aan dat de aanvraag niet kan worden voltooid.
Blokkerende aanvragen voor firewall
Aanvragen voor gegevensvlakken kunnen via de volgende drie paden naar Azure Cosmos DB worden verzonden.
- Openbaar internet (IPv4)
- Service-eindpunt
- Privé-eindpunt
Wanneer een aanvraag voor een gegevensvlak wordt geblokkeerd met 403 Verboden, geeft het foutbericht aan via welke van de vorige drie paden de aanvraag naar Azure Cosmos DB is gekomen.
Request originated from client IP {...} through public internet.
Request originated from client VNET through service endpoint.
Request originated from client VNET through private endpoint.
Oplossing
Begrijp via welk pad de aanvraag wordt verwacht om naar Azure Cosmos DB te komen.
- Als in het foutbericht wordt aangegeven dat de aanvraag niet via het verwachte pad naar Azure Cosmos DB is gekomen, is het probleem waarschijnlijk bij de installatie aan de clientzijde. Controleer de installatie aan de clientzijde op de volgende documentatie.
- Openbaar internet: IP-firewall configureren in Azure Cosmos DB.
- Service-eindpunt: toegang tot Azure Cosmos DB configureren vanuit virtuele netwerken. Overweeg of u verwacht dat u service-eindpunten gebruikt, maar de aanvraag vanaf het openbare internet naar Azure Cosmos DB is gekomen. Deze situatie kan erop wijzen dat het subnet waarin de client werd uitgevoerd, het service-eindpunt niet heeft ingeschakeld voor Azure Cosmos DB.
- Privé-eindpunt: Azure Private Link configureren voor een Azure Cosmos DB-account. Houd er ook rekening mee als u verwacht dat u een privé-eindpunt gebruikt, maar de aanvraag afkomstig is van Azure Cosmos DB via het openbare internet. Deze situatie kan erop wijzen dat de DNS (Domain Name Server) op de virtuele machine niet is geconfigureerd voor het omzetten van het accounteindpunt naar het privé-eindpunt in plaats van het openbare IP-adres.
- Als de aanvraag via het verwachte pad naar Azure Cosmos DB is gekomen, is de aanvraag geblokkeerd omdat de bronnetwerkidentiteit niet is geconfigureerd voor het account. Controleer de instellingen van het account, afhankelijk van het pad dat de aanvraag naar Azure Cosmos DB heeft verzonden.
- Openbaar internet: controleer de configuraties voor openbare netwerktoegang en IP-bereikfilters van het account.
- Service-eindpunt: controleer de openbare netwerktoegang en configuraties van het virtuele netwerkfilter.
- Privé-eindpunt: controleer de configuratie van het privé-eindpunt van het account en de privé-DNS-configuratie van de client. Dit probleem kan worden veroorzaakt door toegang tot het account vanaf een privé-eindpunt dat is ingesteld voor een ander account.
Als u onlangs de firewallconfiguraties van het account hebt bijgewerkt, moet u er rekening mee houden dat het maximaal 15 minuten kan duren voordat wijzigingen zijn toegepast.
Partitiesleutel die de opslag overschrijdt
In dit scenario is het gebruikelijk om fouten te zien, zoals de fouten hier:
Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB
Oplossing
Deze fout betekent dat uw huidige partitioneringsontwerp en workload meer probeert op te slaan dan de toegestane hoeveelheid gegevens voor een bepaalde partitiesleutelwaarde. Er is geen limiet voor het aantal logische partities in uw container, maar de grootte van gegevens die door elke logische partitie kunnen worden opgeslagen, is beperkt. U kunt ondersteuning voor verduidelijking bereiken.
Niet-gegevensbewerkingen zijn niet toegestaan
Dit scenario gebeurt wanneer u niet-gegevensbewerkingen probeert uit te voeren met behulp van Microsoft Entra-identiteiten. In dit scenario is het gebruikelijk om fouten te zien, zoals de fouten hier:
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.
Oplossing
Voer de bewerking uit via Azure Resource Manager, Azure Portal, Azure CLI of Azure PowerShell.
Als u de Azure Functions Azure Cosmos DB-trigger gebruikt, controleert u of de CreateLeaseContainerIfNotExists
eigenschap van de trigger niet is ingesteld op true
. Als u Microsoft Entra-identiteiten gebruikt, worden alle niet-gegevensbewerkingen geblokkeerd, zoals het maken van de leasecontainer.