电子邮件警报 Azure table 存储

Email alert Azure table storage

我正在将传感器数据发送到 Azure table 存储。如果列中的值小于特定值,我想发送电子邮件。

请找到附件

          -If a value in GPIOPin column is less than 7 then an email alert has to be sent.

有人可以指导如何进行吗?我尝试过使用 Logic 应用程序,但我不明白如何在那里提供条件。

逻辑应用程序的主要目的是将各种 inputs/services 与各种输出连接起来:您可以像 post 发送 Twitter 消息一样轻松地发送电子邮件。如果这确实是您所需要的,请务必使用逻辑应用程序。

我认为你最好使用 azure 函数。 可以在行更改时自动调用(触发)函数,因此您可以在插入小于 7 的值时发送邮件。有关详细信息,请参阅 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-table

编辑

Table 存储无法配置为 Azure 函数的触发器。您可以将它们配置为 input 但如果这样做,您仍然需要轮询。

AFAIK,逻辑应用目前不支持 Azure Table 存储的触发器。您可以添加您的反馈 here。根据您的情况,您需要选择 Schedule - recurrence 连接器以从 table 存储中检索记录并定期处理您的逻辑。由于 create/update 操作没有触发器,您需要添加一个新列(例如状态),以指示它是否已被您的逻辑应用程序流程检查过。这是我为这个场景设计的,你可以参考如下:

注:

  • 对于 (Azure Table Storage) Get entities 操作,您可以将过滤器查询指定为 status eq false 下的高级用于检索以前未检查过的记录的选项。

  • 对于条件块,如果一个条件块中有多个规则,则需要在代码视图中使用@and()@or()。这里有反馈,可以参考here.

  • 如果条件块为真,您可以发送电子邮件,成功发送电子邮件后,您需要使用 Azure Table 存储的合并实体操作来更新状态列当前记录如下:

  • 如果条件块为false,还需要更新table存储的当前记录的状态栏。

此外,逻辑应用程序支持在 SQL 服务器中创建项目时触发。如果可能,您可以以更简单的方式更改数据存储。此外,Azure Functions 中没有针对 Table 存储的触发器绑定。您可以利用 Azure Functions 中的 timer trigger, Storage table bindings, SendGrid bindings 来实现您的目的。

预览中有一个“AzureTableStorage”连接器,您可以使用它来创建自己的带条件的工作流。

如果您通过 IoT 中心将传感器数据发送到 table 存储,请考虑使用定义了两个输出的流分析。一个输出可以是 table 存储,另一个输出是一个 Azure 函数,其输入绑定使用流分析,输出绑定使用 SendGrid。流分析作业将 select table 存储输出的所有记录,但只有满足 GPIOIn < 7 条件的记录才会输出到 Azure 函数。