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.

Schermopname van de pagina Geavanceerd van de wizard Onderwerp maken.

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.

  1. Selecteer op de event grid-onderwerppagina abonnementen op de linkernavigatiebalk.

    Schermopname van de pagina Gebeurtenisabonnementen voor een onderwerp.

  2. Voer de volgende stappen uit op de pagina Gebeurtenisabonnement maken :

    1. Voer een naam in voor het gebeurtenisabonnement.

    2. Voor gebeurtenisschema selecteert u Cloud Event Schema 1.0.

    3. Selecteer Azure Functions voor eindpunttype.

    4. Selecteer vervolgens Een eindpunt configureren.

      Schermopname van de pagina Gebeurtenisabonnement maken.

  3. Voer de volgende stappen uit op de pagina Azure-functie selecteren:

    1. Selecteer uw Azure-abonnement voor Abonnement.

    2. Selecteer voor resourcegroep de resourcegroep met uw Azure-functie.

    3. Selecteer voor de functie-app de Functions-app met de functie.

    4. Selecteer Productie voor Site.

    5. Selecteer uw Azure-functie voor Functie.

    6. Selecteer vervolgens De selectie bevestigen onder aan de pagina.

      Schermopname van de pagina Azure-functie selecteren.

  4. Selecteer Maken op de pagina Gebeurtenisabonnement maken.

  5. 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:

  1. Maak een Event Grid-naamruimte.
  2. Maak twee clients.
  3. Maak een onderwerpruimte.
  4. Maak machtigingenbindingen voor uitgevers en abonnees.
  5. 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.

  1. Selecteer identiteit in het linkernavigatiemenu op de pagina Event Grid-naamruimte.

    Schermopname van de Event Grid-naamruimte met het tabblad Identiteit geselecteerd.

  2. Navigeer naar het Event Grid-onderwerp voor uw aangepaste Event Grid-onderwerp.

  3. Selecteer Toegangsbeheer op de linkernavigatiebalk.

  4. Selecteer Toevoegen op de pagina Toegangsbeheer en selecteer vervolgens Roltoewijzing toevoegen.

    Schermopname van de pagina Toegangsbeheer.

  5. Selecteer op de pagina Rol van de wizard Roltoewijzing toevoegen de rol Event Grid-gegevenszender en selecteer Volgende onder aan de pagina.

    Schermopname van de pagina **Rol** van de wizard **Roltoewijzing toevoegen**.

  6. Selecteer Beheerde identiteit op de pagina Leden van de wizard Roltoewijzing toevoegen en kies Leden selecteren.

    Schermopname van de pagina Leden van de wizard Roltoewijzing toevoegen.

  7. Voer de volgende stappen uit op de pagina Beheerde identiteiten selecteren:

    1. Selecteer uw Azure-abonnement.

    2. Selecteer Event Grid-naamruimte voor beheerde identiteit.

    3. Selecteer de beheerde identiteit met dezelfde naam als de Event Grid-naamruimte.

    4. Kies Selecteren onder aan de pagina.

      Schermopname van de pagina Beheerde identiteiten selecteren.

  8. Selecteer op de pagina Roltoewijzing toevoegen de optie Volgende onder aan de pagina.

  9. 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.

  1. Selecteer Routering op de pagina Event Grid-naamruimte op de linkernavigatiebalk.

  2. Selecteer routering inschakelen op de pagina Routering.

  3. Selecteer aangepast onderwerp voor onderwerptype.

  4. Selecteer voor Onderwerp het aangepaste onderwerp dat u voor deze zelfstudie hebt gemaakt.

  5. Selecteer Systeem toegewezen voor beheerde identiteit voor levering.

  6. Selecteer Toepassen onderaan de pagina.

    Schermopname van de pagina Routering voor een naamruimte.

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:

  1. MQTTX verzendt berichten naar de onderwerpruimte van de Event Grid-naamruimte.

  2. De berichten worden doorgestuurd naar het aangepaste onderwerp dat u hebt geconfigureerd.

  3. De berichten worden doorgestuurd naar het gebeurtenisabonnement. Dit is de Azure-functie.

  4. Gebruik de functie voor logboekregistratie om te controleren of de functie de gebeurtenis heeft ontvangen.

    Schermopname van de pagina Logboekstream voor een Azure-functie.

Volgende stap

Bekijk codevoorbeelden in deze GitHub-opslagplaats.