Передайте параметр GET с несколькими значениями / массивом в функцию Azure и используйте его в CosmosDB - PullRequest
0 голосов
/ 23 мая 2018

У меня есть функция Azure (сработала http), которая возвращает документы из CosmosDB (SQL API).

CosmosDB была интегрирована и хорошо работает, когда я определяю SQL QUERY как:

SELECT * FROM c where c.id = {documentID}

когда я запускаю http-запрос со следующим URL-адресом, я получаю документ с идентификатором 1 из базы данных, как и ожидалось.

blub.azure.net / API / myFunc? DocumentID = 1

Теперь я хочу использовать несколько идентификаторов в параметризованном SQL-запросе.Как я должен делать это с Azure.Обычно я ожидаю использовать что-то вроде следующего URL и SQL-запроса, чтобы получить желаемый результат, но он не будет работать:

blub.azure.net / API / myFunc? DocumentIDs = 1 & documentIDs = 2

ВЫБРАТЬ * ОТ c ГДЕ c.id IN ({documentIDs})

ПРИМЕЧАНИЕ: я знаю, что я также могу передать строку json и декодировать ее в функции, но космодбимеет более 15 миллионов записей, и я не могу передать его в функцию, фильтрация должна быть выполнена на стороне SQL.Поэтому мне нужно использовать функцию запроса для предварительной фильтрации, прежде чем она будет привязана к функции.

my function.json:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "documentDB",
      "name": "lastDataPoints",
      "databaseName": "dp-db-04",
      "collectionName": "lastDataPointsCollection",
      "connection": "ldpdbconnectionstring",
      "direction": "in",
      "sqlQuery": "SELECT * FROM c WHERE c.id = {documentID}"
    }
  ],
  "disabled": false
}

1 Ответ

0 голосов
/ 24 мая 2018

Невозможно добавить параметр массива.

"Чтобы предотвратить атаки с использованием инъекций, любая строка привязки, используемая в свойстве SqlQuery, заменяется на SqlParameter перед отправкой в ​​вашу базу данных Document DB".От:

https://github.com/Azure/azure-webjobs-sdk-extensions/blob/4fabead81601aef32f87067dd7cb60bbf86681db/README.md#sql-query-support

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...