Azure Functions读取Azure Mobile App Easy表数据

时间:2016-12-29 16:58:09

标签: azure azure-functions

我试图找出如何设置与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属性,在我的情况下不需要,但是必需的。我该怎么做才能让它发挥作用?

1 个答案:

答案 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");    
}