Delen via


Zelfstudie: MQTT-berichten in Azure Event Grid routeren naar Azure Functions met behulp van aangepaste onderwerpen - Azure Portal

In deze zelfstudie routeert u MQTT-berichten die zijn ontvangen door een Azure Event Grid-naamruimte naar een Azure-functie met behulp van een aangepast Event Grid-onderwerp.

Als u 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.

Belangrijk

Maak alle resources in dezelfde regio.

U zou code moeten zien 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-afhandelaar voor het abonnement van een onderwerp later in deze zelfstudie.

Opmerking

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 Azure 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 Geavanceerde pagina van de wizard voor het maken van onderwerpen.

Opmerking

Gebruik overal in deze zelfstudie Cloud Event Schema v1.0 .

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 Abonnementen op de pagina Event Grid-onderwerp.

    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-functie als het eindpunttype.

    4. Selecteer vervolgens Een eindpunt configureren.

      Schermafbeelding van de pagina Gebeurtenisabonnement maken.

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

    1. Selecteer bij Abonnement uw Azure-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 Slot en kies Productie.

    5. Selecteer voor Functie uw Azure-functie.

    6. Selecteer vervolgens Selectie bevestigen.

      Schermopname van de pagina Selecteer Azure-functie.

  4. Selecteer Maken op de pagina Gebeurtenisabonnement Maken.

  5. Op de pagina Gebeurtenisabonnementen ziet u het abonnement dat u hebt gemaakt.

Maak een naamruimte, clients, onderwerpruimten en machtigingsbindingen

Volg de instructies uit 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. Verleen vervolgens de identiteit de machtiging voor verzenden op het aangepaste Event Grid-onderwerp. Vervolgens kan het bericht worden doorgestuurd naar het aangepaste onderwerp. U schakelt deze in door de beheerde identiteit toe te voegen aan de rol Event Grid-gegevenszender in het aangepaste onderwerp.

  1. Selecteer Identiteit op de pagina Event Grid-naamruimte. Selecteer Aan en klik vervolgens op Opslaan.

    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. Op de Rol pagina van de Roltoewijzing toevoegen wizard, selecteer de rol Event Grid-gegevenszender en klik op Volgende.

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

  6. Bij Roltoewijzing toevoegen selecteert u op de pagina Leden de optie Beheerde identiteit en kiest u Vervolgens Leden selecteren.

    Schermopname van de pagina 'Leden' van de wizard Roltoewijzing toevoegen.

  7. Voer de volgende stappen uit op de pagina Selecteer beheerde identiteiten:

    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 en selecteer.

      Schermopname van de pagina Selecteer beheerde identiteiten.

  8. Selecteer Volgende op de pagina Roltoewijzing toevoegen.

  9. Controleer de instellingen op de pagina Beoordelen en toewijzen en selecteer Vervolgens Beoordelen en toewijzen.

Routeringsberichten naar Azure-functie configureren via aangepast onderwerp

In deze sectie 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.

  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 toegewezenvoor beheerde identiteit voor levering.

  6. Selecteer de optie Toepassen.

    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 Publiceren en abonneren met de MQTTX-app om een paar 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