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-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.