我有一个带有CosmosDB输出绑定的http-trigger和一个最简单的函数,如下所示。
public static class AddRequest
{
[FunctionName("AddRequest")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log, [CosmosDB(
databaseName: "haveThatDB",
collectionName: "Requests",
ConnectionStringSetting = "MongoDBEndPoint",CreateIfNotExists =true)] IAsyncCollector<Request> requestOutput
)
{
string jsonContent = await req.ReadAsStringAsync();
dynamic data = JsonConvert.DeserializeObject(jsonContent);
await requestOutput.AddAsync(data);
return req != null
? (ActionResult)new OkObjectResult($"Hello, ras")
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
}
执行死机时出现错误
异常绑定参数“ requestOutput”。 System.Private.CoreLib:输入不是有效的Base-64字符串,因为它包含非Base 64字符,两个以上的填充字符或填充字符中的非法字符
我正在使用天蓝色函数的V2。
我发现移除输出绑定是可行的。因此,看起来此输出绑定已完成。local.settings内容如下
{ “已加密”:false, “值”:{ “ AzureWebJobsStorage”:“ UseDevelopmentStorage = true”, “ FUNCTIONS_WORKER_RUNTIME”:“ dotnet”, “ MongoDBEndPoint”:“ AccountEndpoint = https://abc.documents.azure.com:10255;AccountKey=xxxxxxxxxxxxyyyyyyyyzzzzzzz”, “ MongoDBName”:“ haveThatDB” } }
任何帮助将不胜感激。
答案 0 :(得分:1)
Azure Cosmos DB绑定仅支持与SQL API一起使用。对于所有其他Azure Cosmos DB API,应使用API的静态客户端从函数访问数据库,包括API的静态客户端,包括MongoDB API,Cassandra API,Gremlin API和Table API。 Supported APIs