Översikt över RabbitMQ-utdatabindning för Azure Functions
Kommentar
RabbitMQ-bindningarna stöds endast fullt ut i Premium- och Dedicated-abonnemang . Förbrukning stöds inte.
Använd RabbitMQ-utdatabindningen för att skicka meddelanden till en RabbitMQ-kö.
Information om konfiguration och konfigurationsinformation finns i översikten.
Exempel
En C#-funktion kan skapas 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. Isolerad arbetsprocess krävs för att stödja C#-funktioner som körs på LTS- och icke-LTS-versioner .NET och .NET Framework.
- Processmodell: Kompilerad C#-funktion som körs i samma process som 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
C#-bibliotek för både process- och isolerad arbetsprocess använder attributet för att definiera funktionen. C#-skriptet använder i stället en function.json konfigurationsfil.
Attributets konstruktor tar följande parametrar:
Parameter | Description |
---|---|
QueueName | Namnet på kön som meddelanden ska tas emot från. |
HostName | Värdnamn för kön, till exempel 10.26.45.210. Ignoreras när du använder ConnectStringSetting . |
UserNameSetting | Namnet på appinställningen som innehåller användarnamnet för åtkomst till kön, till exempel UserNameSetting: "%< UserNameFromSettings >%" . Ignoreras när du använder ConnectStringSetting . |
PasswordSetting | Namnet på appinställningen som innehåller lösenordet för att komma åt kön, till exempel PasswordSetting: "%< PasswordFromSettings >%" . Ignoreras när du använder ConnectStringSetting . |
ConnectionStringSetting | Namnet på appinställningen som innehåller RabbitMQ-meddelandekön anslutningssträng. Utlösaren fungerar inte när du anger anslutningssträng direkt i stället via en appinställning. När du till exempel har angett ConnectionStringSetting: "rabbitMQConnection" behöver du i både local.settings.json och i funktionsappen en inställning som "RabbitMQConnection" : "< ActualConnectionstring >" . |
Port | Hämtar eller anger den port som används. Standardvärdet är 0, vilket pekar på RabbitMQ-klientens standardportinställning på 5672 . |
I C#-klassbibliotek använder du attributet RabbitMQTrigger .
Här är ett RabbitMQTrigger
attribut i en metodsignatur för ett isolerat arbetsprocessbibliotek:
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
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. |
hostName | Värdnamn för kön, till exempel 10.26.45.210. Ignoreras när du använder ConnectStringSetting . |
userNameSetting | Namnet på appinställningen som innehåller användarnamnet för åtkomst till kön, till exempel UserNameSetting: "%< UserNameFromSettings >%" . Ignoreras när du använder ConnectStringSetting . |
passwordSetting | Namnet på appinställningen som innehåller lösenordet för att komma åt kön, till exempel PasswordSetting: "%< PasswordFromSettings >%" . Ignoreras när du använder ConnectStringSetting . |
connectionStringSetting | Namnet på appinställningen som innehåller RabbitMQ-meddelandekön anslutningssträng. Utlösaren fungerar inte när du anger anslutningssträng direkt i stället via en appinställning. När du till exempel har angett ConnectionStringSetting: "rabbitMQConnection" behöver du i både local.settings.json och i funktionsappen en inställning som "RabbitMQConnection" : "< ActualConnectionstring >" . |
port | Hämtar eller anger den port som används. Standardvärdet är 0, vilket pekar på RabbitMQ-klientens standardportinställning på 5672 . |
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. |
hostName | Värdnamn för kön, till exempel 10.26.45.210. Ignoreras när du använder connectStringSetting . |
userName | Namnet på appinställningen som innehåller användarnamnet för åtkomst till kön, till exempel UserNameSetting: "< UserNameFromSettings >". Ignoreras när du använder connectStringSetting . |
lösenord | Namnet på appinställningen som innehåller lösenordet för åtkomst till kön, till exempel UserNameSetting: "< UserNameFromSettings >". Ignoreras när du använder connectStringSetting . |
connectionStringSetting | Namnet på appinställningen som innehåller RabbitMQ-meddelandekön anslutningssträng. Utlösaren fungerar inte när du anger anslutningssträng direkt i stället för via en appinställning i local.settings.json . När du till exempel har angett connectionStringSetting: "rabbitMQConnection" i både local.settings.json och i funktionsappen behöver du en inställning som "rabbitMQConnection" : "< ActualConnectionstring >" . |
port | Hämtar eller anger den port som används. Standardvärdet är 0, vilket pekar på RabbitMQ-klientens standardportinställning på 5672 . |
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.
Ett fullständigt exempel finns i C#- exempel.
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.