Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Výstupní vazba RabbitMQ slouží k odesílání zpráv do fronty RabbitMQ.
Poznámka:
Vazby RabbitMQ jsou plně podporovány pouze v plánech Elastic Premium a Dedicated (App Service). Plány Flex Consumption a Consumption se zatím nepodporují.
Vazby RabbitMQ nejsou podporovány modulem runtime Azure Functions v1.x.
Informace o nastavení a konfiguraci najdete v přehledu.
Příklad
Funkci jazyka C# můžete vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces se vyžaduje pro podporu funkcí jazyka C# běžících na dlouhodobé podpoře (LTS) a jiných verzích než LTS pro .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime Azure Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
[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;
}
Následující funkce Java používá poznámku @RabbitMQOutput z typů Java RabbitMQ k popisu konfigurace pro výstupní vazbu fronty RabbitMQ. Funkce odešle zprávu do fronty RabbitMQ při aktivaci časovačem TimerTrigger každých 5 minut.
@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");
}
Následující příklad ukazuje výstupní vazbu RabbitMQ v souboru function.json a funkci JavaScriptu, která používá vazbu. Funkce přečte zprávu z triggeru HTTP a vypíše ji do fronty RabbitMQ.
Tady jsou data vazby v souboru function.json :
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Tady je javascriptový kód:
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
Následující příklad ukazuje výstupní vazbu RabbitMQ v souboru function.json a funkci Pythonu, která používá vazbu. Funkce přečte zprávu z triggeru HTTP a vypíše ji do fronty RabbitMQ.
Tady jsou data vazby v souboru 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"
}
]
}
V _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'
Atributy
Izolované pracovní procesy i knihovny jazyka C# v procesu používají atribut k definování výstupní vazby, která zapisuje do fronty RabbitMQ.
Konstruktor RabbitMQOutputAttribute přijímá tyto parametry:
| Parametr | Popis |
|---|---|
| QueueName | Název fronty, ze které se mají přijímat zprávy. |
| Název hostitele | Tento parametr se už nepodporuje a ignoruje se. Odebere se v budoucí verzi. |
| ConnectionStringSetting | Název nastavení aplikace, které obsahuje připojovací řetězec pro váš server RabbitMQ. Toto nastavení přebírá jenom název klíče nastavení aplikace, ale nemůžete přímo nastavit hodnotu připojovacího řetězce. Další informace najdete v tématu Připojení. |
| Nastavení uživatelského jména | Tento parametr se už nepodporuje a ignoruje se. Odebere se v budoucí verzi. |
| Resetování hesla | Tento parametr se už nepodporuje a ignoruje se. Odebere se v budoucí verzi. |
| Přístav | Získá nebo nastaví použitý port. Výchozí hodnota je 0, která odkazuje na výchozí nastavení 5672portu klienta RabbitMQ . |
| DisableCertificateValidation | Získá nebo nastaví hodnotu označující, zda má být ověření certifikátu zakázáno. Nedoporučuje se pro produkční prostředí. Nevztahuje se, když je protokol SSL zakázaný. |
Poznámky
Poznámka RabbitMQOutput umožňuje vytvořit funkci, která se spustí při vytvoření zprávy RabbitMQ.
Poznámka podporuje následující nastavení konfigurace:
| Nastavení | Popis |
|---|---|
| queueName | Název fronty, ze které se mají přijímat zprávy. |
| connectionStringSetting | Název nastavení aplikace, které obsahuje připojovací řetězec pro váš server RabbitMQ. Toto nastavení přebírá jenom název klíče nastavení aplikace, ale nemůžete přímo nastavit hodnotu připojovacího řetězce. Další informace najdete v tématu Připojení. |
| disableCertificateValidation | Získá nebo nastaví hodnotu označující, zda má být ověření certifikátu zakázáno. Nedoporučuje se pro produkční prostředí. Nevztahuje se, když je protokol SSL zakázaný. |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json .
| vlastnost function.json | Popis |
|---|---|
| typ | Musí být nastavena na RabbitMQhodnotu . |
| směr | Musí být nastavena na outhodnotu . |
| Jméno | Název proměnné, která představuje frontu v kódu funkce. |
| queueName | Název fronty pro odesílání zpráv. |
| connectionStringSetting | Název nastavení aplikace, které obsahuje připojovací řetězec pro váš server RabbitMQ. Toto nastavení přebírá jenom název klíče nastavení aplikace, ale nemůžete přímo nastavit hodnotu připojovacího řetězce. Další informace najdete v tématu Připojení. |
| disableCertificateValidation | Získá nebo nastaví hodnotu označující, zda má být ověření certifikátu zakázáno. Nedoporučuje se pro produkční prostředí. Nevztahuje se, když je protokol SSL zakázaný. |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values .
Kompletní příklady najdete v části Příklad.
Využití
Typ parametru podporovaný triggerem RabbitMQ závisí na verzi modulu runtime functions, verzi balíčku rozšíření a použitém způsobu použití jazyka C#.
Vazby RabbitMQ v současné době podporují pouze řetězcové a serializovatelné typy objektů při spuštění v izolovaném pracovním procesu.
Pro výstupní vazbu použijte následující typy parametrů:
-
byte[]– Pokud je hodnota parametru při ukončení funkce null, funkce nevytvoří zprávu. -
string– Pokud je hodnota parametru při ukončení funkce null, funkce nevytvoří zprávu. -
POJO– Pokud hodnota parametru není naformátovaná jako objekt Java, zobrazí se chyba.
Zpráva fronty je dostupná prostřednictvím context.bindings.<NAME> toho, kde <NAME> odpovídá názvu definovanému v function.json. Pokud datová část je JSON, hodnota se deserializuje do objektu.
Connections
Důležité
Vazba RabbitMQ nepodporuje ověřování Microsoft Entra a spravované identity. Azure Key Vault můžete použít k centrální správě připojovací řetězec RabbitMQ. Další informace najdete v tématu Správa připojení.
Počínaje verzí 2.x rozšíření hostName, userNameSettinga passwordSetting již nejsou podporovány k definování připojení k serveru RabbitMQ. Musíte místo toho použít connectionStringSetting.
Vlastnost connectionStringSetting může v nastavení aplikace přijmout pouze název páru klíč-hodnota. V vazbě nelze přímo nastavit hodnotu připojovacího řetězce.
Pokud jste například nastavili connectionStringSettingrabbitMQConnection definici vazby, musí mít vaše aplikace funkcí nastavení aplikace s názvem rabbitMQConnection , které vrací hodnotu připojení, jako je nebo amqp://myuser:***@contoso.rabbitmq.example.com:5672odkaz služby Azure Key Vault.
Při místním spuštění musíte mít také hodnotu klíče definovanou connectionStringSetting v souborulocal.settings.json . Jinak se vaše aplikace nemůže připojit ke službě z místního počítače a dojde k chybě.