最初に、他のSO同じエラーメッセージの投稿を確認しましたが、どれも私の問題を解決していないようです。多くの順列とオプションを試しました。関数は正常にビルドされますが、実行されませんCLI、私は次の不可解なエラーを受け取ります。MSFTのドキュメントにも回答がないようです。
職務は見つかりませんでした。ジョブクラスとメソッドを公開してみてください。バインディング拡張機能(ServiceBus、Timersなど)を使用している場合は、スタートアップコードで拡張機能の登録メソッド(config.UseServiceBus()、config.UseTimers()など)を呼び出していることを確認してください。 。)。
タイマージョブを実行してから、メッセージのコレクションをイベントハブに書き込もうとしています。何が欠けていますか?私は何時間もこれと戦っています。
機能:
[FunctionName("CreateData")]
public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
[EventHub("murraytest", Connection = "evingest")] IAsyncCollector<string> myeventhub,
TraceWriter log)
{
await myeventhub.AddAsync("data1");
await myeventhub.AddAsync("data2");
await myeventhub.AddAsync("data3");
log.Info($"COMPLETED: {DateTime.Now}");
}
local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"Eventhub": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "",
"evingest": "Endpoint=sb://example.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=LtcqBLT5VWjg0dGMdIvxCcEGs8902010Y6y14iGg="
}
}
パッケージ
function.json-eventhubバインディングがありません!
{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
"configurationSource": "attributes",
"bindings": [
{
"type": "timerTrigger",
"schedule": "0 */5 * * * *",
"useMonitor": true,
"runOnStartup": false,
"name": "myTimer"
}
],
"disabled": false,
"scriptFile": "..\\bin\\AzFuncs.dll",
"entryPoint": "AzFuncs.Function1.Run"
}
最新のMicrosoft.NET.Sdk.Functions
(今日の1.0.6
)およびMicrosoft.Azure.WebJobs.Service.Bus
(フルフレームワークで実行している場合は2.1.0-beta4
)にアップグレードする必要があります。 SDKをアップグレードするには、最初にServiceBus参照を削除する必要がある場合があります。
Microsoft.Azure.Eventhubs
パッケージも削除する必要があります。すべての関連タイプなどはMicrosoft.Azure.WebJobs.Service.Bus
にあります
また、2.1.0-beta4
を見つけるには、パッケージマネージャーで[プレリリースを含める]をオンにしてください。
特に、別のプロジェクトまたはバージョンから変換している場合に見つけたもう1つの問題。
VS csprojファイルで、AzureFunctionsVersionが存在することを確認します
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
...etc
ツールはこれを自動的に追加しますが、欠落しているプロジェクトを変更する場合は追加されません。これが私にかかる3時間の節約に役立つことを願っています:-)。
Visual Studio(F5)からデバッグ/実行すると、最新のMicrosoft.NET.Sdk.Functions(v1.0.28)を使用していても、プロジェクトで定義されているAzureFunctionsを検出できません。
プロジェクトのプロパティ>デバッグ>作業ディレクトリがデフォルトで何らかの方法で設定されていないことが原因で問題が発生しました。バイナリが見つかる実際のディレクトリに設定すると、AzureFunctionsがデバッグに使用できるようになります。
PS、これはlaunchSettings.json/profiles/{projectName}/workingDirectory =/objd/AMD64 /を追加します