在functionContext.BindingContext.BindingData.TryGetValue("Metadata",(function v3)中,我们可以通过调用FunctionContext out var meta从FunctionContext获取元数据;但是dotnet 6 (v4)似乎没有此选项。
有人能通过为新的dotnet 6 (v4)函数提供正确的实现来帮助我吗?
发布于 2022-01-24 11:57:01
要将.net6与函数V4结合使用,我们需要VS 2022环境或VS代码。
我尝试过使用一个简单的bob触发器天蓝色函数来运行.net 5,它可以很好地获取元数据。
using System;
using System.IO;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace testfuncapp
{
public static class Function1
{
[Function("Function1")]
public static void Run([BlobTrigger("test/{name}", Connection = "AzureWebJobsStorage")] string myBlob, string name,
FunctionContext context)
{
var logger = context.GetLogger("Function1");
logger.LogInformation($"C# Blob trigger function Processed blob\n Name: {name} \n Data: {myBlob}");
}
}
}输出:-

与我们在.net 6环境中尝试过的代码相同,它的工作原理也很好。
要做到这一点,打开VS代码并使用.csproj 6和函数运行时版本更新.net文件到V4
注意:我们只需要在最后安装一个运行时版本。
更新.csproj文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage" Version="4.0.4" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.2.0" OutputItemType="Analyzer" />
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.5.2" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>并将settings.json文件更新为.net 6,函数运行时更新为V4,然后保存它。

然后使用下面的命令:
1- dotnet restore
2- dotnet build
3- func host start输出:-



欲了解更多信息,请参考以下链接:
https://stackoverflow.com/questions/70786908
复制相似问题