Compartir a través de

诊断和排查 Azure Cosmos DB 中的“错误的请求”异常

适用范围: NoSQL

HTTP 状态代码 400 指示请求包含无效数据或缺少所需的参数。

缺少 ID 属性

在这种情况下,通常会遇到错误:

“输入内容无效,因为缺少必需的属性 ”id; ' - ”

出现此错误的响应意味着发送到服务的 JSON 文档缺少所需的 ID 属性。

解决方案

在您的文档中,根据REST规范指定一个字符串值的id属性,SDK不会自动生成此属性的值。

无效的分区键类型

在这种情况下,通常会看到如下错误:

“分区键...无效”

出现此错误的响应意味着分区键值的类型无效。

解决方案

分区键的值应为字符串或数字。 确保该值符合预期类型。

错误的分区键值

在此方案中,通常会看到以下错误:

“响应状态代码不指示成功:BadRequest (400):子状态:1001”

“从文档中提取的 PartitionKey 与标头中指定的分区键不匹配”

遇到此错误响应表示您正在执行一项操作,并传递与文档中预期属性的正文值不匹配的分区键值。 如果集合的分区键路径为 /myPartitionKey,则文档具有一个名为 myPartitionKey 的属性,其值与调用 SDK 方法时提供的分区键值不匹配。

解决方案

发送与文档属性值匹配的分区键值参数。

数值分区键值精度损失

在这种情况下,通常会看到如下错误:

“请求的分区键超出键范围,可能是因为分区键值的精度丢失”

出现此错误的响应可能是由于对具有数值分区键的文档执行作,其值超出了 Azure Cosmos DB 支持的范围。 有关数值属性值的最大长度,请参阅 每项限制

解决方案

如果需要精确的数值,请考虑对分区键使用类型 string

后续步骤