У меня есть функция 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
}