在Azure功能中使用新的SaaS表适配器

时间:2016-10-16 20:02:31

标签: c# azure azure-functions

Azure最近发布了Azure功能的SaaS Table适配器。我知道这个功能是实验性的,没有文档,但我试图看看是否有人这样做。

我的绑定(function.json):

{
  "bindings": [
    {
      "name": "data",
      "type": "blobTrigger",
      "direction": "in",
      "path": "somePathToBlob",
      "connection": "connectionName_STORAGE"
    },
    {
      "type": "apiHubTable",
      "name": "output",
      "connection": "sql_SQL",
      "direction": "out",
      "tableName": "tblEventStage"
    }
  ],
  "disabled": false
}

然后在run.csx中我有:

public static void Run(string data, ITable<EventRecord> output, TraceWriter log)
{
    // add some records to the table
}

该功能成功编译,然后弹出警告消息:

  

Microsoft.Azure.WebJobs.Host:错误索引方法&#39; Functions.ProcessAppInsights&#39;。 Microsoft.Azure.WebJobs.Extensions.ApiHub:属性ApiHubTableAttribute表示表绑定。参数类型必须是以下之一:Microsoft.Azure.ApiHub.ITable,Microsoft.Azure.WebJobs.IAsyncCollector。要绑定到表客户端,请不要指定表名。要绑定到实体,请指定实体标识符。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

找到解决方案 - 我使用System.Data.Linq ITable而不是来自Microsoft.Azure.ApiHub的ITable。我删除了System.Data.Linq并添加了nuget包Microsoft Azure ApiHub SDK。这需要添加一个文件package.json:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.Azure.ApiHub.Sdk": "0.6.10-alpha"
      }
    }
   }
}

可以使用以下命令将记录插入到表中:

output.CreateEntityAsync(record);