У меня есть 2 проекта в Visual Studio, веб-API и проект Azure functions с функцией триггера Azure Queue Storage. Я использую эмулятор хранилища Azure. Оба используют UseDevelopmentStorage = true для строки подключения. Клиент очереди получает 201, и я вижу сообщение в эмуляторе хранилища. Но функция триггера никогда не запускается. Я не вижу ошибок консоли. Однако, если я добавляю сообщение с помощью эмулятора хранилища, триггер срабатывает. Так что функция триггера работает, но только через эмулятор. И код QueueClient работает, я получаю 201 и вижу сообщение в эмуляторе. Я все это делаю локально, Очередь в Azure не создавала. Я не понимаю, как это может быть проблемой, но я подумал, что добавлю это.
Мой код клиента очереди:
public async Task InsertCustomer()
{
var queueClient = new QueueClient(_configuration["StorageConnectionString"], "customer-items");
var myString = "Testing";
byte[] bytes = Encoding.Default.GetBytes(myString);
myString = Encoding.UTF8.GetString(bytes);
await queueClient.CreateIfNotExistsAsync();
//just here for debugging
var result = await queueClient.SendMessageAsync(myString);
}
URI, который отправляет, это http://127.0.0.1: 10001 / devstoreaccount1 / customer-items
Триггер очереди:
public static class InsertCustomerQueue
{
[FunctionName("InsertCustomer")]
public static void Run([QueueTrigger("customer-items", Connection = "AzureWebJobsStorage")] string myQueueItem, ILogger log)
{
try
{
log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
}
catch (Exception ex)
{
log.LogInformation(ex.ToString());
}
}
}
}
Я использую как визуальную студию (сообщество 2019), так и эмулятор от имени администратора. Это кажется очевидным, но я не могу понять.