找不到类型或名称空间“ BlobAttribute”

时间:2019-02-10 22:11:50

标签: azure azure-functions azure-blob-storage csx

我遵循的是Pluralsight教程,但它有些过时了,因此我尝试填补空白。它说使用BlobAttribute设置文件名,但是我一直收到错误消息,指出未找到类型或名称空间。

我正在使用CSX,但终生无法正常工作。当我将行复制到C#测试功能应用程序中时,它工作得很好。我现在不想切换到该路线,因为它不是本教程的一部分,并且我正努力坚持其流程,但他们也没有对此进行解释。 Microsoft.Azure.WebJobs使用语句主要是我尝试使其工作。

有什么想法如何使BlobAttribute在CSX中工作?

#r "Newtonsoft.Json"
#r "Microsoft.Azure.WebJobs"
#r "Microsoft.Azure.WebJobs.Extensions"

using System;
using Newtonsoft.Json;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions;

public class Order
{
public string OrderID {get;set;}
public string ProductID {get;set;}
public string Email{get;set;}
public decimal Price {get;set;}
}

public static void Run(Order myQueueItem, ILogger log, IBinder binder)
{    
log.LogInformation($"C# Queue trigger function processed: 
{myQueueItem.OrderID}");

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"{myQueueItem.OrderID}.lic")))    
{
    outputBlob.WriteLine($"OrderID: {myQueueItem.OrderID}");
    outputBlob.WriteLine($"ProductID: {myQueueItem.ProductID}");
    outputBlob.WriteLine($"Email: {myQueueItem.Email}");
    outputBlob.WriteLine($"Price: {myQueueItem.Price}");
    outputBlob.WriteLine($"Purchase Date: {DateTime.UtcNow}");

    var md5 = System.Security.Cryptography.MD5.Create();
    var hash = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(myQueueItem.Email + "secret"));
    outputBlob.WriteLine($"Secret Code: 
{BitConverter.ToString(hash).Replace("-","")}");
    }
}

2 个答案:

答案 0 :(得分:1)

BlobAttribute位于程序集Microsoft.Azure.WebJobs.Extensions.Storage处,添加引用#r "Microsoft.Azure.WebJobs.Extensions.Storage"可以解决。

此外,请参见此行

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"{myQueueItem.OrderID}.lic")))

BlobAttribute要求Blob路径为containerName / fileName,因此您可能需要在文件之前添加一些容器,例如

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"mycontainer/{myQueueItem.OrderID}.lic")))

答案 1 :(得分:0)

要解决

中的相同问题
  1. Visual Studio

工具> NuGet软件包管理器>软件包管理器控制台> Install-Package Microsoft.Azure.WebJobs.Extensions.Storage -Version 3.0.6

  1. Visual Studio代码

终端> cd <Working dir>> dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage