Azure ScheduleNewOrchestrationInstanceAsync -输入大小

laawzig2  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(125)

我的任务是创建API Azure函数,用于将文件上传到Blob存储容器。文件是base64格式的,通过POST方法传递给函数,函数体内部是json格式的,有更多的参数需要上传。
简单的工作流程是:
1.调用方调用HTTP触发器(异步持久函数)。
1.函数将调度新的业务流程示例。
1.示例将调用Activity Trigger进行上载
但是当我试图上传大于4 Mb的文件时,我得到这个错误:

Exception: System.AggregateException: One or more errors occurred. (Status(StatusCode="ResourceExhausted", Detail="Received message larger than max (5876735 vs. 4194304)"))
[2023-07-10T12:41:01.044Z]  ---> Grpc.Core.RpcException: Status(StatusCode="ResourceExhausted", Detail="Received message larger than max (5876735 vs. 4194304)")
[2023-07-10T12:41:01.046Z]    at Microsoft.DurableTask.Client.Grpc.GrpcDurableTaskClient.ScheduleNewOrchestrationInstanceAsync(TaskName orchestratorName, Object input, StartOrchestrationOptions options, CancellationToken cancellation)

字符串
更具体地说,这是大文件失败的代码部分:

// Function input comes from the request content.
StartOrchestrationOptions options = new StartOrchestrationOptions {InstanceId = CorreliationId};
instanceId = await client.ScheduleNewOrchestrationInstanceAsync(nameof(UploadFileOrchestrator), requestBody, options);

requestBody是json,里面有file,所以是Instance * Input。错误告诉我,Input数据不能大于4Mb。如何绕过此问题并增加maxinputsize?

我找不到任何有关orchestrator输入大小的文档。

ojsjcaue

ojsjcaue1#

我相信这是.NET隔离的持久函数内部使用的默认limit for the gRPC Server
您可以使用不应该有此限制的进程内模型或使用claim check pattern(持久函数通常也使用)来解决此问题。
另外,open a bug on the GitHub repo可以解决这个问题。

相关问题