早上好 我有一个问题,为什么我没有在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; }
}
答案 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;}
}