我试图找出如何设置与Azure功能的输入绑定,使其能够读取Azure Mobile App Easy表格中的所有数据。我一直在寻找几个小时并阅读我能找到的每一份文件。
https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings处的Azure Functions绑定文档表明我可以为移动应用程序设置绑定 - 文档说这是用于访问表,我希望这意味着Easy表,因为我认为这是唯一的一种在移动应用程序中可用的表格(或者我错了吗?)。在函数编辑器的“集成”部分中设置绑定时,甚至还有一个辅助选项。但是,当您设置绑定时,需要记录ID字段,但我不想指定记录ID,我希望该函数能够读取表中的所有数据。我该怎么做?
最终,我希望能够做的是在表中的数据更新(添加,更新,删除)时触发该功能。当函数执行时,我想读取所有数据并用它做一些事情。我无法找到涵盖此内容的触发器选项,因此我认为我必须将此作为预定功能 - 是否有更好的方法?
这是绑定:
{
"type": "mobileTable",
"name": "inputRecord",
"tableName": "Alerts",
"id": "{itemId}",
"connection": "APP_URL",
"direction": "in"
}
它是绑定中的id属性,在我的情况下不需要,但是必需的。我该怎么做才能让它发挥作用?
答案 0 :(得分:2)
Easy Tables还没有内置触发器类型。但您可以使用最近添加的webhooks feature移动应用简易表来实现此方案。创建HTTP触发功能并配置webhook以调用该功能。如果您需要使用函数来更新简易表中的数据状态,则可以使用output binding来执行此操作。
如果您需要与该功能的数据进行更丰富的互动,那么您将需要查看引用移动应用客户端SDK NuGet包并使用MobileServiceClient来读取数据。这是一个例子:
project.json:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.Azure.Mobile.Client": "3.0.3"
}
}
}
}
run.csx:
using System.Net;
using Microsoft.WindowsAzure.MobileServices;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
MobileServiceClient client = new MobileServiceClient("https://mymobileappssite.azurewebsites.net");
var results = await client.GetTable("todoitem").ReadAsync("");
log.Info($"Got {results.Count()} record(s).");;
return req.CreateResponse(HttpStatusCode.OK, "Hi");
}