0

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

Azure 函数 v3 (.net5)

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

4

1 回答 1

0

要将 .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

注意:我们最后只需要安装一个运行时版本。

更新.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

于 2022-01-24T11:57:01.297 回答