我最近将 CosmosDB 连接到虚拟网络,但这样做后,我在尝试执行正常有效的操作时遇到了错误:
Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: Forbidden (403); Substatus: 0;
RequestUri: https://xxxxx.sqlx.cosmos.azure.com/
我将连接字符串更改为使用documents.azure.com,并且禁止的错误消失了 - 此时,CosmosDB 现在正在虚拟网络上工作。但是,通过更改连接字符串,我失去了与专用网关的连接。我想继续使用专用网关,但 403 错误目前阻止了这一点。
我发现的唯一线索是这篇过时的帖子(https://github.com/MicrosoftDocs/azure-docs/issues/83467)提到了专用网关和虚拟网络不能一起使用的限制,但是此后限制已从官方文档中删除(https://learn.microsoft.com/en-us/azure/cosmos-db/dedicated-gateway#limitations)。此限制是否仍然有效,这就是我不能同时使用两者的原因吗?或者可能是别的什么?
CosmosDB - 由于 403 错误,无法将专用网关与虚拟网络一起使用。
您提到的观点是正确的,根据最新的Microsoftdoc,某些数据库集的限制已取消。
您提到的拦截器
Forbidden (403)
会在多种情况下出现,例如它取决于网络安全规则、专用端点 DNS 解析(如果您使用的是专用端点)、防火墙规则等。
您提到您使用
documents.azure.com
解决了 403 错误,但通过更改连接字符串,您需要确保新连接字符串的格式正确。
AccountEndpoint=https://<your-account-name>.sqlx.cosmos.azure.com:443/;AccountKey=<your-account-key>;
正如最新文档提到的,限制已被删除,最终问题似乎出在连接字符串上,并验证是否为您的 CosmosDB 帐户启用了专用网关。
参考: