Приложение логики - извлеченный из документа PartitionKey не соответствует указанному в заголовке - PullRequest
0 голосов
/ 31 января 2019

Я столкнулся с этой ошибкой при создании приложения логики в Azure.Решение этого DocumentDB REST API: PartitionKey, извлеченный из документа, не совпадает не работает.

Моё логическое приложение получает запрос POST с необработанными данными JSON и затем отправляет его на шаг Cosmos «Создание или обновление документа».Там я могу указать свою БД, и для моих входов у меня есть body и headers примерно так:

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

Мои данные JSON выглядят так:

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

В выводе об ошибке он буквально показывает мой PartitionKey как 20190106, поэтому @triggerBody()?['date'], похоже, сработал.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Если в качестве ключа раздела используется дата, попробуйте передать значение даты [«20190106"] (используйте квадратные скобки) в заголовке ключа раздела. Это сработало у меня 2 дня назад с использованием Rest API для CosmoDb.

0 голосов
/ 31 января 2019

Ответ заключается в том, что приложения логики не поддерживают API Mongo.Да, есть обходной путь, поскольку в приложении логики можно передавать данные из одной конечной точки в безсерверную функцию, которая затем записывает в Mongo.

Проблемы со вставкой документа в Mongodb и приложениях Logic

0 голосов
/ 31 января 2019

Не забудьте добавить Content-Type: application/json в запросе Post (упоминается в этой теме )

Соединитель Cosmos DB:

enter image description here

Почтовый запрос:

enter image description here

Выход:

enter image description here

...