Přehled výstupní vazby RabbitMQ pro Azure Functions
Poznámka:
Vazby RabbitMQ jsou plně podporovány pouze v plánech Premium a Dedicated . Spotřeba se nepodporuje.
Výstupní vazba RabbitMQ slouží k odesílání zpráv do fronty RabbitMQ.
Informace o nastavení a konfiguraci najdete v přehledu.
Příklad
Funkci jazyka C# je možné 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 je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby 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 @RabbitMQOutput
z typů Java RabbitMQ k popisu konfigurace pro výstupní vazbu fronty RabbitMQ. Funkce odešle zprávu do fronty RabbitMQ při aktivaci časovačem TimerTrigger každých 5 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");
}
Následující příklad ukazuje výstupní vazbu RabbitMQ v souboru function.json a funkci JavaScriptu, která používá vazbu. Funkce přečte zprávu z triggeru HTTP a vypíše ji do fronty RabbitMQ.
Tady jsou data vazby v souboru function.json :
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Tady je javascriptový kód:
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
Následující příklad ukazuje výstupní vazbu RabbitMQ v souboru function.json a funkci Pythonu, která používá vazbu. Funkce přečte zprávu z triggeru HTTP a vypíše ji do fronty RabbitMQ.
Tady jsou data vazby v souboru 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"
}
]
}
V _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'
Atributy
Knihovny C# v procesu i izolovaného pracovního procesu používají atribut k definování funkce. Skript jazyka C# místo toho používá konfigurační soubor function.json.
Konstruktor atributu přebírá následující parametry:
Parametr | Popis |
---|---|
QueueName | Název fronty, ze které se mají přijímat zprávy. |
Název hostitele | Název hostitele fronty, například 10.26.45.210. Ignorováno při použití ConnectStringSetting . |
UserNameSetting | Název nastavení aplikace, které obsahuje uživatelské jméno pro přístup k frontě, například UserNameSetting: "%< UserNameFromSettings >%" . Ignorováno při použití ConnectStringSetting . |
Resetování hesla | Název nastavení aplikace, které obsahuje heslo pro přístup k frontě, například PasswordSetting: "%< PasswordFromSettings >%" . Ignorováno při použití ConnectStringSetting . |
ConnectionStringSetting | Název nastavení aplikace obsahující frontu zpráv RabbitMQ připojovací řetězec. Trigger nebude fungovat, když zadáte připojovací řetězec přímo prostřednictvím nastavení aplikace. Pokud jste například nastavili ConnectionStringSetting: "rabbitMQConnection" , pak v local.settings.json i v aplikaci funkcí potřebujete nastavení, jako "RabbitMQConnection" : "< ActualConnectionstring >" je . |
Port | Získá nebo nastaví použitý port. Výchozí hodnota je 0, která odkazuje na výchozí nastavení 5672 portu klienta RabbitMQ . |
V knihovnách tříd jazyka C# použijte atribut RabbitMQTrigger .
Tady je RabbitMQTrigger
atribut v podpisu metody pro knihovnu izolovaných pracovních procesů:
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
Poznámky
Poznámka RabbitMQOutput
umožňuje vytvořit funkci, která se spustí při vytvoření zprávy RabbitMQ.
Poznámka podporuje následující nastavení konfigurace:
Nastavení | Popis |
---|---|
queueName | Název fronty, ze které se mají přijímat zprávy. |
hostName | Název hostitele fronty, například 10.26.45.210. Ignorováno při použití ConnectStringSetting . |
userNameSetting | Název nastavení aplikace, které obsahuje uživatelské jméno pro přístup k frontě, například UserNameSetting: "%< UserNameFromSettings >%" . Ignorováno při použití ConnectStringSetting . |
resetování hesla | Název nastavení aplikace, které obsahuje heslo pro přístup k frontě, například PasswordSetting: "%< PasswordFromSettings >%" . Ignorováno při použití ConnectStringSetting . |
connectionStringSetting | Název nastavení aplikace obsahující frontu zpráv RabbitMQ připojovací řetězec. Trigger nebude fungovat, když zadáte připojovací řetězec přímo prostřednictvím nastavení aplikace. Pokud jste například nastavili ConnectionStringSetting: "rabbitMQConnection" , pak v local.settings.json i v aplikaci funkcí potřebujete nastavení, jako "RabbitMQConnection" : "< ActualConnectionstring >" je . |
port | Získá nebo nastaví použitý port. Výchozí hodnota je 0, která odkazuje na výchozí nastavení 5672 portu klienta RabbitMQ . |
Další podrobnosti najdete v příkladu výstupní vazby.
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json .
vlastnost function.json | Popis |
---|---|
type | Musí být nastavena na RabbitMQ hodnotu . |
direction | Musí být nastavena na out hodnotu . |
Jméno | Název proměnné, která představuje frontu v kódu funkce. |
queueName | Název fronty pro odesílání zpráv. |
hostName | Název hostitele fronty, například 10.26.45.210. Ignorováno při použití connectStringSetting . |
userName | Název nastavení aplikace, které obsahuje uživatelské jméno pro přístup k frontě, například UserNameSetting: "< UserNameFromSettings >". Ignorováno při použití connectStringSetting . |
heslo | Název nastavení aplikace, které obsahuje heslo pro přístup k frontě, například UserNameSetting: "< UserNameFromSettings >". Ignorováno při použití connectStringSetting . |
connectionStringSetting | Název nastavení aplikace obsahující frontu zpráv RabbitMQ připojovací řetězec. Trigger nebude fungovat, když zadáte připojovací řetězec přímo místo nastavení aplikace v local.settings.json souboru . Pokud jste například nastavili connectionStringSetting: "rabbitMQConnection" local.settings.json i v aplikaci funkcí, potřebujete nastavení jako "rabbitMQConnection" : "< ActualConnectionstring >" . |
port | Získá nebo nastaví použitý port. Výchozí hodnota je 0, která odkazuje na výchozí nastavení 5672 portu klienta RabbitMQ . |
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 verzi modulu runtime functions, verzi balíčku rozšíření a 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 pracovním procesu.
Pro výstupní vazbu použijte následující typy parametrů:
byte[]
– Pokud je hodnota parametru při ukončení funkce null, funkce nevytvoří zprávu.string
– Pokud je hodnota parametru při ukončení funkce null, funkce nevytvoří zprávu.POJO
– Pokud hodnota parametru není naformátovaná jako objekt Java, zobrazí se chyba.
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.
Projděte si příklad Pythonu.