c# - Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException 在 Azure Function .net 5 中处理 blob 触发器时
问题描述
我有一个用 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" />
并且配置的触发器需要一个 Stream
[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”,我就会收到以下异常
结果:失败异常:Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException:为函数“nicos_nyctrips_ingestion”转换 1 个输入参数时出错:无法将输入参数“myBlob”从“System”类型转换为“System.IO.Stream”类型.ReadOnlyMemory`1[[System.Byte, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'。在 Microsoft.Azure.Functions.Worker.Context.Features.DefaultModelBindingFeature.BindFunctionInput(FunctionContext context) 在 D:\a\1\s\src\DotNetWorker.Core\Context\Features\DefaultModelBindingFeature.cs:Microsoft.Azure 的第 70 行.Functions.Worker.Invocation.DefaultFunctionExecutor.ExecuteAsync(FunctionContext context) 在 D:\a\1\s\src\DotNetWorker.Core\Invocation\DefaultFunctionExecutor.cs:Microsoft.Azure 的第 37 行。
解决方案
如果您只是尝试从文本文件中解析 json,则可以将Stream
输入替换为string
对象。
FunctionContext
另请注意用于 ILogger的配置更改。
[Function("function_name")]
public static async Task Run([BlobTrigger("datatoingest/{filename}", Connection = "STORAGE")] string inputBlob, string filename, FunctionContext context)
{
var logger = context.GetLogger("function_name");
logger.LogInformation($"C# Blob trigger function Processed blob\n Name: {filename} \n Data: {inputBlob}");
var request = JsonConvert.DeserializeObject<MyObject>(inputBlob);
....
}
推荐阅读
- reactjs - 数组中的正确项目并不总是被删除。反应上下文
- javascript - RRWEB 读取记录的事件不起作用
- amazon-web-services - 在 Log Insight 中解析消息
- javascript - 如何在 React-Native 中的 Pressable 中处理 ScrollView?
- vba - 如何创建一系列电子邮件,在文件夹中附加文件,同时限制附加到任何一封电子邮件的文件数量?
- visual-studio - 使用 Visual Studio 2019 16.10 或更高版本构建时,已发布的 Xamarin UWP 应用在启动时崩溃
- google-cloud-platform - Cloud Build 在 Queued 中的工作池中构建
- java - 在一种方法中循环通过 ObjectInputStream 并在主方法中打印整个文件,但遇到 EOF 无法正常工作或出错的问题
- docker - 在加密的 llvm 分区上挂载卷时出现 Docker 权限问题?
- java - Jenkins 上的 Maven 仅从远程仓库中提取