Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Använd RabbitMQ-utdatabindningen för att skicka meddelanden till 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 kommentaren @RabbitMQOutput från Java RabbitMQ-typerna för att beskriva konfigurationen för en RabbitMQ-köutdatabindning. Funktionen skickar ett meddelande till RabbitMQ-kön när den utlöses av en TimerTrigger var 5:e 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");
}
I följande exempel visas en RabbitMQ-utdatabindning i en function.json-fil och en JavaScript-funktion som använder bindningen. Funktionen läser i meddelandet från en HTTP-utlösare och matar ut det till RabbitMQ-kön.
Här är bindningsdata i filen function.json :
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Här är JavaScript-kod:
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
I följande exempel visas en RabbitMQ-utdatabindning i en function.json-fil och en Python-funktion som använder bindningen. Funktionen läser i meddelandet från en HTTP-utlösare och matar ut det till RabbitMQ-kön.
Här är bindningsdata i filen 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"
}
]
}
I _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'
Attribut
Både isolerade arbetsprocess- och processbaserade C#-bibliotek använder ett attribut för att definiera en utdatabindning som skriver till en RabbitMQ-kö.
Konstruktorn RabbitMQOutputAttribute accepterar följande parametrar:
| Parameter | Beskrivning |
|---|---|
| QueueName | 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. |
| DisableCertificateValidation | Hämtar eller anger ett värde som anger om certifikatverifiering ska inaktiveras. Rekommenderas inte för produktion. Gäller inte när SSL är inaktiverat. |
Kommentarer
Med anteckningen RabbitMQOutput kan du skapa en funktion som körs när ett RabbitMQ-meddelande skapas.
Kommentaren stöder följande konfigurationsinställningar:
| Inställning | 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 | Hämtar eller anger ett värde som anger om certifikatverifiering ska inaktiveras. 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 RabbitMQ. |
| riktning | Måste anges till out. |
| Namn | Namnet på variabeln som representerar kön i funktionskoden. |
| queueName | Namnet på kön som ska skickas meddelanden till. |
| 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 | Hämtar eller anger ett värde som anger om certifikatverifiering ska inaktiveras. 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
Parametertypen som stöds av RabbitMQ-utlösaren beror på functions-körningsversionen, tilläggspaketversionen och den 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 arbetsprocess.
Använd följande parametertyper för utdatabindningen:
-
byte[]– Om parametervärdet är null när funktionen avslutas skapar Functions inte något meddelande. -
string– Om parametervärdet är null när funktionen avslutas skapar Functions inte något meddelande. -
POJO– Om parametervärdet inte är formaterat som ett Java-objekt tas ett fel emot.
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.