InvalidQueryParameterValue:状态:400(请求 URI 中指定的查询参数之一的值无效。

InvalidQueryParameterValue : Status: 400 (Value for one of the query parameters specified in the request URI is invalid.)

提问人:Faouzeya 提问时间:11/15/2023 最后编辑:Faouzeya 更新时间:11/16/2023 访问量:95

问:

我正在使用 .net6 实现一个 Azure 函数,该函数连接到 Azure 存储帐户以上传和删除一些文件。 这是我的 Azure 函数:

    [FunctionName("StoragePostFunction")]
    public static async Task<IActionResult> Post(
        [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log)
    {
        string connection = Environment.GetEnvironmentVariable("AzureWebJobsStorage");
        string containerName = Environment.GetEnvironmentVariable("ContainerName");
        Stream myBlob = new MemoryStream();
        var file = req.Form.Files["File"];
        myBlob = file.OpenReadStream();
        var blobClient = new BlobContainerClient(connection, containerName);
        var blob = blobClient.GetBlobClient(file.FileName);
        await blob.UploadAsync(myBlob);
        return new OkObjectResult("file uploaded successfylly");
    }

当我使用 Postman http://localhost:7211/api/StoragePostFunction 在本地测试它时,它工作正常。但是当我发布这个 Azure 函数并使用 postman 对其进行测试时,它给了我这个

error Status: 400 (Value for one of the query parameters specified in the request URI is invalid.)
ErrorCode: InvalidQueryParameterValue

enter image description here

谁能帮我?

.net azure-functions azure-storage

评论

0赞 Gaurav Mantri 11/15/2023
你的变量和环境变量的值是什么?AzureWebJobsStorageContainerName
0赞 Faouzeya 11/15/2023
AzureWebJobsStorage 包含 Azure 存储的连接字符串,ContainerName 包含我创建的容器的名称
0赞 Ikhtesam Afrin 11/15/2023
@Hiba是否可以更改连接字符串的名称,而不是在函数应用中,将有一个具有相同名称的字段,如下所示,该字段负责存储所有函数代码AzureWebJobsStorage
0赞 Ikhtesam Afrin 11/15/2023
@Hiba我能够使用相同的代码上传文件,除了连接字符串、输出之外,无需进行任何修改
0赞 Faouzeya 11/15/2023
@IkhtesamAfrin这很奇怪,因为我仍然有同样的问题!

答:

0赞 Ikhtesam Afrin 11/16/2023 #1

将我的评论转化为答案以帮助社区

将代码发布到函数应用后,需要在“环境变量”边栏选项卡的“应用设置”中添加环境变量,如下所示。

enter image description here

添加环境变量后,我能够获得输出。

enter image description here

请注意,发布到函数应用时不会部署 local.settings 文件,因此需要在应用设置中添加环境变量。