Привязка выходных данных функций Azure

#c# #azure-functions

Вопрос:

Я новичок в функциях Azure и не смог найти хорошего объяснения привязок вывода.

Например, если я хочу загрузить большой двоичный объект в хранилище Azure, когда рекомендуется использовать привязку вывода и когда загружать вручную (каковы преимущества/недостатки в каждом случае)?

И в чем разница между привязкой вывода как параметра в Run функции и как атрибута?

Параметр:

 [FunctionName("MyFunction")]
public static void Run([ServiceBusTrigger("myqeue")] Message message,
                       [Blob("output-container/{name}", FileAccess.Write)] Stream stream)
{ }
 

Атрибут:

 [FunctionName("MyFunction")]
[return: Blob("output-container/{name}")]
public static string Run([ServiceBusTrigger("myqeue")] Message message, ILogger log)
{ }
 

Комментарии:

1. Это совершенно субъективно. Это просто вопрос контроля над торговлей для удобства использования. Лично я не люблю период функций из-за уровня абстракции, который они вводят. В результате вы, вероятно, можете догадаться, какой из двух вышеперечисленных я бы использовал :).

Ответ №1:

когда рекомендуется использовать привязку вывода, а когда загружать вручную (каковы преимущества/недостатки в каждом конкретном случае)?

Вот четкий обзор того, когда следует использовать привязки вывода и для какой службы какие функции предоставляются при использовании привязок вывода!

Как мы знаем, привязки не могут сосуществовать без триггеров функций Azure и 2 доступных типов привязок : ввода и вывода.

  • Привязка вывода: Привязка вывода-это данные, которые отправляет ваша функция.

Давайте обсудим 2 способа использования привязки вывода: 1) Данные хранимой очереди из контейнера больших двоичных объектов действуют как сценарий привязки вывода
: Функция Azure-Триггер HTTP с использованием ядра EF. После сохранения данных в базу данных Очередь будет использоваться в качестве выходной привязки для сохранения данных в локальное хранилище. Во-вторых, при вставке данных в хранилище очередей будет создана другая функция. Здесь очередь действует как входная привязка, и данные очереди будут храниться в контейнере Blob-объектов в качестве выходной привязки. Контейнер больших двоичных объектов используется в качестве привязки вывода путем указания атрибута большого двоичного объекта для каждого триггера очереди.

Сценарий:
2) Очередь служебной шины из хранилища Azure, действующая в качестве выходной привязки Во-первых, при запуске HTTP-запроса тело HTTP-запроса будет отправлено в качестве запроса в очередь серверной шины с использованием выходной привязки. Во-вторых, после отправки сообщения в очередь шины сервера будет запущена функция, и данные будут записаны в приложении.

Вот статья в блоге, в которой подробно описаны случаи использования и функции каждой службы.

Если вы хотите отправлять каждое сообщение только в одно место назначения или хотите как можно быстрее написать код, очередь хранения может быть лучшим вариантом. В противном случае очереди служебных шин предоставляют гораздо больше возможностей и гибкости.