Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A RabbitMQ-eseményindítóval válaszolhat a RabbitMQ-üzenetsor üzeneteire.
Feljegyzés
A RabbitMQ-kötések csak rugalmas Prémium és Dedikált (App Service) csomagokban támogatottak teljes mértékben. A rugalmas felhasználású és a használati csomagok még nem támogatottak.
A RabbitMQ-kötéseket az Azure Functions 1.x-es futtatókörnyezete nem támogatja.
A beállítással és a konfigurációval kapcsolatos információkért tekintse meg az áttekintést.
Példa
C# függvényt az alábbi C# módok egyikével hozhat létre:
- Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges a hosszú távú támogatáson (LTS) futó C# függvények támogatásához, valamint a .NET és a .NET-keretrendszer nem LTS-verzióihoz.
- Folyamatban lévő modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint az Azure Functions futtatókörnyezete.
- C#-szkript: Elsősorban C#-függvények Azure Portalon való létrehozásakor használatos.
Fontos
A folyamaton belüli modell támogatása 2026. november 10-én megszűnik. Erősen javasoljuk, hogy az alkalmazásokat az elkülönített feldolgozói modellbe migrálja a teljes támogatás érdekében.
[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;
}
Az alábbi Java-függvény a @RabbitMQTrigger Java RabbitMQ-típusok megjegyzéseit használja a RabbitMQ-üzenetsor-eseményindító konfigurációjának leírásához. A függvény megragadja az üzenetsorra helyezett üzenetet, és hozzáadja a naplókhoz.
@FunctionName("RabbitMQTriggerExample")
public void run(
@RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
final ExecutionContext context)
{
context.getLogger().info("Java HTTP trigger processed a request." + input);
}
Az alábbi példa egy RabbitMQ-eseményindító kötését mutatja be egy function.json fájlban, valamint egy JavaScript-függvényt , amely a kötést használja. A függvény egy RabbitMQ-üzenetet olvas és naplóz.
A kötési adatok a function.json fájlban:
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
A JavaScript-szkript kódja:
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
Az alábbi példa bemutatja, hogyan olvasható be a RabbitMQ üzenetsor üzenete egy eseményindítón keresztül.
A RabbitMQ-kötés function.json van definiálva, ahol a típus a következőre RabbitMQTriggervan állítva: .
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
import logging
import azure.functions as func
def main(myQueueItem) -> None:
logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)
A PowerShell-példák jelenleg nem érhetők el.
Attribútumok
Az izolált feldolgozói folyamat és a folyamatban lévő C#-kódtárak egyaránt használják RabbitMQTriggerAttribute a függvény definiálását, ahol az attribútum adott tulajdonságai a bővítményverziótól függenek.
Az attribútum konstruktora a következő paramétereket fogadja el:
| Paraméter | Leírás |
|---|---|
| QueueName | Annak az üzenetsornak a neve, amelyből üzeneteket szeretne fogadni. |
| HostName | Ez a paraméter már nem támogatott, és figyelmen kívül hagyja. Egy későbbi verzióban el lesz távolítva. |
| ConnectionStringSetting | A RabbitMQ-kiszolgáló kapcsolati sztringet tartalmazó alkalmazásbeállítás neve. Ez a beállítás csak egy alkalmazásbeállítási kulcs nevét veszi fel, nem állíthat be közvetlenül kapcsolati sztringértéket. További információ: Kapcsolatok. |
| UserNameSetting | Ez a paraméter már nem támogatott, és figyelmen kívül hagyja. Egy későbbi verzióban el lesz távolítva. |
| PasswordSetting | Ez a paraméter már nem támogatott, és figyelmen kívül hagyja. Egy későbbi verzióban el lesz távolítva. |
| Kikötő | Lekéri vagy beállítja a használt portot. Alapértelmezés szerint 0, amely a RabbitMQ-ügyfél alapértelmezett portbeállítására 5672mutat. |
Jegyzetek
A RabbitMQTrigger széljegyzet lehetővé teszi, hogy egy RabbitMQ-üzenet létrehozásakor futó függvényt hozzon létre.
A széljegyzet a következő konfigurációs beállításokat támogatja:
| Paraméter | Leírás |
|---|---|
| queueName | Annak az üzenetsornak a neve, amelyből üzeneteket szeretne fogadni. |
| connectionStringSetting | A RabbitMQ-kiszolgáló kapcsolati sztringet tartalmazó alkalmazásbeállítás neve. Ez a beállítás csak egy alkalmazásbeállítási kulcs nevét veszi fel, nem állíthat be közvetlenül kapcsolati sztringértéket. További információ: Kapcsolatok. |
| disableCertificateValidation | Logikai érték, amely úgy állítható be true , hogy a tanúsítványérvényesítést le kell tiltani. Az alapértelmezett érték a false. Éles környezetben nem ajánlott. Nem érvényes, ha az SSL le van tiltva. |
Konfiguráció
Az alábbi táblázat a function.json fájlban beállított kötéskonfigurációs tulajdonságokat ismerteti.
| function.json tulajdonság | Leírás |
|---|---|
| típus | A beállításnak a RabbitMQTriggerkövetkezőnek kell lennie: . |
| irány | A beállításnak a inkövetkezőnek kell lennie: . |
| név | Annak a változónak a neve, amely az üzenetsort jelöli a függvénykódban. |
| queueName | Annak az üzenetsornak a neve, amelyből üzeneteket szeretne fogadni. |
| connectionStringSetting | A RabbitMQ-kiszolgáló kapcsolati sztringet tartalmazó alkalmazásbeállítás neve. Ez a beállítás csak egy alkalmazásbeállítási kulcs nevét veszi fel, nem állíthat be közvetlenül kapcsolati sztringértéket. További információ: Kapcsolatok. |
| disableCertificateValidation | Logikai érték, amely úgy állítható be true , hogy a tanúsítványérvényesítést le kell tiltani. Az alapértelmezett érték a false. Éles környezetben nem ajánlott. Nem érvényes, ha az SSL le van tiltva. |
Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues.
A teljes példákért tekintse meg a Példa szakaszt .
Használat
A RabbitMQ-eseményindító által támogatott paramétertípus a használt C# módtól függ.
A RabbitMQ-kötések jelenleg csak sztring- és szerializálható objektumtípusokat támogatnak, ha izolált folyamatban futnak.
Az üzenetsor-üzenet azon keresztül context.bindings.<NAME> érhető el, ahol <NAME> egyezik a function.json definiált névvel. Ha a hasznos adat JSON, az érték deszerializálva lesz egy objektumba.
Connections
Fontos
A RabbitMQ-kötés nem támogatja a Microsoft Entra-hitelesítést és a felügyelt identitásokat. Az Azure Key Vault használatával központilag felügyelheti a RabbitMQ-kapcsolati sztring. További információ: Kapcsolatok kezelése.
A bővítmény hostNameuserNameSettingpasswordSetting 2.x verziójától kezdve a továbbiakban nem támogatott a RabbitMQ-kiszolgálóhoz való kapcsolat definiálása. Ehelyett a következőt kell használnia connectionStringSetting:
A connectionStringSetting tulajdonság csak egy kulcs-érték pár nevét fogadja el az alkalmazásbeállításokban. Közvetlenül nem állíthat be kapcsolati sztringértéket a kötésben.
Ha például a kötésdefinícióban beállította connectionStringSettingrabbitMQConnection , a függvényalkalmazásnak rendelkeznie kell egy olyan alkalmazásbeállítással rabbitMQConnection , amely egy kapcsolati értéket, például amqp://myuser:***@contoso.rabbitmq.example.com:5672 egy Azure Key Vault-hivatkozást ad vissza.
Helyi futtatáskor meg kell adnia a local.settings.json fájlban definiált connectionStringSetting kulcsértéket is. Ellenkező esetben az alkalmazás nem tud csatlakozni a szolgáltatáshoz a helyi számítógépről, és hiba történik.
Kézbesítetlen levelek üzenetsorai
A kézbesítetlen levelek üzenetsorai és cseréjei nem vezérelhetők vagy konfigurálhatók a RabbitMQ-eseményindítóból. A kézbesítetlen levelek üzenetsorainak használatához előre konfigurálja az eseményindító által használt üzenetsort a RabbitMQ-ban. Tekintse meg a RabbitMQ dokumentációját.
Futtatókörnyezet skálázásának engedélyezése
Ahhoz, hogy a RabbitMQ-eseményindító több példányra skálázható legyen, engedélyezni kell a futtatókörnyezet skálázásának monitorozási beállítását.
A portálon ez a beállítás a függvényalkalmazás konfigurációs> között található.
Az Azure CLI-ben az alábbi paranccsal engedélyezheti a futtatókörnyezeti méretezés monitorozását :
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
RabbitMQ-végpont figyelése
Egy adott RabbitMQ-végpont üzenetsorainak és cseréjének figyelése:
- A RabbitMQ felügyeleti beépülő modul engedélyezése
- Keresse meg a
http://{node-hostname}:15672felhasználónevet és a jelszót, és jelentkezzen be.