我有一个函数,触发了服务总线。总线包含来自多个源的数据,我想要处理这些数据并将其写入存储表。我不能保证总线中不会有重复的条目,但需要表中具有唯一的条目。我发现我可以访问我的对象类型的
IAsyncCollector
,但这没有办法搜索已经存在的对象或更新它们。这是我当前的功能代码:
[FunctionName(nameof(Run))]
public async Task Run([Microsoft.Azure.WebJobs.ServiceBusTrigger("myBus", Connection = "myCon")] ServiceBusReceivedMessage message,
[Table("Widgets", Connection = "AzureWebJobsStorage")] IAsyncCollector<Widgets> widgetsTable,
ILogger log)
{
log.LogInformation($"queue trigger function processed message");
}
如何以允许我查找/更新对象的方式访问表?
您不能为此使用输出绑定:
此输出绑定仅支持在表中创建新实体。如果您需要从函数代码更新现有实体,请改为 直接使用 Azure Tables SDK。
(来源)
因此您需要删除输出绑定并直接利用表 SDK。