繁体   English   中英

在表中插入或更新记录时触发Azure Webjob

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM