为了账号安全,请及时绑定邮箱和手机立即绑定

如何从触发队列消息内的特定字段动态绑定存储 blob 名称

如何从触发队列消息内的特定字段动态绑定存储 blob 名称

C#
开满天机 2023-06-25 14:28:45
我正在尝试对触发的消息(队列)进行一些日志记录,这样,如果消息失败并且下次它被网络作业拾取,我会记录一些信息,这样我就不会重做成功路径(例如发送stage1) 之后向客户端发送的消息。因此,我计划使用 azure blob 存储绑定来配置为输入和输出流。但为了做到这一点,我需要为该斑点起一个唯一的名称。我的消息中有一个 guid,我计划使用该 guid 从 blob 存储中读取/写入。如何从队列消息内的 guid 字段动态配置此 blob 存储名称绑定。(我的消息非常大,我不想使用整个消息作为 Blob 存储名称)。public static void ProcessQueueMessage([QueueTrigger("%testQueue%")],TestMessageModel testMessage,[Blob("testStorage/{queueTrigger}", FileAccess.ReadWrite)] Stream logstream){}正如您所看到的,官方文档仅使用queueTrigger,它使用消息内的字符串作为blob名称。但我的消息看起来像这样public class TestMessageModel{  public Guid Id {get; set;}  public int FromOrg {get; set;}  public DateTime BatchDate {get; set;}  public Payments[] payments {get; set;}  // this array is big (many items)}我不想使用一些可笑的东西作为 blob 名称。如何使用testMessage中的Id?
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

  1. 添加与存储 Blob 的输出集成。并将路径值设置为容器名称。

//img3.sycdn.imooc.com/6497ded80001a0bb15720544.jpg

  1. 在函数代码中,您可以直接使用容器,并创建具有特定名称的 blob(可以从队列消息中获取):

    //img1.sycdn.imooc.com/6497dee70001e42406220254.jpg

  2. 最后,您将能够在目标容器中看到具有特定名称的 blob。

  3. //img2.sycdn.imooc.com/6497def60001c91c06530237.jpg

查看完整回答
反对 回复 2023-06-25
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这很有帮助。但对于 webjob,我之前需要使用 Blob 才能正确绑定它。


public static void ProcessQueueMessage([QueueTrigger("%testQueue%")],

TestMessageModel testMessage,

[Blob("testStorage")] CloudBlobContainer blobContainer)

{

   CloudBlockBlob blockBlob = blobContainer.GetBlockBlobReference(testmessage.id+".txt");

}


查看完整回答
反对 回复 2023-06-25
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信