Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd RabbitMQ-utlösaren för att svara på meddelanden från en RabbitMQ-kö.
Kommentar
RabbitMQ-bindningarna stöds endast fullt ut i Elastic Premium- och Dedicated-planer (App Service). Flex-förbruknings - och förbrukningsplaner stöds inte ännu.
RabbitMQ-bindningar stöds inte av Azure Functions v1.x-körningen.
Information om konfiguration och konfigurationsinformation finns i översikten.
Exempel
Du kan skapa en C#-funktion med något av följande C#-lägen:
- Isolerad arbetsmodell: Kompilerad C#-funktion som körs i en arbetsprocess som är isolerad från körningen. En isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på långsiktig support (LTS) och icke-LTS-versioner för .NET och .NET Framework.
- Processmodell: Kompilerad C#-funktion som körs i samma process som Azure Functions-körningen.
- C#-skript: Används främst när du skapar C#-funktioner i Azure Portal.
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
[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;
}
Följande Java-funktion använder anteckningen @RabbitMQTrigger från Java RabbitMQ-typerna för att beskriva konfigurationen för en RabbitMQ-köutlösare. Funktionen hämtar meddelandet som placerats i kön och lägger till det i loggarna.
@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);
}
I följande exempel visas en RabbitMQ-utlösarbindning i en function.json-fil och en JavaScript-funktion som använder bindningen. Funktionen läser och loggar ett RabbitMQ-meddelande.
Här är bindningsdata i filen function.json :
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
Här är JavaScript-skriptkoden:
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
I följande exempel visas hur du läser ett RabbitMQ-kömeddelande via en utlösare.
En RabbitMQ-bindning definieras i function.json där typen är inställd på 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-exempel är inte tillgängliga för närvarande.
Attribut
Både isolerade arbetsprocess- och processbaserade C#-bibliotek använder RabbitMQTriggerAttribute för att definiera funktionen, där specifika egenskaper för attributet är beroende av tilläggsversionen.
Attributets konstruktor accepterar följande parametrar:
| Parameter | Beskrivning |
|---|---|
| Könamn | Namnet på kön som meddelanden ska tas emot från. |
| HostName | Den här parametern stöds inte längre och ignoreras. Den tas bort i en framtida version. |
| ConnectionStringSetting | Namnet på appinställningen som innehåller anslutningssträngen för RabbitMQ-servern. Den här inställningen tar bara ett nyckelnamn för appinställningen. Du kan inte ange ett anslutningssträngsvärde direkt. Mer information finns i Anslutningar. |
| UserNameSetting | Den här parametern stöds inte längre och ignoreras. Den tas bort i en framtida version. |
| PasswordSetting | Den här parametern stöds inte längre och ignoreras. Den tas bort i en framtida version. |
| Hamn | Hämtar eller anger den port som används. Standardvärdet är 0, vilket pekar på RabbitMQ-klientens standardportinställning på 5672. |
Kommentarer
Med anteckningen RabbitMQTrigger kan du skapa en funktion som körs när ett RabbitMQ-meddelande skapas.
Kommentaren stöder följande konfigurationsalternativ:
| Parameter | Beskrivning |
|---|---|
| queueName | Namnet på kön som meddelanden ska tas emot från. |
| connectionStringSetting | Namnet på appinställningen som innehåller anslutningssträngen för RabbitMQ-servern. Den här inställningen tar bara ett nyckelnamn för appinställningen. Du kan inte ange ett anslutningssträngsvärde direkt. Mer information finns i Anslutningar. |
| disableCertificateValidation | Booleskt värde som kan anges till true som anger att certifikatverifiering ska inaktiveras. Standardvärdet är false. Rekommenderas inte för produktion. Gäller inte när SSL är inaktiverat. |
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i filen function.json .
| function.json egenskap | Beskrivning |
|---|---|
| typ | Måste anges till RabbitMQTrigger. |
| riktning | Måste anges till in. |
| Namn | Namnet på variabeln som representerar kön i funktionskoden. |
| queueName | Namnet på kön som meddelanden ska tas emot från. |
| connectionStringSetting | Namnet på appinställningen som innehåller anslutningssträngen för RabbitMQ-servern. Den här inställningen tar bara ett nyckelnamn för appinställningen. Du kan inte ange ett anslutningssträngsvärde direkt. Mer information finns i Anslutningar. |
| disableCertificateValidation | Booleskt värde som kan anges till true som anger att certifikatverifiering ska inaktiveras. Standardvärdet är false. Rekommenderas inte för produktion. Gäller inte när SSL är inaktiverat. |
När du utvecklar lokalt lägger du till dina programinställningar i den local.settings.json filen i Values samlingen.
Se avsnittet Exempel för fullständiga exempel.
Förbrukning
Vilken parametertyp som stöds av RabbitMQ-utlösaren beror på vilken C#-modalitet som används.
RabbitMQ-bindningarna stöder för närvarande endast sträng- och serialiserbara objekttyper när de körs i en isolerad process.
Kömeddelandet är tillgängligt via context.bindings.<NAME> där <NAME> matchar namnet som definierats i function.json. Om nyttolasten är JSON deserialiseras värdet till ett objekt.
Connections
Viktigt!
RabbitMQ-bindningen stöder inte Microsoft Entra-autentisering och hanterade identiteter. Du kan använda Azure Key Vault för att centralt hantera dina RabbitMQ-anslutningssträng. Mer information finns i Hantera anslutningar.
Från och med version 2.x av tillägget , hostNameuserNameSetting, och passwordSetting stöds inte längre för att definiera en anslutning till RabbitMQ-servern. Du måste i stället använda connectionStringSetting.
Egenskapen connectionStringSetting kan bara acceptera namnet på ett nyckel/värde-par i appinställningarna. Du kan inte ange ett anslutningssträngvärde direkt i bindningen.
När du till exempel har angett connectionStringSetting till rabbitMQConnection i din bindningsdefinition måste funktionsappen ha en appinställning med namnet rabbitMQConnection som returnerar antingen ett anslutningsvärde som amqp://myuser:***@contoso.rabbitmq.example.com:5672 eller en Azure Key Vault-referens.
När du kör lokalt måste du också ha nyckelvärdet för connectionStringSetting definierat i dinlocal.settings.json-fil . Annars kan appen inte ansluta till tjänsten från den lokala datorn och ett fel inträffar.
Köer med obeställbara meddelanden
Köer och utbyten med obeställbara meddelanden kan inte styras eller konfigureras från RabbitMQ-utlösaren. Om du vill använda köer med obeställbara meddelanden förkonfigurerar du kön som används av utlösaren i RabbitMQ. Se RabbitMQ-dokumentationen.
Aktivera körningsskalning
För att RabbitMQ-utlösaren ska kunna skalas ut till flera instanser måste inställningen Körningsskalningsövervakning vara aktiverad.
I portalen finns den här inställningen under Konfigurationsfunktionens>körningsinställningar för funktionsappen.
I Azure CLI kan du aktivera Körningsskalningsövervakning med hjälp av det här kommandot:
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
Övervaka en RabbitMQ-slutpunkt
Så här övervakar du köer och utbyten för en viss RabbitMQ-slutpunkt:
- Aktivera plugin-programmet för RabbitMQ-hantering
- Bläddra till
http://{node-hostname}:15672och logga in med ditt användarnamn och lösenord.