Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба "Функции Azure" интегрируются со Служебной шиной Azure с помощью триггеров и привязок. Интеграция со служебной шиной позволяет создавать функции, которые реагируют на сообщения очереди или раздела и отправляют сообщения в них.
Действие | Тип |
---|---|
Выполнение функции при создании сообщения очереди или раздела Служебной шины | Триггер |
Отправка сообщений Служебной шины Azure | Выходная привязка |
Установка расширения
Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:
Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.
Добавьте расширение в проект, установив данный пакет NuGet.
Функциональные возможности расширения отличаются в зависимости от версии расширения:
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эта версия позволяет выполнить привязку к типам из Azure.Messaging.ServiceBus.
Эта версия поддерживает настройку триггеров и привязок с помощью интеграции .NET Aspire.
Добавьте расширение в проект, установив пакет NuGet версии 5.x.
Установка пакета
Привязка служебной шины входит в пакет расширений, который указан в файле проекта host.json. Возможно, потребуется изменить этот пакет, чтобы изменить версию привязки, а также в том случае если пакеты еще не установлены. Дополнительные сведения см. в разделе Пакет расширений.
В этой версии появляется возможность подключения с использованием удостоверения, а не секрета. Руководство по настройке приложений-функций с помощью управляемых удостоверений см. в руководстве по созданию приложения-функции с подключениями на основе удостоверений.
Эту версию расширения можно добавить из пакета расширений версии 3, добавив или заменив следующий код в файле host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Для получения дополнительных сведений см. раздел Обновление расширений.
Типы привязки
Типы привязки, поддерживаемые для .NET, зависят от версии расширения и режима выполнения C#, что может быть одним из следующих типов:
Изолированная библиотека классов рабочих процессов, скомпилированная функция C# выполняется в процессе, изолированном от среды выполнения.
Выберите версию, чтобы просмотреть сведения о типе привязки для режима и версии.
Изолированный рабочий процесс поддерживает типы параметров в соответствии с таблицами ниже.
Триггер служебной шины
Если требуется, чтобы функция обрабатывала одно сообщение, триггер служебная шина может привязаться к следующим типам:
Тип | Описание |
---|---|
string |
Сообщение в виде строки. Используется, когда сообщение является простым текстом. |
byte[] |
Байт сообщения. |
Сериализуемые в JSON типы | Если событие содержит данные JSON, функции пытаются десериализировать данные JSON в обычный тип объекта CLR (POCO). |
ServiceBusReceivedMessage1 | Объект сообщения. При привязке ServiceBusReceivedMessage к ней можно также включить параметр типа ServiceBusMessageActions1,2 для выполнения действий по урегулированию сообщений. |
Если требуется, чтобы функция обрабатывала пакет сообщений, триггер служебная шина может привязаться к следующим типам:
Тип | Описание |
---|---|
T[] где T является одним из типов одного сообщения |
Массив событий из пакета. Каждая запись представляет одно событие. При привязке ServiceBusReceivedMessage[] к ней можно также включить параметр типа ServiceBusMessageActions1,2 для выполнения действий по урегулированию сообщений. |
1 Для использования этих типов необходимо ссылаться на Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.14.1 или более поздней версии и общие зависимости для привязок типов ПАКЕТА SDK.
2 При использовании ServiceBusMessageActions
задайте AutoCompleteMessages
для свойства атрибута триггера значение false
. Это предотвращает попытку выполнения сообщений после успешного вызова функции.
выходная привязка служебная шина
Если требуется, чтобы функция записывала одно сообщение, служебная шина выходная привязка может привязаться к следующим типам:
Тип | Описание |
---|---|
string |
Сообщение в виде строки. Используется, когда сообщение является простым текстом. |
byte[] |
Байт сообщения. |
Сериализуемые в JSON типы | Объект, представляющий сообщение. Функции пытаются сериализовать обычный тип объекта CLR (POCO) в данные JSON. |
Если требуется, чтобы функция записывала несколько сообщений, служебная шина выходная привязка может привязаться к следующим типам:
Тип | Описание |
---|---|
T[] где T является одним из типов одного сообщения |
Массив, содержащий несколько сообщений. Каждая запись представляет одно сообщение. |
Для других сценариев вывода создайте и используйте ServiceBusClient с другими типами из Azure.Messaging.ServiceBus напрямую. Пример использования внедрения зависимостей для создания типа клиента из пакета SDK Azure см. в статье "Регистрация клиентов Azure".
Типы привязки ПАКЕТА SDK
Типы SDK для служебной шины Azure доступны в предварительной версии. Чтобы приступить к работе с типами пакетов SDK для Служебной шины в Python, следуйте указаниям привязок пакета SDK для Python .
Внимание
Для привязок типов SDK требуется модель программирования Python версии 2.
Привязка | Типы параметров | Образцы |
---|---|---|
Триггер ServiceBus | ServiceBusReceivedMessage | ServiceBusReceivedMessage |
Параметры файла 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,
"minMessageBatchSize": 1,
"maxBatchWaitTime": "00:00:30",
"sessionIdleTimeout": "00:01:00",
"enableCrossEntityTransactions": false
}
}
}
Параметры clientRetryOptions
применяются только к взаимодействию со службой служебная шина. Они не влияют на повторные попытки выполнения функций. Дополнительные сведения см. в разделе "Повторные попытки".
1 Использование minMessageBatchSize
и maxBatchWaitTime
требует версии 5.10.0Microsoft.Azure.WebJobs.Extensions.ServiceBus
пакета или более поздней версии.