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。要绑定到表客户端,请不要指定表名。要绑定到实体,请指定实体标识符。
我做错了什么?
答案 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);