Встроенные функции SQL-запроса Azure

#azure-functions

#azure-функции

Вопрос:

Привет, я использую функции Azure в привязках SQL-запросов к cosmos DB. В SQL-запросе я использую предложение IN, но у меня возникает проблема,

 "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get",
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "cosmosDB",
      "name": "inputDocument",
      "databaseName": "DatabaseName",
      "collectionName": "CollectionName",
      "connectionStringSetting": "cosmosDBConnection",
      "partitionKey": "/PartitionKey",
      "sqlQuery": "SELECT * FROM c WHERE c.email IN {emailList}",
      "direction": "in"
    }
]

 

Я использую параметр запроса в URL как

 https://function-app.azurewebsites.net/api/TestFunction?emailList=("email1","email2")
https://function-app.azurewebsites.net/api/TestFunction?emailList=["email1","email2"] (test)
https://function-app.azurewebsites.net/api/TestFunction?emailList=(email1,email2)     (test)
 

Но я получаю ошибку в ответе, который

 "message":"Syntax error, incorrect syntax near '@emailList'"
 

Я использую функцию HTTP Javascript,

 module.exports = async function (context, req) {

    var inputDocument = context.bindings.inputDocument
    
    inputDocument.forEach(function(user) {
    context.log(user.email);
    });
    

    
    //context.bindings.userOutputDocument = inputDocument



    context.res = {
        // status: 200, /* Defaults to 200 */
        body: "Ok",
    };
};
 

В противном случае мне придется получать все документы из базы данных, что влияет на временную сложность.
С уважением,

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

1. пожалуйста, также опубликуйте конфигурацию вашего httpTrigger

2. Я публикую javascript-функцию и полный файл JSON, пожалуйста, дайте мне знать, если вы хотите что-нибудь еще,

Ответ №1:

Возможно, вам придется включить это route поле в конфигурацию httpTrigger, как описано здесь: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=javascript#customize-the-http-endpoint

Тогда вы сможете использовать email параметр в своей привязке (см. Здесь, Например).

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

1. спасибо, позвольте мне протестировать его, но route могу ли я получать документы из массива. Моя проблема заключается в получении только документов, которые находятся в массиве или списке параметров запроса.