Привязки служебной шины Azure для службы "Функции Azure"

Служба "Функции Azure" интегрируются со Служебной шиной Azure с помощью триггеров и привязок. Интеграция со служебной шиной позволяет создавать функции, которые реагируют на сообщения очереди или раздела и отправляют сообщения в них.

Действие Тип
Выполнение функции при создании сообщения очереди или раздела Служебной шины Триггер
Отправка сообщений Служебной шины Azure Выходная привязка

Установка расширения

Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:

Функции выполняются в том же процессе, что и хост-процесс функций. Дополнительные сведения см. в статье Разработка функций библиотеки классов C# с помощью службы "Функции Azure".

Добавьте расширение в проект, установив данный пакет NuGet.

Функциональные возможности расширения отличаются в зависимости от версии расширения:

В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.

Эта версия позволяет выполнить привязку к типам из Azure.Messaging.ServiceBus.

Эта версия расширения доступна путем установки пакета NuGet версии 5.x или более поздней.

Установка пакета

Привязка служебной шины входит в пакет расширений, который указан в файле проекта host.json. Возможно, потребуется изменить этот пакет, чтобы изменить версию привязки, а также в том случае если пакеты еще не установлены. Дополнительные сведения см. в разделе Пакет расширений.

В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.

Эту версию расширения можно добавить из пакета расширений версии 3, добавив или заменив следующий код в файле host.json:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Для получения дополнительных сведений см. раздел Обновление расширений.

Параметры файла host.json

В этом разделе описываются параметры конфигурации, доступные для этой привязки, которые зависят от среды выполнения и версии расширения.

{
    "version": "2.0",
    "extensions": {
        "serviceBus": {
            "clientRetryOptions":{
                "mode": "exponential",
                "tryTimeout": "00:01:00",
                "delay": "00:00:00.80",
                "maxDelay": "00:01:00",
                "maxRetries": 3
            },
            "prefetchCount": 0,
            "transportType": "amqpWebSockets",
            "webProxy": "https://proxyserver:8080",
            "autoCompleteMessages": true,
            "maxAutoLockRenewalDuration": "00:05:00",
            "maxConcurrentCalls": 16,
            "maxConcurrentSessions": 8,
            "maxMessageBatchSize": 1000,
            "sessionIdleTimeout": "00:01:00",
            "enableCrossEntityTransactions": false
        }
    }
}

Параметры clientRetryOptions применяются только к взаимодействию со службой служебной шины. Они не влияют на повторные попытки выполнения функций. Дополнительные сведения см. в разделе Повторные попытки.

Свойство По умолчанию Описание
mode Exponential Режим, используемый для расчета интервалов повтора. В стандартном экспоненциальном режиме попытки будут повторяться с интервалом, основанном на стратегии отсрочки, в соответствии с которой время перед каждой следующей попыткой увеличивается. В режиме Fixed попытки будут повторяться через постоянные интервалы.
tryTimeout 00:01:00 Максимальное время ожидания операции за попытку.
delay 00:00:00.80 Коэффициент задержки или отсрочки, применяемый между повторными попытками.
maxDelay 00:01:00 Максимальная задержка между повторными попытками
maxRetries 3 Максимальное количество повторных попыток, после которого связанная операция будет считаться неудавшейся.
prefetchCount 0 Возвращает или задает число сообщений, которое получатель сообщений может запросить одновременно.
transportType amqpTcp Протокол и транспорт, которые используются для обмена данными со служебной шиной Azure. Доступные параметры: amqpTcp, amqpWebSockets
webProxy Н/Д Прокси-сервер, используемый для обмена данными со служебной шиной Azure через веб-сокеты. Прокси-сервер нельзя использовать с транспортом amqpTcp.
autoCompleteMessages true Определяет, следует ли автоматически завершать обработку сообщений после успешного выполнения функции, и должен использоваться вместо параметра конфигурации autoComplete.
maxAutoLockRenewalDuration 00:05:00 Максимальный период времени, в течение которого блокировка сообщения будет продлеваться автоматически. Этот параметр применяется только для функций, получающих одно сообщение за раз.
maxConcurrentCalls 16 Максимальное количество одновременных обращений к обратному вызову, которое должно инициироваться для каждого масштабируемого экземпляра. По умолчанию в среде выполнения службы "Функции" одновременно обрабатывается несколько сообщений очереди. Этот параметр используется, только если свойству isSessionsEnabled или атрибуту триггера присвоено значение false. Этот параметр применяется только для функций, получающих одно сообщение за раз.
maxConcurrentSessions 8 Максимальное количество сеансов, которые могут обрабатываться одновременно на масштабируемый экземпляр. Этот параметр используется, только если свойству isSessionsEnabled или атрибуту триггера присвоено значение true. Этот параметр применяется только для функций, получающих одно сообщение за раз.
maxMessageBatchSize 1000 Максимальное количество сообщений, которые будут передаваться при каждом вызове функции. Этот параметр применяется только для функций, которые получают пакет сообщений.
sessionIdleTimeout Недоступно Максимальное время ожидания сообщения для активного сеанса. По истечении этого времени сеанс будет закрыт, а функция попытается обработать другой сеанс.
enableCrossEntityTransactions false Следует ли включать транзакции, охватывающие несколько сущностей в пространстве имен служебной шины Azure.

Дальнейшие действия