如何在Azure函数中使用BlobTrigger绑定到CloudBlockBlob?

Mik*_*ike 5 c# azure azure-webjobssdk azure-web-app-service azure-functions

我的项目中有以下功能:

[FunctionName("my-func")]
public static async Task Run([BlobTrigger("data/{name}")] CloudBlockBlob blob, string name, TraceWriter log)
{
    log.Info($"Started Processing: {name}");

    await blob.DeleteAsync();

    log.Info($"Finished Processing: {name}");
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Azure Functions CLI的v1.0.4本地运行该函数时,我收到此错误:

Microsoft.Azure.WebJobs.Host: Error indexing method 'SampleFunction.Run'. Microsoft.Azure.WebJobs.Host: Can't bind BlobTrigger to type 'Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob'.
Run Code Online (Sandbox Code Playgroud)

我在Azure Functions和WebJobs SDK中看到的所有文档都说支持这一点.

https://github.com/Azure/azure-webjobs-sdk/wiki/Blobs#-types-that-you-can-bind-to-blobs

Mik*_*kov 5

您可能正在引用一些依赖于非兼容版本的WindowsAzure.Storage程序集(版本8.x.x)的NuGet包.如果是这样,请务必将其删除.除非您使用一些额外的绑定,否则您的csproj引用应该看起来像这样简单:

<ItemGroup>           
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.6" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)