我正在尝试对触发的消息(队列)进行一些日志记录,这样,如果消息失败并且下次它被网络作业拾取,我会记录一些信息,这样我就不会重做成功路径(例如发送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个赞
添加与存储 Blob 的输出集成。并将路径值设置为容器名称。
在函数代码中,您可以直接使用容器,并创建具有特定名称的 blob(可以从队列消息中获取):
最后,您将能够在目标容器中看到具有特定名称的 blob。
小唯快跑啊
TA贡献1863条经验 获得超2个赞
这很有帮助。但对于 webjob,我之前需要使用 Blob 才能正确绑定它。
public static void ProcessQueueMessage([QueueTrigger("%testQueue%")],
TestMessageModel testMessage,
[Blob("testStorage")] CloudBlobContainer blobContainer)
{
CloudBlockBlob blockBlob = blobContainer.GetBlockBlobReference(testmessage.id+".txt");
}
- 2 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消