Azure Functions BlobTrigger 属性绑定问题

Azure Functions BlobTrigger Properties Binding Problem

我正在尝试创建一个 Azure 函数,它使用 BlobTrigger 来操作一些文件,然后将它们保存回 blob。

为此,我希望能够访问 BlobProperties 对象来检查文件的 Content-Type,以确保我的操作例程支持它。

根据我的理解article,我应该能够简单地在名为 Properties 的方法上添加一个参数,该方法的类型为 BlobProperties 我可以确认这适用于列出的其他元数据类型。

但是,每当我添加属性时,我的应用程序都无法运行并报告以下错误:

The 'Function1' function is in error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Function1'. Microsoft.Azure.WebJobs.Host: Can't bind parameter 'Properties' to type 'Microsoft.WindowsAzure.Storage.Blob.BlobProperties'.

我做错了什么?以下是我的方法:

public static void Run([BlobTrigger("TestContainer/{name}", Connection = "AzureWebJobsStorage")] Stream inputFile,
        string name, string BlobTrigger, IDictionary<string, string> Metadata, ILogger log, BlobProperties Properties)

我的目标框架是.NET Core 3.1,Azure Functions 版本是v3。 我有以下 NuGet 包:

我看到了类似的 post,它建议删除对 Extensions.Storage 组件的引用,但这样做会删除 [BlobTrigger] 属性和其他类型,因此不起作用。相关问题似乎可以追溯到 2018 年,并且是针对旧版本的 Azure Functions 的,这肯定是开箱即用的吧?

感谢任何建议,提前致谢。

只需按以下步骤操作即可:

using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage.Blob;

namespace FunctionApp48
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([BlobTrigger("test/{name}", Connection = "str")]CloudBlockBlob myBlob, string name, ILogger log)
        {
            string a = myBlob.Properties.ContentType;
            log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Properties.Length} Bytes"+"\n"+a);
        }
    }
}

我可以成功获取 blob 的内容类型:

以及参考包:

<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.10" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />