Självstudie: Dirigera MQTT-meddelanden i Azure Event Grid till Azure Functions med hjälp av anpassade ämnen – Azure-portalen

I den här självstudien får du lära dig hur du dirigerar MQTT-meddelanden som tas emot av ett Azure Event Grid-namnområde till en Azure-funktion via ett anpassat Event Grid-ämne genom att följa dessa steg:

Om du inte har en Azure-prenumeration kan du registrera dig för en kostnadsfri utvärdering.

Skapa en Azure-funktion med Event Grid-utlösare

Följ anvisningarna från Skapa en Azure-funktion med Visual Studio Code, men använd Azure Event Grid-utlösaren i stället för att använda HTTP-utlösaren. Du bör se kod som liknar följande exempel:

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);
        }
    }
}

Du använder den här Azure-funktionen som händelsehanterare för ett ämnesprenumeration senare i den här självstudien.

Kommentar

  • Skapa alla resurser i samma region.
  • Den här självstudien har testats med en Azure-funktion som använder .NET 8.0 (isolerad) körningsstack.

Skapa ett Event Grid-ämne (anpassat ämne)

Skapa ett Event Grid-ämne. Se Skapa ett anpassat ämne med hjälp av portalen. När du skapar Event Grid-ämnet går du till fliken Avancerat för Händelseschema och väljer Molnhändelseschema v1.0.

Skärmbild som visar sidan Avancerat i guiden Skapa ämne.

Kommentar

Använd molnhändelseschemat överallt i den här självstudien.

Lägga till en prenumeration i ämnet med hjälp av funktionen

I det här steget skapar du en prenumeration på Event Grid-ämnet med hjälp av den Azure-funktion som du skapade tidigare.

  1. På sidan Event Grid-ämne väljer du Prenumerationer i det vänstra navigeringsfältet .

    Skärmbild som visar sidan Händelseprenumerationer för ett ämne.

  2. Gör följande på sidan Skapa händelseprenumeration :

    1. Ange ett namn för händelseprenumerationen.

    2. För Händelseschema väljer du Molnhändelseschema 1.0.

    3. Som Slutpunktstyp väljer du Azure Functions.

    4. Välj sedan Konfigurera en slutpunkt.

      Skärmbild som visar sidan Skapa händelseprenumeration.

  3. Gör följande på sidan Välj Azure-funktion :

    1. För Prenumeration väljer du din Azure-prenumeration.

    2. För Resursgrupp väljer du den resursgrupp som har din Azure-funktion.

    3. För Funktionsapp väljer du den Functions-app som har funktionen.

    4. För Fack väljer du Produktion.

    5. För Funktion väljer du din Azure-funktion.

    6. Välj sedan Bekräfta markeringen längst ned på sidan.

      Skärmbild som visar funktionssidan Välj Azure.

  4. På sidan Skapa händelseprenumeration väljer du Skapa.

  5. På sidan Händelseprenumerationer bör du se den prenumeration som du skapade.

Skapa namnområde, klienter, ämnesutrymmen och behörighetsbindningar

Följ anvisningarna i snabbstarten: Publicera och prenumerera på MQTT-meddelanden med hjälp av ett Event Grid-namnområde med Azure-portalen för att:

  1. Skapa ett Event Grid-namnområde.
  2. Skapa två klienter.
  3. Skapa ett ämnesutrymme.
  4. Skapa behörighetsbindningar för utgivare och prenumeranter.
  5. Testa med MQTTX-appen för att bekräfta att klienter kan skicka och ta emot meddelanden.

Aktivera hanterad identitet för namnområdet

I det här avsnittet aktiverar du systemtilldelad hanterad identitet för Event Grid-namnområdet. Ge sedan identiteten sändningsbehörighet till det anpassade Event Grid-ämnet som du skapade tidigare så att det kan dirigera meddelandet till det anpassade ämnet. Det gör du genom att lägga till den hanterade identiteten i rollen Event Grid Data Sender i det anpassade ämnet.

  1. På sidan Event Grid-namnområde väljer du Identitet på den vänstra navigeringsmenyn.

    Skärmbild som visar Event Grid-namnområdet med fliken Identitet markerad.

  2. Gå till Event Grid-ämnet för ditt anpassade Event Grid-ämne.

  3. Välj Åtkomstkontroll i det vänstra navigeringsfältet.

  4. På sidan Åtkomstkontroll väljer du Lägg till och sedan Lägg till rolltilldelning.

    Skärmbild som visar sidan Åtkomstkontroll.

  5. På sidan Roll i guiden Lägg till rolltilldelning väljer du Rollen Event Grid-datasändare och väljer Nästa längst ned på sidan.

    Skärmbild som visar sidan **Roll** i guiden **Lägg till rolltilldelning**.

  6. På sidan Medlemmar i guiden Lägg till rolltilldelning väljer du Hanterad identitet och sedan Välj medlemmar.

    Skärmbild som visar sidan Medlemmar i guiden Lägg till rolltilldelning.

  7. Gör följande på sidan Välj hanterade identiteter :

    1. Välj din Azure-prenumeration.

    2. För Hanterad identitet väljer du Event Grid-namnområde.

    3. Välj den hanterade identitet som har samma namn som Event Grid-namnområdet.

    4. Välj Välj längst ned på sidan.

      Skärmbild som visar sidan Välj hanterade identiteter.

  8. På sidan Lägg till rolltilldelning väljer du Nästa längst ned på sidan.

  9. På sidan Granska + tilldela granskar du inställningarna och väljer sedan Granska + tilldela längst ned på sidan.

Konfigurera routningsmeddelanden till Azure-funktionen via anpassat ämne

I det här steget konfigurerar du routning för Event Grid-namnområdet så att de meddelanden som tas emot dirigeras till det anpassade ämne som du skapade.

  1. På sidan Event Grid-namnområde väljer du Routning i det vänstra navigeringsfältet.

  2. På sidan Routning väljer du Aktivera routning.

  3. För Ämnestyp väljer du Anpassat ämne.

  4. För Ämne väljer du det anpassade ämne som du skapade för den här självstudien.

  5. För Hanterad identitet för leverans väljer du Systemtilldelad.

  6. Välj Använd längst ned på sidan.

    Skärmbild som visar sidan Routning för ett namnområde.

Skicka MQTT-testmeddelanden med MQTTX

Skicka MQTT-testmeddelanden till namnområdet och bekräfta att funktionen tar emot dem.

Följ anvisningarna i artikeln Publicera, prenumerera på meddelanden med hjälp av MQTTX-appen för att skicka några testmeddelanden till Event Grid-namnområdet.

Här är flödet av händelser eller meddelanden:

  1. MQTTX skickar meddelanden till ämnesutrymmet i Event Grid-namnområdet.

  2. Meddelandena dirigeras till det anpassade ämne som du har konfigurerat.

  3. Meddelandena vidarebefordras till händelseprenumerationen, som är Azure-funktionen.

  4. Använd loggningsfunktionen för att kontrollera att funktionen har tagit emot händelsen.

    Skärmbild som visar sidan Loggström för en Azure-funktion.

Gå vidare

Se kodexempel på den här GitHub-lagringsplatsen.