当前位置: 首页 > 知识库问答 >
问题:

Azure函数:如何在Azure存储队列的绑定表达式中使用POCO?

荀俊迈
2023-03-14

我已经定义了一个Azure函数,它使用Azure存储队列触发器和Blob输入绑定。我已经为队列触发器准备了一个POCO,但是如何在blob输入绑定中将该POCO与绑定表达式一起使用呢?

建筑:

  1. Azure功能2。x

POCO:

public class ImageToProcess
{
    public int CompanyId { get; set; }
    public string FullImagePath { get; set; }
}

Azure功能:

public static void Run(
    [QueueTrigger("profile-image-queue", Connection = "ProfileImageQueue")]ImageToProcess myQueueItem,
    [Blob("profileimages/{queueTrigger.FullImagePath}", FileAccess.Read, Connection = "ProfileImageBlobConnectionString")] Stream originalImage,
    ILogger log)
{
    log.LogInformation($"Started Processing profile image: myQueueItem");
}

队列消息:

{ 
    "CompanyId": 123,
    "FullImagePath": "CompanyA/profileImage-original.png" 
}

错误消息:

系统私有的CoreLib:html" target="_blank">执行函数profileImageUpload时发生异常。微软蔚蓝色的WebJobs。主机:异常绑定参数“originalImage”。微软蔚蓝色的WebJobs。主机:访问“FullImagePath”时出错:属性不存在。

用于创建此解决方案的资源

  1. http://dontcodetired.com/blog/post/Improving-Azure-Functions-Blob-Trigger-Performance-and-Reliability-Part-2-Processing-Delays-and-Missed-Blobs
  2. https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue#trigger
  3. https://docs.microsoft.com/en-us/sandbox/functions-recipes/queue-storage#azure-存储队列触发器使用poco

其他可能的解决方案:我看到的唯一其他选择是使用命令式绑定,但我非常确定我可以使用声明式绑定。https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#binding-运行时

共有1个答案

宣煜
2023-03-14

在Blob绑定中使用以下选项:

"profileimages/{FullImagePath}" 

注意,如果FullImagePath代表url地址,则:

"{FullImagePath}" 
 类似资料:
  • 我想使用Python中的Azure函数将JSON数据作为. json文件上传到Azure存储Blob。 因为我使用的是Azure函数,而不是实际的服务器,所以我不想(也可能无法)在本地内存中创建一个临时文件,并使用Azure blob存储客户端库v2将该文件上载到Azure blob存储。1对于Python(这里有参考链接)。因此,我想为Azure函数使用输出blob存储绑定(这里有参考链接)。

  • 我正在创建多个 Azure 函数(HTTP 触发器)来从 blob 存储中获取内容,获取单个 blob 的几个元数据值,并获取特定 blob 类型的所有元数据属性。 我对使用绑定与使用blob存储的rest API与azure-storage sdk感到困惑。 创建azure函数时使用哪种方法最好?如果您能给我指出一些此类示例留档,那也会很有帮助。谢谢你。

  • 我有一个EventHubTrighted函数app。下面是方法签名的代码示例: @functionname(“foo”)@storageaccount(“foostorageRead”)public HttpResponseMessage run(@httptrigger(name=“req”,methods={httpmethod.post},authLevel=authorizationlev

  • 我正在尝试创建一个Azure Function(. NET核心)以从存储帐户检索SaS,并且难以理解为什么我无法访问存储。 函数签名: 索引方法“GetBlobSaS”Microsoft时出错。蔚蓝色的网络作业。主机:无法将参数“storage”绑定到类型StorageAccount。确保绑定支持参数类型。如果您使用的是绑定扩展(例如Azure Storage、ServiceBus、Timers等

  • 我知道WebJob SDK使用AzureWebJobsDashboard连接中定义的blob存储进行仪表板日志记录。 有没有办法让WebJob SDK使用Azure Storage Table而不是Blob存储来记录到AzureWebJobsDashboard连接的任何仪表板? 更新1:本文展示了日志输出条目在Azure表中的显示方式: https://docs . Microsoft . com