[英]Azure Webjob trigger on insert or update record in table
我想在Azure表存储中的任何记录的插入或更新时获取触发器。 为此,我用以下方法创建了一个天蓝色的webjob ...
public static async Task ReadTableEntity(
[QueueTrigger("inputqueue")] Contact contactInQueue,
[Table("Contact", "ContactId", "CityId")] Contact contactInTable, TextWriter logger)
{
logger.WriteLine("triggered");
}
但是在更新表中的任何记录或插入新记录后,不会调用上述方法。
我想获得上面的方法在插入或更新表中的任何记录时调用。
请纠正我哪里我错了。
此触发器无法正常工作。 对于这种情况,它将需要某种不存在的“表触发器”。
从文档:
一些代码片段显示了在手动调用的函数中使用的Table属性,也就是说,没有使用触发器属性之一。
用外行人的话来说:没有人听您对存储表进行任何更改。 在插入或更新表存储记录后,需要触发此调用。
在您的Web作业中,您可以添加以下内容(来自文档 )来触发您的方法:
public class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.Call(typeof(Program).GetMethod("CreateQueueMessage"), new { value = "Hello world!" });
}
[NoAutomaticTrigger]
public static void CreateQueueMessage(
TextWriter logger,
string value,
[Queue("outputqueue")] out string message)
{
message = value;
logger.WriteLine("Creating queue message: ", message);
}
}
众所周知,Azure WebJobs表触发器存在类似的问题 。 另外,有人发布了功能请求问题“ 为Azure表存储添加触发器” 。 我将报告此功能请求,您可以尝试按照本教程来构建自己的绑定扩展,或者按照Mark C.的解决方案手动触发Azure Table Storage中的插入/更新记录,以解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.