编程语言
首页 > 编程语言> > c#-在Azure函数中使用新的SaaS表适配器

c#-在Azure函数中使用新的SaaS表适配器

作者:互联网

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"
      }
    }
   }
}

可以使用以下方式将记录插入表中:

output.CreateEntityAsync(record);

标签:azure,azure-functions,c
来源: https://codeday.me/bug/20191026/1937759.html