gpt4 book ai didi

azure - 使用 DocumentDB(客户端库)在本地测试 Azure Functions,并针对 1.13.2 到 1.17.0 接收 'Invalid API version'

转载 作者:行者123 更新时间:2023-12-02 07:28:24 26 4
gpt4 key购买 nike

我正在使用 VS2017(预览版 7.1)在本地测试 Azure Functions。该函数使用模拟器 (1.11.136.2) 在本地写入 DocumentDB,并且在使用 Microsoft.Azure.DocumentDB 1.13.1 时一切正常。一旦我升级到任何较新的版本(1.13.2 到 1.17.0),我就会收到以下错误:

Invalid API version. Ensure a valid x-ms-version header value is passed.

从 Postman 调用该函数时,我添加了一个 x-ms-version: 2017-02-22 header ,但我怀疑这只是 REST API 所必需的。

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System;
using System.Configuration;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace AzureFunction
{
public static class Function1
{

private static readonly ConnectionPolicy connectionPolicy =
new ConnectionPolicy
{
UserAgentSuffix = " tilt",
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
EnableEndpointDiscovery = false,
};

[FunctionName("FunctionApp")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "func/app")]HttpRequestMessage req, TraceWriter log)
{

string setting = ConfigurationManager.AppSettings["DOCUMENTDB"];

string databaseName = "test1";

Tuple<Uri, string> conn = Connection(setting);
using (var client = new DocumentClient(conn.Item1, conn.Item2, connectionPolicy))
{

// error thrown at next line
await client.CreateDatabaseIfNotExistsAsync(new Database { Id = databaseName });
}

return req.CreateResponse(HttpStatusCode.OK);

}

static Tuple<Uri, string> Connection(string configSetting)
{
string[] setting = configSetting.Split(';');
string endpoint = setting[0].Split('=')[1];
string key = setting[1].Split('=')[1] + "==";
var t = new Tuple<Uri, string>(new Uri(endpoint), key);
return t;
}
}
}

我可以继续使用 1.13.1,但我想开始使用与此版本不兼容的 Graph DB。

为什么我在客户端库中收到此错误,为什么仅从版本 1.13.2 开始?

最佳答案

事实证明模拟器版本不正确。对于 Microsoft.Azure.DocumentDB 1.14.0 及更高版本,需要 Azure DocumentDB Emulator 1.13.58.2,我从此处安装 https://chocolatey.org/packages/azure-documentdb-emulator .

似乎是这个网站https://learn.microsoft.com/en-us/azure/cosmos-db/local-emulator指向旧版本。

关于azure - 使用 DocumentDB(客户端库)在本地测试 Azure Functions,并针对 1.13.2 到 1.17.0 接收 'Invalid API version',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com