Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Výstupní vazba RabbitMQ slouží k odesílání zpráv do fronty RabbitMQ.
Poznámka
Vazby RabbitMQ jsou plně podporovány pouze v plánech Elastic Premium a Dedicated (App Service). Plány Flex Consumption a Consumption se zatím nepodporují.
Vazby RabbitMQ nejsou podporovány modulem runtime Azure Functions v1.x.
Informace o nastavení a konfiguraci najdete v přehledu.
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
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.
Následující příklad ukazuje funkci jazyka C#, která odešle zprávu RabbitMQ při aktivaci časovačem TimerTrigger každých 5 minut pomocí návratové hodnoty metody jako výstup:
[FunctionName("RabbitMQOutput")]
[return: RabbitMQ(QueueName = "outputQueue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")]
public static string Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
return $"{DateTime.Now}";
}
Následující příklad ukazuje, jak používat rozhraní IAsyncCollector k odesílání zpráv.
[FunctionName("RabbitMQOutput")]
public static async Task Run(
[RabbitMQTrigger("sourceQueue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")] string rabbitMQEvent,
[RabbitMQ(QueueName = "destinationQueue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")]IAsyncCollector<string> outputEvents,
ILogger log)
{
// send the message
await outputEvents.AddAsync(JsonConvert.SerializeObject(rabbitMQEvent));
}
Následující příklad ukazuje, jak odeslat zprávy jako poCOs.
namespace Company.Function
{
public class TestClass
{
public string x { get; set; }
}
public static class RabbitMQOutput{
[FunctionName("RabbitMQOutput")]
public static async Task Run(
[RabbitMQTrigger("sourceQueue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")] TestClass rabbitMQEvent,
[RabbitMQ(QueueName = "destinationQueue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")]IAsyncCollector<TestClass> outputPocObj,
ILogger log)
{
// send the message
await outputPocObj.AddAsync(rabbitMQEvent);
}
}
}
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'
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 RabbitMQAttribute.
Tady je RabbitMQTrigger
atribut v podpisu metody pro knihovnu v procesu:
[FunctionName("RabbitMQOutput")]
public static async Task Run(
[RabbitMQTrigger("SourceQueue", ConnectionStringSetting = "TriggerConnectionString")] string rabbitMQEvent,
[RabbitMQ("DestinationQueue", ConnectionStringSetting = "OutputConnectionString")]IAsyncCollector<string> outputEvents,
ILogger log)
{
...
}
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.
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.
Důležité
Vazba RabbitMQ nepodporuje ověřování Microsoft Entra a spravované identity. Azure Key Vault můžete použít k centrální správě připojovací řetězec RabbitMQ. Další informace najdete v tématu Správa připojení.
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#.
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.POCO
– Zpráva je naformátovaná jako objekt jazyka C#.Při práci s funkcemi jazyka C#:
IAsyncCollector
ne out
parametr.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.
Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
Zaregistrovat