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.
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.
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.
Selecteer Abonnementen op de pagina Event Grid-onderwerp.
Voer de volgende stappen uit op de pagina Gebeurtenisabonnement maken :
Voer een naam in voor het gebeurtenisabonnement.
Voor Gebeurtenisschema selecteert u Cloud Event Schema 1.0.
Selecteer Azure-functie als het eindpunttype.
Selecteer vervolgens Een eindpunt configureren.
Voer de volgende stappen uit op de pagina Azure-functie selecteren :
Selecteer bij Abonnement uw Azure-abonnement.
Selecteer voor resourcegroep de resourcegroep met uw Azure-functie.
Selecteer voor de functie-app de Functions-app met de functie.
Selecteer Slot en kies Productie.
Selecteer voor Functie uw Azure-functie.
Selecteer vervolgens Selectie bevestigen.
Selecteer Maken op de pagina Gebeurtenisabonnement Maken.
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:
- 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. 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.
Selecteer Identiteit op de pagina Event Grid-naamruimte. Selecteer Aan en klik vervolgens op Opslaan.
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.
Op de Rol pagina van de Roltoewijzing toevoegen wizard, selecteer de rol Event Grid-gegevenszender en klik op Volgende.
Bij Roltoewijzing toevoegen selecteert u op de pagina Leden de optie Beheerde identiteit en kiest u Vervolgens Leden selecteren.
Voer de volgende stappen uit op de pagina Selecteer beheerde identiteiten:
Selecteer uw Azure-abonnement.
Selecteer Event Grid-naamruimte voor beheerde identiteit.
Selecteer de beheerde identiteit met dezelfde naam als de Event Grid-naamruimte.
Kies en selecteer.
Selecteer Volgende op de pagina Roltoewijzing toevoegen.
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.
Selecteer Routering op de pagina Event Grid-naamruimte.
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 toegewezenvoor beheerde identiteit voor levering.
Selecteer de optie Toepassen.
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:
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.