Функции Azure не работают VS2017

Я загрузил VS2017 Community Edition, чтобы опробовать функции Azure, но не могу заставить его работать. Я искал много сообщений на страницах Github Stackoverflow и Azure, но нигде нет полной документации по чему-либо.

Вот что у меня есть:

Функция Azure:

namespace FunctionApp1
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([ServiceBusTrigger("ngctestqueue", AccessRights.Manage, Connection = "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY")]string myQueueItem, TraceWriter log)
        {
            log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
        }
    }
}

host.json

{
  "disabled": false,
  "bindings": [
    {
      "name": "myQueueItem",
      "type": "serviceBusTrigger",
      "direction": "in",
      "queueName": "ngctestqueue",
      "connection": "connection",
      "accessRights": "manage"
    }
  ]
}

local.settings.json

{
    "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=ngctest2;AccountKey=STORAGE_ACCOUNT_KEY;EndpointSuffix=core.windows.net",
    "AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=ngctest2;AccountKey=STORAGE_ACCOUNT_KEY;EndpointSuffix=core.windows.net",
    "AzureWebJobsServiceBus": "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY",
    "connection": "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY"
  }
}

Когда я запускаю функцию через F5 локально, я получаю следующую ошибку:

Microsoft.Azure.WebJobs.Host: Error indexing method 'Func
tion1.Run'. Microsoft.Azure.WebJobs.ServiceBus: Microsoft Azure WebJobs SDK Serv
iceBus connection string 'AzureWebJobsEndpoint=sb://ngcservicebus.servicebus.win
dows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY' is missing or empty.

Моя среда разработки выглядит следующим образом:

1) Windows 8.1 Профессиональная

2) Сообщество VS2017 15.3.5

3) Интерфейс командной строки функций Azure 1.0.4

Любая помощь будет оценена по достоинству.

Спасибо.


person CloudDev    schedule 04.10.2017    source источник


Ответы (1)


Connection должно быть установлено имя строки подключения, а не само значение. Затем значение будет считано из конфигурации.

[ServiceBusTrigger("ngctestqueue", AccessRights.Manage, Connection = "AzureWebJobsServiceBus")]

Вам не нужно создавать host.json в локальной среде (он будет автоматически сгенерирован SDK).

person Mikhail Shilkov    schedule 04.10.2017
comment
Хорошо, ошибка исчезла :) Но функция не запускается. В очереди несколько сообщений, я только что добавил сообщение, но в консоли нет вывода. Любые идеи? - person CloudDev; 04.10.2017