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.
Pomocí triggeru RabbitMQ můžete reagovat na zprávy z 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 @RabbitMQTrigger z typů Java RabbitMQ k popisu konfigurace triggeru fronty RabbitMQ. Funkce vezme zprávu umístěnou ve frontě a přidá ji do protokolů.
@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);
}
Následující příklad ukazuje vazbu triggeru RabbitMQ v souboru function.json a funkci JavaScriptu, která používá vazbu. Funkce přečte a zaprokoluje zprávu RabbitMQ.
Tady jsou data vazby v souboru function.json :
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
Tady je kód skriptu JavaScriptu:
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
Následující příklad ukazuje, jak číst zprávu fronty RabbitMQ prostřednictvím triggeru.
Vazba RabbitMQ je definována v function.json , kde je typ nastaven na 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)
Příklady PowerShellu nejsou momentálně dostupné.
Atributy
Izolované pracovní procesy i knihovny jazyka C# v procesu slouží RabbitMQTriggerAttribute k definování funkce, kde konkrétní vlastnosti atributu závisí na verzi rozšíření.
Konstruktor atributu přijímá tyto parametry:
| Parametr | Popis |
|---|---|
| Název fronty | 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 . |
Poznámky
Poznámka RabbitMQTrigger umožňuje vytvořit funkci, která se spustí při vytvoření zprávy RabbitMQ.
Poznámka podporuje následující možnosti konfigurace:
| Parametr | 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 | Logická hodnota, která může být nastavena tak, aby true indikující, že ověření certifikátu by mělo být zakázáno. Výchozí hodnota je false. 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 RabbitMQTriggerhodnotu . |
| směr | Musí být nastavena na inhodnotu . |
| Jméno | Název proměnné, která představuje frontu v kódu funkce. |
| 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 | Logická hodnota, která může být nastavena tak, aby true indikující, že ověření certifikátu by mělo být zakázáno. Výchozí hodnota je false. 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 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 procesu.
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ě.
Fronty nedoručených zpráv
Fronty a výměny nedoručených zpráv nelze řídit ani konfigurovat z triggeru RabbitMQ. Pokud chcete použít fronty nedoručených zpráv, předkonfigurujte frontu používanou triggerem v RabbitMQ. Projděte si dokumentaci k RabbitMQ.
Povolení škálování modulu runtime
Aby trigger RabbitMQ škáloval kapacitu na více instancí, musí být povolené nastavení monitorování škálování modulu runtime.
Toto nastavení najdete na portálu v části >funkce pro vaši aplikaci funkcí.
V Azure CLI můžete povolit monitorování škálování modulu runtime pomocí tohoto příkazu:
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
Monitorování koncového bodu RabbitMQ
Monitorování front a výměn pro určitý koncový bod RabbitMQ:
- Povolení modulu plug-in pro správu RabbitMQ
- Přejděte a
http://{node-hostname}:15672přihlaste se pomocí svého uživatelského jména a hesla.