У меня определена функция Azure, которая использует триггер очереди хранилища Azure и входные привязки больших двоичных объектов. У меня есть POCO для триггера очереди, но как я могу использовать этот POCO с выражением привязки во входной привязке большого двоичного объекта?
Архитектура:
- Функции Azure 2.x
- Предварительно скомпилированная библиотека C # (.NET Core 2.1)
POCO:
public class ImageToProcess
{
public int CompanyId { get; set; }
public string FullImagePath { get; set; }
}
Функция Azure:
public static void Run(
[QueueTrigger("profile-image-queue", Connection = "ProfileImageQueue")]ImageToProcess myQueueItem,
[Blob("profileimages/{queueTrigger.FullImagePath}", FileAccess.Read, Connection = "ProfileImageBlobConnectionString")] Stream originalImage,
ILogger log)
{
log.LogInformation($"Started Processing profile image: myQueueItem");
}
Сообщение в очереди:
{
"CompanyId": 123,
"FullImagePath": "CompanyA/profileImage-original.png"
}
Сообщение об ошибке:
System.Private.CoreLib: исключение при выполнении функции: ProfileImageUploaded. Microsoft.Azure.WebJobs.Host: параметр привязки исключения 'originalImage'. Microsoft.Azure.WebJobs.Host: ошибка при доступе к FullImagePath: свойство не существует.
Ресурсы, использованные для создания этого решения
- http://dontcodetired.com/blog/post/Improving-Azure-Functions-Blob-Trigger-Performance-and-Reliability-Part-2-Processing-Delays-and-Missed-Blobs
- https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue#trigger.
- https://docs.microsoft.com/en-us/sandbox/functions-recipes/queue-storage#azure-storage-queue-trigger-using-a-poco
Другое возможное решение. Я вижу только один вариант - использовать императивные привязки, но я почти уверен, что могу использовать декларативные. https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library#binding-at-runtime