Как настроить ConsumerGroup в local.settings.json при разработке функции Azure версии 2 - PullRequest
0 голосов
/ 18 января 2019

У меня есть код ниже, чтобы перехватить все сообщения, поступившие на IoT Hub

    [FunctionName("device-message--funcapp-v2")]
    public static void Run([IoTHubTrigger("testhub", 
                       Connection = "IoTHubEventEndPoint", 
                       ConsumerGroup = "ActualConsumerGroup")]EventData message, 
        ILogger log)
    {
        log.LogInformation($"C# IoT Hub trigger:
       {Encoding.UTF8.GetString(message.Body.Array)}");     
    }

Это работает нормально, как и ожидалось, но теперь я не хочу жестко кодировать ConsumerGroup. Поэтому я добавил ниже запись конфигурации в local.settings.json

   {
     "IsEncrypted": false,
     "Values": {
          "AzureWebJobsStorage": "",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet",
          "EventHub": "",
          "CosmosDb": "",
         "ConfigurationConsumerGroup": "ActualConsumerGroup"
          }
        }

и измененный код, как показано ниже

       [FunctionName("device-message--funcapp-v2")]
    public static void Run([IoTHubTrigger("testhub", 
        Connection = "IoTHubEventEndPoint", 
        ConsumerGroup = "ConfigurationConsumerGroup")]EventData message, 
        ILogger log)

Но это не удалось.

[18.01.2009 9:47:11 AM] Microsoft.Azure.EventHubs: объект обмена сообщениями 'iothub-ns-testhub-945897-3a6f492cc4: eventhub: lctesthub ~ 8191 | ConfigurationConsumerGroup' не найден.

1 Ответ

0 голосов
/ 18 января 2019

Используйте ConsumerGroup = "%ConfigurationConsumerGroup%" для чтения настроек из local.settings.json. Проверьте документ . Обратите внимание, что свойство подключения триггеров и привязок является особым случаем и автоматически разрешает значения в качестве параметров приложения без знаков процента.

...