像往常一样,从来没有简单。有50亿个绑定到BLOB和队列的示例,但是我找不到任何可以绑定到表的东西。我有一个名为Foo的表,当webjob运行时,我通过Azure存储资源管理器将数据添加到(PK和RK),并且触发器从未被击中。这是Functions.cs中存在的方法,该方法可在Webjob启动时识别:
public static void ReadTable([Table("Foo")] ICollector<TableEntity> tableBinding, TextWriter logger)
该签名是一个猜测,因为有无数有关旧签名的博客,等等。我尝试了3个小时,更改了所有可编译内容,但找到了适用于WebJob和Tables的ZERO文档。
Main()是:
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
为AzureWebJobsDashboard和AzureWebJobsStorage正确设置了2个配置条目。
还:
<package id="Microsoft.Azure.WebJobs" version="1.0.1" targetFramework="net45" />
<package id="Microsoft.Azure.WebJobs.Core" version="1.0.1" targetFramework="net45" />
为什么这不起作用????
您实际上并未在代码中添加“触发器”。
这不是您的错,因为目前只有:Microsoft.Azure.WebJobs命名空间中的QueueTrigger和BlobTrigger。没有TableTrigger。
....
但是(根据Mike Stall的说法,“总是有一个but”)“函数不会在表更改时触发。但是,一旦由于其他原因调用了函数,它就可以绑定到表作为执行任务的读/写资源。 ”
public static void TableDict([Table("mytable")] IDictionary<Tuple<string, string>, OtherStuff> dict)
{
...
}
我可以看到的“监视和激发并在Azure表的新行上发生事件”的唯一方法是对表进行任何写入,而是写入新的队列消息,然后可以触发所有逻辑并执行插入(?)...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句