Привязки служебной шины 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. |