Condividi tramite


Esercitazione: Instradare messaggi MQTT in Griglia di eventi di Azure a Funzioni di Azure usando argomenti personalizzati - Portale di Azure

In questa esercitazione si instradano i messaggi MQTT ricevuti da uno spazio dei nomi di Azure Event Grid in una funzione di Azure usando un argomento personalizzato di Event Grid.

Se non si ha una sottoscrizione di Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita .

Creare una funzione di Azure usando il trigger di Griglia di eventi

Seguire le istruzioni riportate in Creare una funzione di Azure con Visual Studio Code, ma usare il trigger di Griglia di eventi di Azure invece di usare il trigger HTTP.

Importante

Creare tutte le risorse nella stessa area.

Il codice dovrebbe essere simile all'esempio seguente:

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

Questa funzione di Azure viene usata come gestore eventi per la sottoscrizione di un argomento più avanti in questa esercitazione.

Annotazioni

Questa esercitazione è stata testata con una funzione di Azure che usa lo stack di runtime .NET 8.0 (isolato).

Creare un argomento di Griglia di eventi (argomento personalizzato)

Creare un argomento di Griglia di eventi. Vedere Creare un argomento personalizzato usando il portale di Azure. Quando si crea l'argomento Event Grid, nella scheda Avanzate, per Schema eventi, selezionare Schema eventi Cloud v1.0.

Screenshot che mostra la pagina Avanzate della procedura guidata di creazione dell’argomento.

Annotazioni

Usare Cloud Event Schema v1.0 ovunque in questa esercitazione.

Aggiungere una sottoscrizione all'argomento usando la funzione

In questo passaggio creare una sottoscrizione all'argomento griglia di eventi usando la funzione di Azure creata in precedenza.

  1. Nella pagina Argomento di Griglia di eventi selezionare Sottoscrizioni.

    Screenshot che mostra la pagina Sottoscrizioni di eventi per un argomento.

  2. Nella pagina Crea sottoscrizione di eventi seguire questa procedura:

    1. Immettere un nome per la sottoscrizione di eventi.

    2. Per Schema eventi selezionare Schema eventi cloud 1.0.

    3. Per Tipo di endpoint, selezionare Funzione di Azure.

    4. Selezionare quindi Configura un endpoint.

      Screenshot che mostra la pagina Crea sottoscrizione di eventi.

  3. Nella pagina Selezione funzione di Azure seguire questa procedura:

    1. Per Sottoscrizione selezionare la sottoscrizione di Azure.

    2. Per Gruppo di risorse, selezionare il gruppo di risorse che contiene la tua funzione di Azure.

    3. Per App per le funzioni selezionare l'app Funzioni di Azure che contiene la funzione.

    4. Per Slot selezionare Produzione.

    5. Per Funzione selezionare la funzione di Azure.

    6. Quindi, selezionare Confermare la selezione.

      Screenshot che mostra la pagina Seleziona funzione di Azure.

  4. Nella pagina Crea sottoscrizione di eventi selezionare Crea.

  5. Nella pagina Sottoscrizioni eventi dovrebbe essere visualizzata la sottoscrizione creata.

Creare uno spazio dei nomi, client, spazi argomenti e associazioni di autorizzazioni

Seguire le istruzioni riportate in Avvio rapido: Pubblicare e abbonarsi a messaggi MQTT usando un namespace di Event Grid con il portale di Azure per:

  1. Creare uno spazio dei nomi di Griglia di eventi.
  2. Creare due client.
  3. Creare uno spazio di argomenti.
  4. Creare associazioni di autorizzazioni per server di pubblicazione e sottoscrittore.
  5. Testare l'uso dell'app MQTTX per verificare che i client siano in grado di inviare e ricevere messaggi.

Abilitare l'identità gestita per lo spazio dei nomi

In questa sezione si abilita l'identità gestita assegnata dal sistema per l'Event Grid namespace. Concedere quindi all'identità l'autorizzazione di invio all'argomento personalizzato di Griglia di eventi. Può quindi instradare il messaggio all'argomento personalizzato. È possibile abilitarla aggiungendo l'identità gestita al ruolo Mittente dati di Event Grid nell'argomento personalizzato.

  1. Nella pagina Event Grid Namespace, selezionare Identità. Selezionare e quindi Salva.

    Screenshot che mostra l'Event Grid Namespace con la scheda Identity selezionata.

  2. Passare all'argomento di Griglia di eventi relativo al proprio argomento personalizzato di Griglia di eventi.

  3. Selezionare Controllo di accesso sulla barra di spostamento a sinistra.

  4. Nella pagina Controllo di accesso selezionare Aggiungi e quindi Aggiungi assegnazione di ruolo.

    Screenshot che mostra la pagina Controllo di accesso.

  5. Nella pagina Ruolo della procedura guidata Aggiungi assegnazione di ruolo, selezionare il ruolo Mittente dati di Event Grid e selezionare Avanti.

    Screenshot che mostra la pagina **Ruolo** della procedura guidata **Aggiungi assegnazione di ruolo**.

  6. Nella pagina Membri della pagina Aggiungi assegnazione di ruolo selezionare Identità gestita e quindi selezionare Seleziona membri.

    Screenshot che mostra la pagina Membri della procedura guidata Aggiungi assegnazione di ruolo.

  7. Nella pagina Selezione identità gestite seguire questa procedura:

    1. Seleziona la tua sottoscrizione di Azure.

    2. Per Identità gestita, selezionare Spazio dei nomi di Griglia di eventi.

    3. Selezionare l'identità gestita con lo stesso nome dello spazio dei nomi di Griglia di eventi.

    4. Scegli Seleziona.

      Screenshot che mostra la pagina Seleziona identità gestite.

  8. Nella pagina Aggiungi assegnazione di ruolo selezionare Avanti.

  9. Nella pagina Rivedi e assegna rivedere le impostazioni e quindi selezionare Rivedi e assegna.

Configurare il routing dei messaggi a una funzione Azure tramite un topic personalizzato.

In questa sezione, configurare il routing per lo spazio dei nomi di Event Grid in modo che i messaggi ricevuti vengano indirizzati all'argomento personalizzato da te creato.

  1. Nella pagina del namespace di Event Grid, selezionare Routing.

  2. Nella pagina Routing selezionare Abilita routing.

  3. In Tipo di argomento selezionare Argomento personalizzato.

  4. Per Argomento selezionare l'argomento personalizzato creato per questa esercitazione.

  5. Per Identità gestita per il recapito selezionare Assegnata dal sistema.

  6. Selezionare Applica.

    Screenshot che mostra la pagina Routing relativa a uno spazio dei nomi.

Inviare messaggi MQTT di test con MQTTX

Inviare messaggi MQTT di test allo spazio dei nomi e verificare che la funzione li riceva.

Seguire le istruzioni riportate in Pubblicare/sottoscrivere con l'app MQTTX per inviare alcuni messaggi di test allo spazio dei nomi di Griglia di eventi.

Ecco il flusso degli eventi o dei messaggi:

  1. MQTTX invia messaggi allo spazio argomenti dello spazio dei nomi di Griglia di eventi.

  2. I messaggi vengono indirizzati all'argomento personalizzato configurato.

  3. I messaggi vengono inoltrati alla sottoscrizione di eventi, ovvero la funzione di Azure.

  4. Usare la funzionalità di registrazione per verificare che la funzione abbia ricevuto l'evento.

    Screenshot che mostra la pagina Flusso di log per una funzione di Azure.

Passo successivo