azure-functions - Azure 函数(进程外) HTTP 触发 Post 请求 数据限制
问题描述
这是 Azure 功能 4x 的问题(进程外)
我正在尝试使用 HTTP 触发器将超过 4 MB(4096 字节)的数据发布到 Azure 函数。
它正在超时。以下是我在 Azure 函数中的代码
[Function("HttpTriggerCSharp")]
public async Task<HttpResponseData> HttpTriggerCSharp(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req,
FunctionContext executionContext)
{
HttpResponseData response = HttpResponseData.CreateResponse(req);
string requestBody = String.Empty;
using (StreamReader streamReader = new StreamReader(req.Body))
{
requestBody = await streamReader.ReadToEndAsync();
}
return response;
}
我使用 Postman 作为客户端,配置如下:
邮递员配置
4 MB的测试文件
它指的是 100 MB 的限制。请让我知道,我在做什么错误?
上述功能适用于进程中的 Azure 函数 (3x)。
解决方案
Azure Function v4 处于预览模式,不完全支持和批准用于生产用途。此外,它仅支持最新版本的 .NET、Javascript 和 Java。检查此语言支持以获取更多信息。
我们无法直接从 Azure Function 3.x 迁移到 4.x,因为可能需要更改其他应用设置和函数代码。
检查此以获取更多信息How to target Azure Functions 运行时版本。
要解决此问题,请尝试将函数应用从 3.x 迁移到 4.x。要将功能从 3.x 迁移到 4.x,请执行以下两个步骤:
使用以下 Azure CLI 命令将
FUNCTIONS_EXTENSION_VERSION
应用程序设置设置为:~4
az functionapp config appsettings set --settings FUNCTIONS_EXTENSION_VERSION=~4 -n <APP_NAME> -g <RESOURCE_GROUP_NAME>
对于 Windows 函数应用,运行时需要使用以下 Azure CLI 命令启用 .NET 6.0:
az functionapp config set --net-framework-version v6.0 -n <APP_NAME> -g <RESOURCE_GROUP_NAME>
请注意,Azure Functions 4.x 强制执行扩展的最低版本要求。而 Azure Functions 4.x 要求Microsoft.NET.Sdk.Functions
扩展名至少为4.0.0
.
无论函数应用超时设置如何,230 秒都是 HTTP 触发函数响应请求所需的最长时间。如果超过此值,则会出现超时错误。
查看此函数应用超时持续时间文档以获取更多信息。
推荐阅读
- javascript - Webpack 解析别名并在该别名下编译文件
- string - 如何将三个句子的列表制作成一个字符串?
- python - 加快 Cython 中的 numpy 调用
- c# - 在 Windows 服务上使用单例上下文会更好吗?
- netlogo - 墙壁(使用补丁)可以用 Netlogo 中的线段表示吗?
- spring-boot - 将多条路径映射到单个 Zuul 路由
- javascript - 无法读取 React Redux 中未定义的属性“映射”?
- java - Intellij JBoss - 初始堆大小设置为大于最大堆大小的值
- google-chrome - Chrome 随机使用不同版本的 HTTP
- python - 来自 sklearn 的 OneHotEncoder 在传递类别时会给出 ValueError