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 bovenstaande 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 door de volgende documentatie te volgen.
- Openbaar internet: IP-firewall configureren in Azure Cosmos DB.
- Service-eindpunt: toegang tot Azure Cosmos DB configureren vanuit virtuele netwerken (VNet). Als u bijvoorbeeld verwacht een service-eindpunt te gebruiken, maar de aanvraag via openbaar internet naar Azure Cosmos DB is verzonden, heeft het subnet waarin de client werd uitgevoerd, mogelijk geen service-eindpunt naar Azure Cosmos DB ingeschakeld.
- Privé-eindpunt: Azure Private Link configureren voor een Azure Cosmos DB-account. Als u bijvoorbeeld verwacht dat u een privé-eindpunt gebruikt, maar dat de aanvraag via openbaar internet naar Azure Cosmos DB is verzonden, is de DNS op de VIRTUELE machine mogelijk niet geconfigureerd om het accounteindpunt om te zetten in het privé-IP-adres, zodat het in plaats daarvan het openbare IP-adres van het account heeft doorlopen.
- 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 VNET-filterconfiguraties van het account.
- Privé-eindpunt: controleer de configuratie van het privé-eindpunt van het account en de privé-DNS-configuratie van de client. Dit kan het gevolg zijn van 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 hieronder:
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 treedt op wanneer u probeert niet-gegevensbewerkingen uit te voeren met behulp van Microsoft Entra-identiteiten. In dit scenario is het gebruikelijk om fouten te zien, zoals hieronder:
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.
Volgende stappen
- IP-firewall configureren.
- Toegang vanuit virtuele netwerken configureren.
- Configureer toegang vanaf privé-eindpunten.