Azure函数未给出有效的Base-64字符串错误

时间:2018-10-15 18:08:48

标签: azure azure-functions azure-cosmosdb

我有一个带有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字符,两个以上的填充字符或填充字符中的非法字符

enter image description here

我正在使用天蓝色函数的V2。

我发现移除输出绑定是可行的。因此,看起来此输出绑定已完成。

local.settings内容如下

  

{     “已加密”:false,     “值”:{       “ AzureWebJobsStorage”:“ UseDevelopmentStorage = true”,       “ FUNCTIONS_WORKER_RUNTIME”:“ dotnet”,     “ MongoDBEndPoint”:“ AccountEndpoint = https://abc.documents.azure.com:10255;AccountKey=xxxxxxxxxxxxyyyyyyyyzzzzzzz”,       “ MongoDBName”:“ haveThatDB”     }   }

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

Azure Cosmos DB绑定仅支持与SQL API一起使用。对于所有其他Azure Cosmos DB API,应使用API​​的静态客户端从函数访问数据库,包括API的静态客户端,包括MongoDB API,Cassandra API,Gremlin API和Table API。 Supported APIs

Azure Cosmos DB bindings for Azure Functions 2.x

相关问题