【问题标题】:Logic App - PartitionKey extracted from document doesn't match the one specified in the header逻辑应用 - 从文档中提取的 PartitionKey 与标题中指定的不匹配
【发布时间】:2019-01-30 23:37:41
【问题描述】:

我在 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'] 似乎有效。

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    不要忘记在 Post 请求中添加Content-Type: application/json。(在此thread 中提到)

    Cosmos DB 连接器:

    发布请求:

    输出:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        答案是逻辑应用不支持 Mongo API。是的,有一种解决方法,因为逻辑应用程序可以将数据从一个端点传递到无服务器函数,然后写入 Mongo。

        Problems inserting document with Mongodb and Logic Apps

        【讨论】:

        • 问题没有提到Mongo。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-09
        • 2016-03-18
        • 2015-06-27
        相关资源
        最近更新 更多