逻辑应用-从文档中提取的PartitionKey与标头中指定的不匹配

时间:2019-01-30 23:37:42

标签: azure azure-cosmosdb azure-logic-apps

在Azure中构建逻辑应用程序时遇到了此错误。此DocumentDB REST API: PartitionKey extracted from document doesn't match的解决方案无效。

我的逻辑应用程序收到带有原始JSON数据的POST请求,然后将其发送到Cosmos“创建或更新文档”步骤。在这里,我可以指定数据库,并在输入中输入bodyheaders,如下所示:

...
"inputs": {
   "body": "@triggerBody()",
   "headers": {
      "x-ms-documentdb-partitionkey": "@triggerBody()?['date']"
   },
   ...
}
...

我的JSON数据如下:

{
  "id": "20190106",
  "date": "20190106",
  ...
}

在错误输出中,它实际上将我的PartitionKey显示为20190106,因此@triggerBody()?['date']似乎起作用了。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

别忘了在发布请求中添加Content-Type: application/json。(在此thread中提到)

Cosmos DB连接器:

enter image description here

发布请求:

enter image description here

输出:

enter image description here

答案 1 :(得分:0)

如果您的分区键是日期,则尝试在分区键标题中传递日期[“ 20190106”]的值(使用方括号)。这在2天前使用用于CosmoDb的Rest API对我有效。

答案 2 :(得分:0)

答案是Logic Apps不支持Mongo API。是的,有一种解决方法,因为在Logic App中,可以将数据从一个端点传递到无服务器功能,然后将其写入Mongo。

Problems inserting document with Mongodb and Logic Apps