Работа с межсекционными запросами Azure Cosmos DB в REST API

#azure #rest #azure-cosmosdb #azure-cosmosdb-sqlapi

#azure #rest #azure-cosmosdb #azure-cosmosdb-sqlapi

Вопрос:

Я общаюсь с Cosmos DB через (SQL) REST API, поэтому существующие вопросы, относящиеся к различным SDK, имеют ограниченное применение.

Когда я запускаю простой запрос в разделенном контейнере, например

 select value count(1) from foo
  

Я столкнулся с ошибкой HTTP 400:

Предоставленный межсекционный запрос не может быть обработан напрямую шлюзом. Это первое случайное (внутреннее) исключение, с которым все новые клиенты будут знать, как корректно обращаться. Это исключение отслеживается, но если вы не видите, что оно отображается как исключение (что происходит только на старых клиентах SDK), вы можете спокойно игнорировать это сообщение.

Как я могу избавиться от этой ошибки? Нужно ли запускать отдельные запросы по ключу раздела? Если да, должен ли я отслеживать, каковы существующие значения ключей?

Комментарии:

1. Просто любопытно — вы установили x-ms-documentdb-query-enablecrosspartition значение True в заголовке запроса?

2. @DavidMakogon да, я это сделал; это ничего не изменило. Единственное исправление, которое я смог найти, — это установка x-ms-documentdb-partitionkey и повторение запроса для каждого значения ключа.