使用Azure函数触发http,使用基于http请求的ID输入DocumentDB

使用Azure函数触发http,使用基于http请求的ID输入DocumentDB,azure,azure-functions,Azure,Azure Functions,因此,我从中了解到,我应该能够: 触发HTTP 输入Http请求 输入文档数据库 输出文档数据库 数字1、2和4正在工作。但是,如何从DocumentDB中获取具有路径ID的文档 我可以在DocumentDb输入中使用代理路由中的{path} 我有一个这样定义的代理 { "$schema": "http://json.schemastore.org/proxies", "proxies": { "index": { "matchCondit

因此,我从中了解到,我应该能够:

  • 触发HTTP
  • 输入Http请求
  • 输入文档数据库
  • 输出文档数据库
  • 数字1、2和4正在工作。但是,如何从DocumentDB中获取具有路径ID的文档

    我可以在DocumentDb输入中使用代理路由中的
    {path}

    我有一个这样定义的代理

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "index": {
                "matchCondition": {
                    "route": "{*path}",
                    "methods": [
                        "GET"
                    ]
                },
                "backendUri": "https://%WEBSITE_SITE_NAME%.azurewebsites.net/api/Index"
            },
            "api": {
                "matchCondition": {
                    "route": "api/{*path}"
                },
                "backendUri": "https://%WEBSITE_SITE_NAME%.azurewebsites.net/api/{path}"
            },
            "index existing subscription": {
                "matchCondition": {
                    "route": "/subscription/{*path}",
                    "methods": [
                        "GET"
                    ]
                },
                "backendUri": "https://%WEBSITE_SITE_NAME%.azurewebsites.net/api/IndexSubscription/{path}"
            }
        }
    }
    

    下面是一个具有文档DB输入绑定的函数示例

    function.json

    {
    “绑定”:[
    {
    “authLevel”:“函数”,
    “名称”:“请求”,
    “类型”:“httpTrigger”,
    “方向”:“在”,
    “路由”:“MyDocFunc/{docid}”
    },
    {
    “类型”:“documentDB”,
    “名称”:“输入文档”,
    “数据库名称”:“MyDocDB”,
    “collectionName”:“MyCollection”,
    “id”:“{docid}”,
    “连接”:“mydocdb\u DOCUMENTDB”,
    “方向”:“in”
    },
    {
    “名称”:“$return”,
    “类型”:“http”,
    “方向”:“向外”
    }
    ],
    “禁用”:错误
    }
    
    csx

    公共静态异步任务运行(
    HttpRequestMessage请求、字符串docid、字符串inputDocument)
    {
    返回请求CreateResponse(HttpStatusCode.OK,inputDocument);
    }
    

    代理的使用并没有太大影响。。。您可以将代理参数传递给函数参数。

    下面是一个具有文档DB输入绑定的函数示例

    function.json

    {
    “绑定”:[
    {
    “authLevel”:“函数”,
    “名称”:“请求”,
    “类型”:“httpTrigger”,
    “方向”:“在”,
    “路由”:“MyDocFunc/{docid}”
    },
    {
    “类型”:“documentDB”,
    “名称”:“输入文档”,
    “数据库名称”:“MyDocDB”,
    “collectionName”:“MyCollection”,
    “id”:“{docid}”,
    “连接”:“mydocdb\u DOCUMENTDB”,
    “方向”:“in”
    },
    {
    “名称”:“$return”,
    “类型”:“http”,
    “方向”:“向外”
    }
    ],
    “禁用”:错误
    }
    
    csx

    公共静态异步任务运行(
    HttpRequestMessage请求、字符串docid、字符串inputDocument)
    {
    返回请求CreateResponse(HttpStatusCode.OK,inputDocument);
    }
    

    代理的使用并没有太大影响。。。您可以将代理参数传递给函数参数。

    因此,我应该使用
    {path}
    而不是
    {path}
    这就是所有的区别?@Highmastdon
    *
    匹配所有剩余的路径段。不确定为什么要将其用于文档ID,但代理中的
    *
    也不会有什么坏处。你有什么特别的问题吗?所以我应该使用
    {path}
    而不是
    {path}
    这就是所有的区别吗?@Highmastdon
    *
    匹配所有剩余的路径段。不确定为什么要将其用于文档ID,但代理中的
    *
    也不会有什么坏处。你有什么特别的问题吗?