c# - 在 Azure Function .net 5 中处理 blob 触发器时出现 Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException

标签 c# azure .net-core azure-functions

我有一个用 C#、.Net 5 编写的 Az 函数,配置了如下的 blob 触发器:

<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage" Version="4.0.4" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.0.1" OutputItemType="Analyzer" />
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.0.0" />

并且触发器配置为期望流

 [Function("function_name")]
    public static async Task Run([BlobTrigger("datatoingest/{name}", Connection = "STORAGE")] Stream myBlob, string name,
        ILogger logger)

如果我在本地部署它或调试它,一旦它触发并检测到一个新的 blob,我就会收到以下异常,指出它无法将其从类型“System.ReadOnlyMemory<”转换为类型“System.IO.Stream”/p>

Result: Failure Exception: Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException: Error converting 1 input parameters for Function 'nicos_nyctrips_ingestion': Cannot convert input parameter 'myBlob' to type 'System.IO.Stream' from type 'System.ReadOnlyMemory`1[[System.Byte, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'. at Microsoft.Azure.Functions.Worker.Context.Features.DefaultModelBindingFeature.BindFunctionInput(FunctionContext context) in D:\a\1\s\src\DotNetWorker.Core\Context\Features\DefaultModelBindingFeature.cs:line 70 at Microsoft.Azure.Functions.Worker.Invocation.DefaultFunctionExecutor.ExecuteAsync(FunctionContext context) in D:\a\1\s\src\DotNetWorker.Core\Invocation\DefaultFunctionExecutor.cs:line 37 at Microsoft.Azure.Functions.Worker.OutputBindings.OutputBindingsMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\1\s\src\DotNetWorker.Core\OutputBindings\OutputBindingsMiddleware.cs:line 13 at Microsoft.Azure.Functions.Worker.GrpcWorker.InvocationRequestHandlerAsync(InvocationRequest request, IFunctionsApplication application, IInvocationFeaturesFactory invocationFeaturesFactory, ObjectSerializer serializer, IOutputBindingsInfoProvider outputBindingsInfoProvider) in D:\a\1\s\src\DotNetWorker.Grpc\GrpcWorker.cs:line 169 Stack: at Microsoft.Azure.Functions.Worker.Context.Features.DefaultModelBindingFeature.BindFunctionInput(FunctionContext context) in D:\a\1\s\src\DotNetWorker.Core\Context\Features\DefaultModelBindingFeature.cs:line 70 at Microsoft.Azure.Functions.Worker.Invocation.DefaultFunctionExecutor.ExecuteAsync(FunctionContext context) in D:\a\1\s\src\DotNetWorker.Core\Invocation\DefaultFunctionExecutor.cs:line 37 at Microsoft.Azure.Functions.Worker.OutputBindings.OutputBindingsMiddleware.Invoke(FunctionContext context, FunctionExecutionDelegate next) in D:\a\1\s\src\DotNetWorker.Core\OutputBindings\OutputBindingsMiddleware.cs:line 13 at Microsoft.Azure.Functions.Worker.GrpcWorker.InvocationRequestHandlerAsync(InvocationRequest request, IFunctionsApplication application, IInvocationFeaturesFactory invocationFeaturesFactory, ObjectSerializer serializer, IOutputBindingsInfoProvider outputBindingsInfoProvider) in D:\a\1\s\src\DotNetWorker.Grpc\GrpcWorker.cs:line 169

最佳答案

基于github PG组对此问题的回答here

That's a limitation of the worker bindings today. We have plans to address that in upcoming releases, but don't have an ETA I can share at this point.

在同一行中提到了以下内容:

It works changing stream to byte[]. At least as a workaround.

关于c# - 在 Azure Function .net 5 中处理 blob 触发器时出现 Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67067135/

相关文章:

c# - 多个资源的 Monitor.TryEnter

c# - 如何在 Moq 中使用 lambda 语法设置现有模拟?

c# - Windows Azure 角色内缓存 - 警告 : <SimpleSendReceiveModule> DeadServerCallback Called

c# - 检索项目 : No resource found that matches the given name 'ThemeOverlay.AppCompat.Light' 的父项时出错

c# - EF 5 启用迁移 : No context type was found in the assembly

azure - 从其自己的运行实例重新启动 Azure Web 角色实例

Azure 实例元数据服务

c# - 使用 Docker 构建应用程序时打开控制台窗口

dependency-injection - .NET Core 依赖注入(inject)实例何时被释放?

c# - 如何在不使用依赖注入(inject)的情况下实例化 ILoggerFactory?