Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Выходные привязки 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 использует заметку @RabbitMQOutput из типов Java RabbitMQ для описания конфигурации выходной привязки очереди RabbitMQ. Эта функция отправляет сообщение в очередь RabbitMQ при активации TimerTrigger каждые 5 минут.
@FunctionName("RabbitMQOutputExample")
public void run(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
@RabbitMQOutput(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "hello") OutputBinding<String> output,
final ExecutionContext context) {
output.setValue("Some string");
}
В следующем примере показаны выходная привязка RabbitMQ в файле function.json и функция JavaScript, которая использует эту привязку. Функция считывает сообщение из триггера HTTP и выводит его в очередь RabbitMQ.
Данные привязки в файле function.json:
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Код JavaScript:
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
В следующем примере показаны выходная привязка RabbitMQ в файле function.json и функция Python, которая ее использует. Функция считывает сообщение из триггера HTTP и выводит его в очередь RabbitMQ.
Данные привязки в файле function.json:
{
"scriptFile": "__init__.py",
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "$return"
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
В _init_.py:
import azure.functions as func
def main(req: func.HttpRequest, outputMessage: func.Out[str]) -> func.HttpResponse:
input_msg = req.params.get('message')
outputMessage.set(input_msg)
return 'OK'
Атрибуты
Как изолированный рабочий процесс , так и библиотеки C# используют атрибут для определения выходной привязки, записываемой в очередь RabbitMQ.
Конструктор RabbitMQOutputAttribute принимает следующие параметры:
| Параметр | Описание |
|---|---|
| Имя очереди | Имя очереди, из которой нужно получать сообщения. |
| Имя хоста | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| ConnectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| Настройка имени пользователя | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| Настройка пароля | Этот параметр больше не поддерживается и игнорируется. Он будет удален в будущей версии. |
| порт. | Возвращает или задает используемый порт. По умолчанию принимает значение 0, которое указывает на порт клиента RabbitMQ по умолчанию: 5672. |
| DisableCertificateValidation | Возвращает или задает значение, указывающее, следует ли отключать проверку сертификата. Не рекомендуется для рабочей среды. Не применяется при отключении SSL. |
Заметки
Заметка RabbitMQOutput позволяет создать функцию, которая выполняется при создании сообщения RabbitMQ.
Эта заметка поддерживает следующие параметры конфигурации:
| Параметр | Описание |
|---|---|
| queueName | Имя очереди, из которой нужно получать сообщения. |
| connectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| disableCertificateValidation | Возвращает или задает значение, указывающее, следует ли отключать проверку сертификата. Не рекомендуется для рабочей среды. Не применяется при отключении SSL. |
Настройка
В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.
| Свойство в function.json | Описание |
|---|---|
| тип | Должен иметь значениеRabbitMQ. |
| направление | Должен иметь значениеout. |
| имя | Имя переменной, представляющей очередь в коде функции. |
| queueName | Имя очереди, в которую отправляются сообщения. |
| connectionStringSetting | Имя параметра приложения, содержащего строку подключения для сервера RabbitMQ. Этот параметр принимает только имя ключа параметра приложения, вы не можете напрямую задать строковое значение подключения. Дополнительные сведения см. в разделе "Подключения". |
| disableCertificateValidation | Возвращает или задает значение, указывающее, следует ли отключать проверку сертификата. Не рекомендуется для рабочей среды. Не применяется при отключении SSL. |
Если разработка ведется на локальном компьютере, добавьте параметры приложения в файл local.settings.json в коллекции Values.
Подробные примеры см. в разделе Примеры.
Использование
Тип параметра, поддерживаемый триггером RabbitMQ, зависит от версии среды выполнения Функций, версии пакета расширения и используемой модальности C#.
Привязки RabbitMQ в настоящее время поддерживают только строковые и сериализуемые типы объектов при выполнении в изолированном рабочем процессе.
Для выходной привязки можно использовать параметры следующих типов:
-
byte[]Если при выходе из функции параметр имеет значение NULL, то служба "Функции" не создает сообщение. -
stringЕсли при выходе из функции параметр имеет значение NULL, то служба "Функции" не создает сообщение. -
POJO. Если значение параметра не отформатировано как объект Java, возвращается ошибка.
Сообщение очереди доступно через 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 . В противном случае приложение не может подключиться к службе с локального компьютера и возникает ошибка.