У меня есть следующая функция, которую я определяю локально и могу нормально ее отлаживать.
[FunctionName("QueueTrigger")]
public static void DUMMYFUNCTION(
[QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
}
Локально «AzureWebJobsStorage» определяется в файле local.settings.json для использования учетной записи хранения с «myqueue». В настройках функции в Azure для «AzureWebJobsStorage» также задана правильная строка подключения (такая же, как та, которая установлена локально). Это означает, что у меня нет такой же проблемы, как в Функция Azure не выполняется в Azure (без ошибок)
Теперь я использую Visual Studio Team Service для размещения исходного кода в репозитории git. Я настроил развертывание для использования исходного кода и развертывания содержащихся в нем функций. Я не думаю, что проблема связана с VSTS, потому что развертывание выполнено успешно, и функция отображается в моем списке функций:
После развертывания создается файл function.json со следующим содержимым:
{
"generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.8",
"configurationSource": "attributes",
"bindings": [
{
"type": "queueTrigger",
"connection": "AzureWebJobsStorage",
"queueName": "myqueue",
"name": "myQueueItem"
}],
"disabled": false,
"scriptFile": "../bin/myAssembly.dll",
"entryPoint": "myAssembly.MyClass.DUMMYFUNCTION"
}
Проблема в том, что, когда я добавляю элемент в очередь во время его локальной отладки, функция выполняется, но когда функция работает на лазурном сервере, этого не происходит.
Что мне нужно изменить в коде, чтобы он работал и на лазурном? Я думал, что это сработает «из коробки».