Esercitazione: Indirizzare i messaggi MQTT in Griglia di eventi di Azure a Funzioni di Azure usando argomenti personalizzati - portale di Azure

Questa esercitazione illustra come instradare i messaggi MQTT ricevuti da uno spazio dei nomi Griglia di eventi di Azure a una funzione di Azure tramite un argomento personalizzato di Griglia di eventi seguendo questa procedura:

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 Griglia di eventi di Azure invece di usare il trigger HTTP. 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.

Nota

  • Creare tutte le risorse nella stessa area.
  • 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. Quando si crea l'argomento griglia di eventi, nella scheda Avanzate selezionare Schema eventi cloud v1.0 per Schema eventi cloud.

Screenshot che mostra la pagina Avanzate della creazione guidata argomento.

Nota

Usare lo schema di eventi cloud ovunque in questa esercitazione.

Aggiungere una sottoscrizione all'argomento usando la funzione

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

  1. Nella pagina dell'argomento di Griglia di eventi selezionare Sottoscrizioni sulla barra di spostamento a sinistra.

    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. In Tipo di endpoint selezionare Funzioni 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 con la funzione di Azure.

    3. Per App per le funzioni selezionare l'app Funzioni con la funzione .

    4. Per Slot selezionare Produzione.

    5. Per Funzione selezionare la funzione di Azure.

    6. Selezionare quindi Conferma selezione nella parte inferiore della pagina.

      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 spazi dei nomi, client, spazi degli argomenti e associazioni di autorizzazioni

Seguire le istruzioni riportate in Avvio rapido: Pubblicare e sottoscrivere messaggi MQTT usando uno spazio dei nomi di Griglia di eventi con portale di Azure per:

  1. Creare uno spazio dei nomi di Griglia di eventi.
  2. Creare due client.
  3. Creare uno spazio degli 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 viene abilitata l'identità gestita assegnata dal sistema per lo spazio dei nomi di Griglia di eventi. Concedere quindi all'identità l'autorizzazione di invio all'argomento personalizzato di Griglia di eventi creato in precedenza in modo che possa instradare il messaggio all'argomento personalizzato. A tale scopo, aggiungere l'identità gestita al ruolo Mittente dati di Griglia di eventi nell'argomento personalizzato.

  1. Nella pagina Spazio dei nomi di Griglia di eventi selezionare Identità nel menu di spostamento a sinistra.

    Screenshot che mostra lo spazio dei nomi di Griglia di eventi con la scheda Identity selezionata.

  2. Passare all'argomento griglia di eventi per l'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 Ruolo Mittente dati griglia di eventi e selezionare Avanti nella parte inferiore della pagina.

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

  6. Nella pagina Membri della procedura guidata 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. Selezionare la 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. Scegliere Seleziona nella parte inferiore della pagina.

      Screenshot che mostra la pagina Seleziona identità gestite.

  8. Nella pagina Aggiungi assegnazione di ruolo selezionare Avanti nella parte inferiore della pagina.

  9. Nella pagina Rivedi e assegna rivedere le impostazioni e quindi selezionare Rivedi e assegna nella parte inferiore della pagina.

Configurare il routing dei messaggi alla funzione di Azure tramite un argomento personalizzato

In questo passaggio viene configurato il routing per lo spazio dei nomi di Griglia di eventi in modo che i messaggi ricevuti vengano indirizzati all'argomento personalizzato creato.

  1. Nella pagina Spazio dei nomi di Griglia di eventi selezionare Routing sulla barra di spostamento a sinistra.

  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 nella parte inferiore della pagina.

    Screenshot che mostra la pagina Routing per 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 dell'articolo Pubblicare, sottoscrivere messaggi usando 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 degli 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.

Passaggio successivo

Vedere gli esempi di codice in questo repository GitHub.