天蓝色函数V2 c#scipt-从天蓝色表中获取实体

时间:2019-12-27 00:09:21

标签: azure

早上好 我有一个问题,为什么我没有在Azure函数中使用此代码? https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-table#input---c-script-example---one-entity 他们给了我这个错误:`

  

Funkce(dbC4 / TimerTrigger1)Chyba:Microsoft.Azure.WebJobs.Host:错误   索引方法'Functions.TimerTrigger1'。   Microsoft.Azure.WebJobs.Host:无法绑定参数“数据库”以键入   数据。确保绑定支持参数类型。如果   您正在使用绑定扩展(例如Azure存储,ServiceBus,   计时器等),请确保您已经调用了注册方法   您的启动代码中的扩展名(例如builder.AddAzureStorage(),   builder.AddServiceBus(),builder.AddTimers()等)。

` 请帮助我

这是function.json:

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */5 * * * *"
    },
    {
      "type": "table",
      "name": "databas",
      "tableName": "dbc",
      "partitionKey": "Test",
      "rowKey": "test3",
      "take": "50",
      "connection": "AzureWebJobsStorage",
      "direction": "in"
    }
  ],
  "disabled": false
}

这是run.cvsx:

using System;

public static void Run(TimerInfo myTimer, Data database, ILogger log)

{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

log.LogInformation($"Name in Database entity: {database.Name}");

}

public class Data
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Name { get; set; }
}

1 个答案:

答案 0 :(得分:0)

我测试了表绑定,它不会遇到此错误。因此,我检查了您的代码,发现有所不同,这是您的表绑定名称与run.csx参数名称不匹配,一个是databas,另一个是database。然后,我更改绑定名称,然后重现您的异常。

因此解决方案是将它们更改为相同的名称。

function.json

 {
      "bindings": [
        {
          "name": "myTimer",
          "type": "timerTrigger",
          "direction": "in",
          "schedule": "0 */1 * * * *"
        },

        {
          "name": "databas",
          "type": "table",
          "tableName": "Person",
          "partitionKey": "george",
          "rowKey": "chen",
          "take": "50",
          "connection": "AzureWebJobsStorage",
          "direction": "in"
        }
      ]
    }

run.csx

using System;

public static void Run(TimerInfo myTimer, ILogger log,Data database)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    log.LogInformation($"Name in Person entity: {database.Name}");
}
public class Data
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Name { get; set; }
    public string ID {get;set;}
}

enter image description here