Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik de RabbitMQ-trigger om te reageren op berichten uit een RabbitMQ-wachtrij.
Notitie
De RabbitMQ-bindingen worden alleen volledig ondersteund op Elastic Premium - en Dedicated-abonnementen (App Service ). Flex Consumption - en Consumption-abonnementen worden nog niet ondersteund.
RabbitMQ-bindingen worden niet ondersteund door de Azure Functions v1.x-runtime.
Zie het overzicht voor informatie over het instellen en configureren van details.
Opmerking
U kunt een C#-functie maken met behulp van een van de volgende C#-modi:
- Geïsoleerd werkrolmodel: gecompileerde C#-functie die wordt uitgevoerd in een werkproces dat is geïsoleerd van de runtime. Er is een geïsoleerd werkproces vereist om C#-functies te ondersteunen die worden uitgevoerd op langetermijnondersteuning (LTS) en niet-LTS-versies voor .NET en .NET Framework.
- In-process model: gecompileerde C#-functie die wordt uitgevoerd in hetzelfde proces als de Azure Functions-runtime.
- C#-script: wordt voornamelijk gebruikt wanneer u C#-functies maakt in Azure Portal.
Belangrijk
De ondersteuning wordt beëindigd voor het in-process model op 10 november 2026. We raden u ten zeerste aan uw apps te migreren naar het geïsoleerde werkrolmodel voor volledige ondersteuning.
[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;
}
De volgende Java-functie gebruikt de @RabbitMQTrigger aantekening van de Java RabbitMQ-typen om de configuratie voor een RabbitMQ-wachtrijtrigger te beschrijven. De functie pakt het bericht in de wachtrij en voegt het toe aan de logboeken.
@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);
}
In het volgende voorbeeld ziet u een RabbitMQ-triggerbinding in een function.json-bestand en een JavaScript-functie die gebruikmaakt van de binding. De functie leest en registreert een RabbitMQ-bericht.
Dit zijn de bindingsgegevens in het bestand function.json :
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
Dit is de JavaScript-scriptcode:
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
In het volgende voorbeeld ziet u hoe u een RabbitMQ-wachtrijbericht leest via een trigger.
Een RabbitMQ-binding wordt gedefinieerd in function.json waar het type is ingesteld op RabbitMQTrigger.
{
"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)
PowerShell-voorbeelden zijn momenteel niet beschikbaar.
Kenmerken
Zowel geïsoleerde werkprocessen als in-proces C#-bibliotheken gebruiken RabbitMQTriggerAttribute om de functie te definiëren, waarbij specifieke eigenschappen van het kenmerk afhankelijk zijn van de extensieversie.
De constructor van het kenmerk accepteert deze parameters:
| Kenmerk | Beschrijving |
|---|---|
| QueueName- | Naam van de wachtrij waaruit berichten moeten worden ontvangen. |
| HostNaam | Deze parameter wordt niet meer ondersteund en wordt genegeerd. Deze wordt verwijderd in een toekomstige versie. |
| ConnectionStringSetting | De naam van de app-instelling die de verbindingsreeks voor uw RabbitMQ-server bevat. Deze instelling heeft alleen de naam van een app-instellingssleutel. U kunt een verbindingsreekswaarde niet rechtstreeks instellen. Zie Verbindingen voor meer informatie. |
| Gebruikersnaaminstelling | Deze parameter wordt niet meer ondersteund en wordt genegeerd. Deze wordt verwijderd in een toekomstige versie. |
| Wachtwoord instellen | Deze parameter wordt niet meer ondersteund en wordt genegeerd. Deze wordt verwijderd in een toekomstige versie. |
| Poort | Hiermee haalt u de gebruikte poort op of stelt u deze in. De standaardwaarde is 0, wat verwijst naar de standaardpoortinstelling van de RabbitMQ-client.5672 |
Aantekeningen
Met de RabbitMQTrigger aantekening kunt u een functie maken die wordt uitgevoerd wanneer een RabbitMQ-bericht wordt gemaakt.
De aantekening ondersteunt de volgende configuratieopties:
| Kenmerk | Beschrijving |
|---|---|
| queueName | Naam van de wachtrij waaruit berichten moeten worden ontvangen. |
| connectionStringSetting | De naam van de app-instelling die de verbindingsreeks voor uw RabbitMQ-server bevat. Deze instelling heeft alleen de naam van een app-instellingssleutel. U kunt een verbindingsreekswaarde niet rechtstreeks instellen. Zie Verbindingen voor meer informatie. |
| disableCertificateValidation | Booleaanse waarde die kan worden ingesteld om aan te true geven dat certificaatvalidatie moet worden uitgeschakeld. De standaardwaarde is false. Niet aanbevolen voor productie. Is niet van toepassing wanneer SSL is uitgeschakeld. |
Configuratie
In de volgende tabel worden de bindingsconfiguratie-eigenschappen uitgelegd die u in het function.json-bestand hebt ingesteld.
| function.json-eigenschap | Beschrijving |
|---|---|
| soort | Moet worden ingesteld op RabbitMQTrigger. |
| richting | Moet worden ingesteld op in. |
| naam | De naam van de variabele die de wachtrij in functiecode vertegenwoordigt. |
| queueName | Naam van de wachtrij waaruit berichten moeten worden ontvangen. |
| connectionStringSetting | De naam van de app-instelling die de verbindingsreeks voor uw RabbitMQ-server bevat. Deze instelling heeft alleen de naam van een app-instellingssleutel. U kunt een verbindingsreekswaarde niet rechtstreeks instellen. Zie Verbindingen voor meer informatie. |
| disableCertificateValidation | Booleaanse waarde die kan worden ingesteld om aan te true geven dat certificaatvalidatie moet worden uitgeschakeld. De standaardwaarde is false. Niet aanbevolen voor productie. Is niet van toepassing wanneer SSL is uitgeschakeld. |
Wanneer u lokaal ontwikkelt, voegt u uw toepassingsinstellingen toe aan het local.settings.json-bestand in de Values verzameling.
Zie de sectie Voorbeeld voor volledige voorbeelden.
Gebruik
Het parametertype dat wordt ondersteund door de RabbitMQ-trigger, is afhankelijk van de gebruikte C#-modaliteit.
De RabbitMQ-bindingen ondersteunen momenteel alleen tekenreeks- en serialiseerbare objecttypen wanneer ze worden uitgevoerd in een geïsoleerd proces.
Het wachtrijbericht is beschikbaar via context.bindings.<NAME> de locatie die <NAME> overeenkomt met de naam die is gedefinieerd in function.json. Als de nettolading JSON is, wordt de waarde gedeserialiseerd in een object.
Connections
Belangrijk
De RabbitMQ-binding biedt geen ondersteuning voor Microsoft Entra-verificatie en beheerde identiteiten. U kunt Azure Key Vault gebruiken om uw RabbitMQ-verbindingsreeks s centraal te beheren. Zie Verbindingen beheren voor meer informatie.
Vanaf versie 2.x van de extensie, hostNameen userNameSettingworden ze passwordSetting niet meer ondersteund om een verbinding met de RabbitMQ-server te definiëren. U moet in plaats daarvan gebruiken connectionStringSetting.
De connectionStringSetting eigenschap kan alleen de naam van een sleutel-waardepaar accepteren in app-instellingen. U kunt een verbindingsreekswaarde niet rechtstreeks instellen in de binding.
Als u bijvoorbeeld hebt ingesteld connectionStringSettingrabbitMQConnection op de bindingsdefinitie, moet uw functie-app een app-instelling hebben met de naam die een verbindingswaarde retourneert rabbitMQConnection , zoals amqp://myuser:***@contoso.rabbitmq.example.com:5672 een Azure Key Vault-verwijzing.
Wanneer u lokaal werkt, moet u ook de sleutelwaarde hebben die connectionStringSetting moet worden gedefinieerd in uw local.settings.json-bestand . Anders kan uw app geen verbinding maken met de service vanaf uw lokale computer en treedt er een fout op.
Wachtrijen met dode letters
Wachtrijen en uitwisselingen van dode brieven kunnen niet worden beheerd of geconfigureerd vanuit de RabbitMQ-trigger. Als u wachtrijen met dode letters wilt gebruiken, configureert u de wachtrij die wordt gebruikt door de trigger in RabbitMQ. Raadpleeg de RabbitMQ-documentatie.
Runtime schalen inschakelen
Om de RabbitMQ-trigger uit te schalen naar meerdere exemplaren, moet de instelling runtimeschaalbewaking zijn ingeschakeld.
Deze instelling vindt u in de portal onder Runtime-instellingen van de configuratiefunctie>voor uw functie-app.
In de Azure CLI kunt u Bewaking van runtimeschaal inschakelen met behulp van deze opdracht:
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
Een RabbitMQ-eindpunt bewaken
Uw wachtrijen en uitwisselingen voor een bepaald RabbitMQ-eindpunt bewaken:
- De RabbitMQ-beheerinvoegtoepassing inschakelen
- Blader naar
http://{node-hostname}:15672en meld u aan met uw gebruikersnaam en wachtwoord.