首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Azure Functions 2.x中使用查询字符串的sqlQuery?

在Azure Functions 2.x中使用查询字符串的sqlQuery?
EN

Stack Overflow用户
提问于 2018-12-12 01:26:38
回答 1查看 1.1K关注 0票数 1

我在Function 1.x中有一个应用程序,它从查询字符串中获取objId,查询CosmosDb (输入绑定),然后做剩下的工作。但是,我正在将它迁移到v2中,并且它不像以前那样工作:它只在路由模板中提供objId时才查询数据库,而不是在objId作为查询字符串提供时查询数据库(在v1中,即使它作为查询字符串提供,它也可以工作)。即使我的function.json几乎一样。您能告诉我出了什么问题吗?如何使输入绑定通过查询字符串执行sql查询?

以下是我的function.json的内容:

代码语言:javascript
复制
{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "cosmosDB",
      "name": "obj",
      "databaseName": "mydb",
      "collectionName": "objects",
      "sqlQuery": "SELECT * FROM c where c.id = {objId}",
      "connectionStringSetting": "mydbstring",
      "direction": "in"
    }
  ],
  "disabled": false
}

下面是我的函数代码

代码语言:javascript
复制
const client = new CosmosClient({
  endpoint: endpoint,
  auth: {
    masterKey: masterKey
  }
});

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

下面是我的proxies.json的内容:

代码语言:javascript
复制
{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "Set Object state Id Proxy": {
            "matchCondition": {
                "route": "/obj/{objId}/state",
                "methods": [
                    "GET"
                ]
            },
            "backendUri": "http://localhost:7071/api/setobjstate?objId={objId}"

        }
}

它是这样工作的:

代码语言:javascript
复制
http://localhost:7071/games/bbbbb

但是我怎么才能让它这样工作呢?

代码语言:javascript
复制
http://localhost:7071/games?objId=bbbbbbbbb
EN

回答 1

Stack Overflow用户

发布于 2018-12-12 04:12:15

根据文档,查询值似乎与路由数据不同,不能传递给sql查询。

https://docs.microsoft.com/en-in/azure/azure-functions/functions-bindings-cosmosdb-v2#http-trigger-get-multiple-docs-using-sqlquery-c

下面的示例显示了一个检索单个文档的C#函数。该函数由使用路由数据指定要查找的ID的HTTP请求触发。该ID用于从指定的数据库和集合中检索ToDoItem文档

该示例说明如何在SqlQuery参数中使用绑定表达式。您可以将路由数据传递给SqlQuery参数,如下所示,但当前不能传递查询字符串值。

===

但是,如果您只需要按Id检索文档,您似乎可以在function.json中将"sqlQuery":"SELECT * FROM c where c.id = {objId}“替换为"Id":"{Query.id}”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53729305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档