Zelfstudie: MQTT-berichten in Azure Event Grid routeren naar Azure Functions met behulp van aangepaste onderwerpen - Azure Portal
In deze zelfstudie leert u hoe u MQTT-berichten die zijn ontvangen door een Azure Event Grid-naamruimte routeren naar een Azure-functie via een aangepast Event Grid-onderwerp door de volgende stappen uit te voeren:
Als u nog geen Azure-abonnement hebt, kunt u zich registreren voor een gratis proefversie.
Een Azure-functie maken met event grid-trigger
Volg de instructies van Een Azure-functie maken met Visual Studio Code, maar gebruik de Azure Event Grid-trigger in plaats van de HTTP-trigger. Als het goed is, ziet u code die lijkt op het volgende voorbeeld:
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
U gebruikt deze Azure-functie als gebeurtenis-handler voor het abonnement van een onderwerp verderop in deze zelfstudie.
Notitie
- Maak alle resources in dezelfde regio.
- Deze zelfstudie is getest met een Azure-functie die gebruikmaakt van .NET 8.0 (geïsoleerde) runtimestack.
Een Event Grid-onderwerp maken (aangepast onderwerp)
Een Event Grid-onderwerp maken. Zie Een aangepast onderwerp maken met behulp van de portal. Wanneer u het Event Grid-onderwerp maakt, selecteert u op het tabblad Geavanceerd voor Gebeurtenisschema de optie Cloud-gebeurtenisschema v1.0.
Notitie
Gebruik overal in deze zelfstudie een cloud-gebeurtenisschema .
Een abonnement toevoegen aan het onderwerp met behulp van de functie
In deze stap maakt u een abonnement op het Event Grid-onderwerp met behulp van de Azure-functie die u eerder hebt gemaakt.
Selecteer op de event grid-onderwerppagina abonnementen op de linkernavigatiebalk.
Voer de volgende stappen uit op de pagina Gebeurtenisabonnement maken :
Voer de volgende stappen uit op de pagina Azure-functie selecteren:
Selecteer uw Azure-abonnement voor Abonnement.
Selecteer voor resourcegroep de resourcegroep met uw Azure-functie.
Selecteer voor de functie-app de Functions-app met de functie.
Selecteer Productie voor Site.
Selecteer uw Azure-functie voor Functie.
Selecteer vervolgens De selectie bevestigen onder aan de pagina.
Selecteer Maken op de pagina Gebeurtenisabonnement maken.
Op de pagina Gebeurtenisabonnementen ziet u het abonnement dat u hebt gemaakt.
Naamruimte, clients, onderwerpruimten en machtigingsbindingen maken
Volg de instructies uit de quickstart: Publiceren en abonneren op MQTT-berichten met behulp van een Event Grid-naamruimte met Azure Portal voor:
- Maak een Event Grid-naamruimte.
- Maak twee clients.
- Maak een onderwerpruimte.
- Maak machtigingenbindingen voor uitgevers en abonnees.
- Test het gebruik van de MQTTX-app om te bevestigen dat clients berichten kunnen verzenden en ontvangen.
Beheerde identiteit inschakelen voor de naamruimte
In deze sectie schakelt u door het systeem toegewezen beheerde identiteit in voor de Event Grid-naamruimte. Verdeel vervolgens de identiteit voor het verzenden van machtigingen voor het aangepaste Event Grid-onderwerp dat u eerder hebt gemaakt, zodat het bericht naar het aangepaste onderwerp kan worden doorgestuurd. U doet dit door de beheerde identiteit toe te voegen aan de rol Event Grid-gegevenszender in het aangepaste onderwerp.
Selecteer identiteit in het linkernavigatiemenu op de pagina Event Grid-naamruimte.
Navigeer naar het Event Grid-onderwerp voor uw aangepaste Event Grid-onderwerp.
Selecteer Toegangsbeheer op de linkernavigatiebalk.
Selecteer Toevoegen op de pagina Toegangsbeheer en selecteer vervolgens Roltoewijzing toevoegen.
Selecteer op de pagina Rol van de wizard Roltoewijzing toevoegen de rol Event Grid-gegevenszender en selecteer Volgende onder aan de pagina.
Selecteer Beheerde identiteit op de pagina Leden van de wizard Roltoewijzing toevoegen en kies Leden selecteren.
Voer de volgende stappen uit op de pagina Beheerde identiteiten selecteren:
Selecteer op de pagina Roltoewijzing toevoegen de optie Volgende onder aan de pagina.
Controleer de instellingen op de pagina Beoordelen + toewijzen en selecteer vervolgens Beoordelen en toewijzen onderaan de pagina.
Routeringsberichten naar Azure-functie configureren via aangepast onderwerp
In deze stap configureert u routering voor de Event Grid-naamruimte, zodat de berichten die worden ontvangen, worden doorgestuurd naar het aangepaste onderwerp dat u hebt gemaakt.
Selecteer Routering op de pagina Event Grid-naamruimte op de linkernavigatiebalk.
Selecteer routering inschakelen op de pagina Routering.
Selecteer aangepast onderwerp voor onderwerptype.
Selecteer voor Onderwerp het aangepaste onderwerp dat u voor deze zelfstudie hebt gemaakt.
Selecteer Systeem toegewezen voor beheerde identiteit voor levering.
Selecteer Toepassen onderaan de pagina.
MQTT-testberichten verzenden met MQTTX
Verzend MQTT-testberichten naar de naamruimte en controleer of de functie deze ontvangt.
Volg de instructies in het artikel Publiceren, abonneren op berichten met behulp van de MQTTX-app om enkele testberichten naar de Event Grid-naamruimte te verzenden.
Dit is de stroom van de gebeurtenissen of berichten:
MQTTX verzendt berichten naar de onderwerpruimte van de Event Grid-naamruimte.
De berichten worden doorgestuurd naar het aangepaste onderwerp dat u hebt geconfigureerd.
De berichten worden doorgestuurd naar het gebeurtenisabonnement. Dit is de Azure-functie.
Gebruik de functie voor logboekregistratie om te controleren of de functie de gebeurtenis heeft ontvangen.
Volgende stap
Bekijk codevoorbeelden in deze GitHub-opslagplaats.