Ваш подход правильный. Я сделал то же самое в своем приложении. Когда несколько пользователей загружали изображения в BLOB-объекты, я добавлял BLOB-объекты name
и url
в очередь хранения. Вы можете создать Azure функцию для обработки сообщения из очереди, но убедитесь, что ваша Azure функция batchSize
имеет значение 1
Azure Функция Размер пакета запуска триггера очереди хранения по умолчанию равен 16, и она обработает 16 сообщений в параллели. хост. json
Пример Код API для создания нового объекта и загрузки сведений об объекте в очереди.
await this.adRepository.AddEntity(ad);
var adDto = this.mapper.Map<AzureSearchServiceDto>(ad);
//Push data in Queue
await this.storageService.PushMessageIntoQueue(AppConstraint.ImageVerificationQueue, adDto .ToJson());
Функция Проверка изображения и создание миниатюр изображений
[FunctionName("ImageVerificationFunction")]
public async Task Run([QueueTrigger("%ImageVerificationQueue%", Connection = "StorageConnection")]string message, ILogger log)
{
log.LogInformation($"ImageVerificationFunction processed: {message}");
var azureSearchServiceDto = JsonConvert.DeserializeObject<AzureSearchServiceDto>(message);
await this.imageVerificationService.Verify(azureSearchServiceDto);
}
storageService
- это моя специальная служба для отправки сообщений в очередь хранения