如何通过Azure存储过程提供分区键

时间:2018-10-15 20:28:59

标签: azure stored-procedures azure-cosmosdb

我正在使用Azure Cosmos DB中的存储过程API,但是我正在获取消息

{
"code": "BadRequest",
"message": "Message: {\"Errors\":[\"PartitionKey extracted from document doesn't match the one specified in the header\"]}\r\nActivityId: afd48989-60b5-489d-95ce-e999fc5561c9, Request URI: /apps/497cb807-5f70-43d9-a68c-a742815f6016/services/fae8a265-85a1-4d9b-904e-7a996901d928/partitions/ecdbf51b-d1f2-46d4-8b42-9ddbbf39aa1a/replicas/131818407837945845p, RequestStats: \r\nRequestStartTime: 2018-10-15T18:08:20.5929270Z, Number of regions attempted: 1\r\n, SDK: Microsoft.Azure.Documents.Common/2.1.0.0"
}

我知道 我需要提供分区键,但是我不确定如何。在体内吗作为标题提供?我没有在邮递员中尝试过这两种方法。使用Postman,您将如何格式化将分区密钥发送到存储过程的请求?

我尝试过的示例(针对POST请求)

  1. 尝试添加名为“ PartitionKey”的标头,其值为51。

  2. 尝试发送带有原始裸露分区键["51"]的数组,因为该正文应该包含参数数组。

  3. 尝试了以下原始json正文

    {
        "PartitionKey": "51"
    } 
    

1 个答案:

答案 0 :(得分:2)

基于宇宙数据库Common REST request headers,您需要使用x-ms-documentdb-partitionkey参数指定分区键。

{x-ms-documentdb-partitionkey : '51',...}

希望它对您有帮助。