Функция запуска очереди Azure - локальная интеграция - PullRequest
0 голосов
/ 22 октября 2018

Я создаю простую функцию Azure, запускаемую очередью, используя Visual Studio.Я подключаю его к своей учетной записи хранения, но по какой-то причине он не работает.Любая помощь приветствуется.

Это мой код: (автоматически генерируется VS)

[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue", Connection = "")]string myQueueItem, TraceWriter log)        
{            
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
}

Это мой local.settings.json

{
"IsEncrypted": false,  
  "Values":{

  "AzureWebJobsStorage":"DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey"
  }
}

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Триггер очереди по умолчанию использует учетную запись AzureWebJobsStorage.Все, что вам нужно сделать, это просто удалить параметр Connection из атрибута:

[FunctionName("QueueTest")]
public static void Run([QueueTrigger("my-queue")]string myQueueItem, TraceWriter log)        
{            
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
}

В идеале, если вы пользователь Windows, используйте Эмулятор хранилища Azure для подключения к локальным очередям.,Затем измените строку подключения в файле local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
  }
}

Если вы не являетесь пользователем Windows, вы должны подключиться к очередям, размещенным на платформе Azure.Для этого найдите учетную запись хранения, связанную с вашими функциями, и скопируйте строку подключения из его настроек (Учетная запись хранения -> Ключи доступа -> Строка подключения)

0 голосов
/ 22 октября 2018

Итак, я разобрался в проблеме.Все конфигурации были в порядке.Проблема заключалась в том, что функциональная версия моего функционального приложения Azure была равна 1, но по какой-то причине, возможно, из-за последних SDK / WebJobs, версия 1 работала некорректно.Поэтому мне пришлось создать еще одно приложение-функцию с AzureFunctionVersion 2, и все работало нормально.

0 голосов
/ 22 октября 2018

Вам необходимо добавить строку подключения вашей учетной записи хранения очереди в local.settings.json, а затем указать имя строки подключения в качестве параметра Connection QueueTrigger, например, в local.settings.json

"Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey",
    "MyStorage": "DefaultEndpointsProtocol=https;AccountName=accountname2;AccountKey=accountkey2;EndpointSuffix=core.windows.net"
}

и в вашем коде

[QueueTrigger("my-queue", Connection = "MyStorage")]string myQueueItem
...