Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Триггер RabbitMQ используется для реагирования на сообщения из очереди RabbitMQ.
Примечание.
Привязки RabbitMQ полностью поддерживаются только в планах Elastic Premium и Выделенных (Служба приложений). Планы потребления и потребления Flex пока не поддерживаются.
Привязки RabbitMQ не поддерживаются средой выполнения Функции Azure версии 1.x.
Сведения об установке и настройке см. в обзорной статье.
Пример
Вы можете создать функцию C# с помощью одного из следующих режимов C#:
- Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в долгосрочной поддержке (LTS) и версиях, отличных от LTS для .NET и .NET Framework.
- Модель в процессе: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций Azure.
- Скрипт C#: используется в основном при создании функций C# в портал Azure.
Внимание
Поддержка будет завершена для модели в процессе 10 ноября 2026 г. Настоятельно рекомендуется перенести приложения в изолированную рабочую модель для полной поддержки.
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
var logger = context.GetLogger(nameof(RabbitMQFunction));
logger.LogInformation(item);
var message = $"Output message created at {DateTime.Now}";
return message;
}
Следующая функция Java использует заметку @RabbitMQTrigger из типов Java RabbitMQ для описания конфигурации триггера очереди RabbitMQ. Функция извлекает сообщение, помещенное в очередь, и добавляет его в журналы.
@FunctionName("RabbitMQTriggerExample")
public void run(
@RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
final ExecutionContext context)
{
context.getLogger().info("Java HTTP trigger processed a request." + input);
}
В примере ниже показаны привязка триггера RabbitMQ в файле function.json и функция JavaScript, которая ее использует. Функция считывает и записывает сообщение RabbitMQ в журнал.
Данные привязки в файле function.json:
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
Ниже показан код сценария JavaScript.
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
В примере ниже показано, как прочитать сообщение очереди RabbitMQ через триггер.
Привязка RabbitMQ определяется в файле function.json, в котором для параметра type задано значение RabbitMQTrigger.
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
import logging
import azure.functions as func
def main(myQueueItem) -> None:
logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)
Примеры PowerShell в настоящее время недоступны.
Атрибуты
Как изолированный рабочий процесс , так и библиотеки C# , используемые RabbitMQTriggerAttribute для определения функции, где определенные свойства атрибута зависят от версии расширения.
Конструктор атрибута принимает следующие параметры:
| Параметр | Описание |
|---|---|
| Имя очереди | Имя очереди, из которой нужно получать сообщения. |
| Имя хоста | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| ConnectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| Настройка имени пользователя | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| Настройка пароля | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| порт. | Возвращает или задает используемый порт. По умолчанию принимает значение 0, которое указывает на порт клиента RabbitMQ по умолчанию: 5672. |
Заметки
Заметка RabbitMQTrigger позволяет создать функцию, которая выполняется при создании сообщения RabbitMQ.
Эта заметка поддерживает следующие параметры конфигурации:
| Параметр | Описание |
|---|---|
| queueName | Имя очереди, из которой нужно получать сообщения. |
| connectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| disableCertificateValidation | Логическое значение, которое можно задать, true указывающее, что проверка сертификата должна быть отключена. Значение по умолчанию: false. Не рекомендуется для рабочей среды. Не применяется при отключении SSL. |
Настройка
В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.
| Свойство в function.json | Описание |
|---|---|
| тип | Должен иметь значениеRabbitMQTrigger. |
| направление | Должен иметь значениеin. |
| имя | Имя переменной, представляющей очередь в коде функции. |
| queueName | Имя очереди, из которой нужно получать сообщения. |
| connectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| disableCertificateValidation | Логическое значение, которое можно задать, true указывающее, что проверка сертификата должна быть отключена. Значение по умолчанию: false. Не рекомендуется для рабочей среды. Не применяется при отключении SSL. |
Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.
Подробные примеры см. в разделе Примеры.
Использование
Тип параметра, поддерживаемый триггером RabbitMQ, зависит от используемой модальности C#.
Привязки RabbitMQ в настоящее время поддерживают только строковые и сериализуемые типы объектов при выполнении в изолированном процессе.
Сообщение очереди доступно через context.bindings.<NAME>, где <NAME> совпадает с именем, определенным в function.json. Если полезные данные представлены в виде JSON, значение десериализируется в объект.
Connections
Внимание
Привязка RabbitMQ не поддерживает проверку подлинности и управляемые удостоверения Microsoft Entra. Azure Key Vault можно использовать для централизованного управления строка подключения RabbitMQ. Дополнительные сведения см. в разделе "Управление подключениями".
Начиная с версии 2.x расширения, hostNameuserNameSettingи passwordSetting больше не поддерживаются для определения подключения к серверу RabbitMQ. Вместо этого необходимо использовать connectionStringSetting.
Свойство connectionStringSetting может принимать только имя пары "ключ-значение" в параметрах приложения. Невозможно напрямую задать строковое значение строки подключения в привязке.
Например, если вы установили connectionStringSettingrabbitMQConnection значение в определении привязки, приложение-функция должна иметь параметр приложения с именем rabbitMQConnection , возвращающим значение подключения, например amqp://myuser:***@contoso.rabbitmq.example.com:5672 или ссылку Azure Key Vault.
При локальном запуске необходимо также иметь значение ключа для connectionStringSetting определенного в файлеlocal.settings.json . В противном случае приложение не может подключиться к службе с локального компьютера и возникает ошибка.
Очереди недоставленных сообщений
Управлять очередями недоставленных сообщений и их обменом и настраивать их с помощью триггера RabbitMQ нельзя. Чтобы использовать очереди недоставленных сообщений, необходимо сначала настроить очередь, используемую триггером в RabbitMQ. См. документацию по RabbitMQ.
Настройка масштабирования среды выполнения
Чтобы триггер RabbitMQ можно было масштабировать на несколько экземпляров, необходимо включить параметр мониторинг масштаба среды выполнения.
На портале его можно найти в разделе Конфигурация>Параметры среды выполнения функции для приложения функции.
В Azure CLI можно включить мониторинг масштабирования среды выполнения с помощью следующей команды:
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
Мониторинг конечной точки RabbitMQ
Для мониторинга очередей и обмена для определенной конечной точки RabbitMQ:
- Включите подключаемый модуль управления RabbitMQ.
- Перейдите и
http://{node-hostname}:15672войдите в систему с именем пользователя и паролем.