从 Azure 函数 .net6(函数 v4)获取绑定数据

Getting Bindingdata from Azure function .net6 (function v4)

在 dotnet5(函数 v3)中,我们可以通过调用 functionContext.BindingContext.BindingData.TryGetValue("Metadata", out var meta) 从 FunctionContext 中获取元数据; 但是 dotnet 6 (v4) 似乎没有这个选项。

Azure function v3 (.net5)

任何人都可以通过为新的 dotnet 6 (v4) 函数提供正确的实现来帮助我

要将 .net6 与 Function V4 一起使用,我们需要 VS 2022 环境或 VS CODE。

我已经尝试使用一个简单的 blobtrigger azure 函数 运行 .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 CODE 并使用 .net 6 和函数运行时版本将 .csproj 文件更新为 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

输出:-

更多信息请参考以下链接:

博客: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