在 dotnet5 (function v3) 中,我们可以通过调用 functionContext.BindingContext.BindingData.TryGetValue("Metadata", out var meta); 从 FunctionContext 中获取元数据。但是 dotnet 6 (v4) 似乎没有这个选项。
任何人都可以通过为新的 dotnet 6 (v4) 功能提供正确的实现来帮助我吗
在 dotnet5 (function v3) 中,我们可以通过调用 functionContext.BindingContext.BindingData.TryGetValue("Metadata", out var meta); 从 FunctionContext 中获取元数据。但是 dotnet 6 (v4) 似乎没有这个选项。
任何人都可以通过为新的 dotnet 6 (v4) 功能提供正确的实现来帮助我吗
要将 .net6 与 Function V4 一起使用,我们需要 VS 2022 环境或 VS CODE。
我尝试过使用.net 5 运行的一个简单的 blobtrigger azure 函数,它可以很好地获取元数据。
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 CODE 并使用 .net 6 和函数运行时版本更新 .csproj 文件到 V4
Install Function runtime 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 并将函数运行时更新为 V4,然后保存。
然后使用如下命令:
1- dotnet restore
2- dotnet build
3- func host start
有关更多信息,请参阅以下链接:
博客 :Migration from Asp.Net Core 5.0 to 6.0
女士问答:Migrating Auzre Function runtime version from 3.x to 4.x not working in VS 2019