「.NETクラスライブラリを関数Appとして公開すると、コンパイル済みのバージョンにAzure関数Appを変換しようとしています。 'blog post from Donna Malayeriコンパイル済みのAzure関数StorageTableInputバインディングが機能しない
私が使用するタイマートリガには、型付きオブジェクトを使用してStorageTable入力バインディングがあります。オブジェクトは 'TableEntity'から継承します。ポータルでのバージョンはすべての問題を持っていませんが、私のコンパイル済みのバージョンは、次のエラーがスローされます。
using System;
using System.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.WindowsAzure.Storage.Table;
namespace MyScheduler
{
public class ScheduleTrigger
{
public static void Run(TimerInfo scheduleTimer, Queryable<Schedule> schedulesTable, ICollector<Schedule> scheduleQueueItem, TraceWriter log)
{
log.Info($"Start processing at: {DateTime.Now}.");
// processing code here...
log.Info($"Finished processing at: {DateTime.Now}.");
}
}
public class Schedule : TableEntity
{
public string Name { get; set; }
public DateTime LastRunAt { get; set; }
public bool Active { get; set; }
public string Endpoint { get; set; }
}
}
「function.json」:
Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.ScheduleTrigger'. Microsoft.Azure.WebJobs.Host: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type 'TElement'. mscorlib: GenericArguments[0], 'MyScheduler.Schedule', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[TElement]' violates the constraint of type parameter 'TElement'.
Azureの機能コードは次のようになりますファイルには、次のようになります。
{
"scriptFile": "..\\bin\\MyScheduler.dll",
"entryPoint": "MyScheduler.ScheduleTrigger.Run",
"bindings": [
{
"name": "scheduleTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 * * * * *"
},
{
"type": "table",
"name": "schedulesTable",
"tableName": "schedules",
"partitionKey": "Schedules",
"connection": "AzureWebJobsStorage",
"direction": "in"
},
{
"type": "queue",
"name": "scheduleQueueItem",
"queueName": "schedulesqueue",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
],
"disabled": true
}
どのバージョンのStorage SDKを参照していますか? –