在 Azure 函数中使用新的 SaaS Table 适配器
Using the new SaaS Table Adapter in an Azure Function
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: Error indexing method 'Functions.ProcessAppInsights'. Microsoft.Azure.WebJobs.Extensions.ApiHub: The attribute ApiHubTableAttribute indicates a table binding. The parameter type must be one of the following: Microsoft.Azure.ApiHub.ITable, Microsoft.Azure.WebJobs.IAsyncCollector. To bind to a table client do not specify a table name. To bind to an entity specify the entity identifier.
我做错了什么?
找到解决方案 - 我使用 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"
}
}
}
}
可以使用以下方法将记录插入 table:
output.CreateEntityAsync(record);
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: Error indexing method 'Functions.ProcessAppInsights'. Microsoft.Azure.WebJobs.Extensions.ApiHub: The attribute ApiHubTableAttribute indicates a table binding. The parameter type must be one of the following: Microsoft.Azure.ApiHub.ITable, Microsoft.Azure.WebJobs.IAsyncCollector. To bind to a table client do not specify a table name. To bind to an entity specify the entity identifier.
我做错了什么?
找到解决方案 - 我使用 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"
}
}
}
}
可以使用以下方法将记录插入 table:
output.CreateEntityAsync(record);