Tutorial: Enrutamiento de mensajes MQTT en Azure Event Grid a Azure Functions mediante temas personalizados: Azure Portal

En este tutorial, aprenderá a enrutar los mensajes MQTT recibidos por un espacio de nombres de Azure Event Grid a una función de Azure a través de un tema personalizado de Event Grid siguiendo estos pasos:

Si no tiene ninguna suscripción de Azure, puede registrarse para obtener una evaluación gratuita.

Creación de una función de Azure mediante un desencadenador de Event Grid

Siga las instrucciones de Creación de una función de Azure mediante Visual Studio Code, pero use el Desencadenador de Azure Event Grid en lugar de usar el Desencadenador de HTTP. Deberías ver un código similar al ejemplo siguiente:

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

Esta función de Azure se usa como controlador de eventos para la suscripción de un tema más adelante en este tutorial.

Nota:

  • Crea todos los recursos en la misma región.
  • Este tutorial se ha probado con una función de Azure que usa la pila en tiempo de ejecución de .NET 8.0 (aislado).

Creación de un tema de Event Grid (tema personalizado)

Crear un tema de Event Grid. Consulte Creación de un tema personalizado mediante el portal. Al crear el tema de Event Grid, en la pestaña Avanzado, para Esquema de eventos, seleccione Esquema de eventos en la nube v1.0.

Captura de pantalla que muestra la página Avanzado del asistente para crear temas.

Nota:

Usa el Esquema de eventos en la nube para todo este tutorial.

Adición de una suscripción al tema mediante la función

En este paso, creará una suscripción al tema de Event Grid mediante la función de Azure que creó anteriormente.

  1. En la página de tema de Event Grid, seleccione Suscripciones en la barra de navegación izquierda.

    Captura de pantalla que muestra la página Suscripciones de eventos de un tema.

  2. En la página Crear suscripción de eventos, realice los siguientes pasos:

    1. Escriba un nombre para la suscripción a eventos.

    2. En Esquema de eventos, seleccione Esquema de eventos en la nube v1.1.0.

    3. En Tipo de punto de conexión, seleccione Azure Functions.

    4. Posteriormente, seleccione Configurar un punto de conexión.

      Captura de pantalla que muestra la página Crear suscripción de eventos.

  3. En la página Seleccionar la función de Azure, realice estos pasos:

    1. En Suscripción, seleccione su suscripción de Azure.

    2. Para Grupo de recursos, seleccione el grupo de recursos que contiene la función de Azure.

    3. Para Aplicación de funciones, seleccione la Aplicación de funciones que tiene la función.

    4. Para Ranura, seleccione Producción.

    5. Para Función, seleccione la función de Azure.

    6. Posteriormente, seleccione Confirmar selección en la parte inferior de la página.

      Captura de pantalla que muestra la página Seleccionar función de Azure.

  4. En la página Crear suscripción de eventos, seleccione Crear.

  5. En la página Suscripciones de eventos, debería ver la suscripción que creó.

Crear espacios de nombres, clientes, espacios de temas y enlaces de permisos

Siga las instrucciones de Inicio rápido: Publicación y suscripción a mensajes MQTT en el espacio de nombres de Event Grid con Azure Portal para:

  1. Crear un espacio de nombres de Event Grid.
  2. Crear dos clientes.
  3. Crear un espacio de temas.
  4. Crear enlaces de permisos de publicador y suscriptor.
  5. Probar el uso de la aplicación MQTTX para confirmar que los clientes pueden enviar y recibir mensajes.

Habilitar la identidad administrada para el espacio de nombres

En esta sección, habilitará una identidad administrada asignada por el sistema en el espacio de nombres de Event Grid. A continuación, conceda a la identidad permiso para enviar al tema personalizado de Event Grid que creó anteriormente para que pueda enrutar el mensaje al tema personalizado. Para ello, agregue la identidad administrada al rol de Remitente de datos de Event Grid en el tema personalizado.

  1. En la página Espacio de nombres de Event Grid, seleccione Identidad en el menú de navegación izquierdo.

    Captura de pantalla que muestra el espacio de nombres de Event Grid con la pestaña Identidad seleccionada.

  2. Vaya al Tema de Event Grid para el tema personalizado de Event Grid.

  3. Seleccione Control de acceso en la barra de navegación izquierda.

  4. En la página Control de acceso, seleccione Agregar y, a continuación, seleccione Agregar asignación de roles.

    Captura de pantalla que muestra la página Control de acceso.

  5. En la página Rol del asistente para Agregar asignación de roles, seleccione el rol de Remitente de datos de Event Grid y seleccione Siguiente en la parte inferior de la página.

    Captura de pantalla que muestra la página **Rol** del asistente **Agregar asignación de roles**.

  6. En la página Miembros del asistente para Agregar asignación de roles, seleccione Identidad administrada y, a continuación, elija Seleccionar miembros.

    Captura de pantalla que muestra la página Miembros del asistente Agregar asignación de roles.

  7. En la página Seleccionar identidades administradas, realice estos pasos:

    1. Seleccione la suscripción de Azure.

    2. En Identidad administrada, seleccione Espacio de nombres de Event Grid.

    3. Seleccione la identidad administrada que tiene el mismo nombre que el espacio de nombres de Event Grid.

    4. Seleccione Seleccionar en la parte inferior de la página.

      Captura de pantalla que muestra la página Seleccionar identidades administradas.

  8. En la página Agregar asignación de roles, seleccione Siguiente en la parte inferior de la página.

  9. En la página Revisar y asignar, revisar la configuración y, a continuación, seleccione Revisar y asignar en la parte inferior de la página.

Configuración del enrutamiento de mensajes a la función de Azure a través de un tema personalizado

En este paso, configurará el enrutamiento para el espacio de nombres de Event Grid para que los mensajes que recibe se enruten al tema personalizado que creó.

  1. En la página Espacio de nombres de Event Grid, seleccione Enrutamiento en la barra de navegación izquierda.

  2. En la página Enrutamiento, seleccione Habilitar enrutamiento.

  3. Para Tipo de tema, seleccione Tema personalizado.

  4. Para Tema, seleccione el tema personalizado que creó para este tutorial.

  5. Para Identidad administrada para la entrega, seleccione Asignada por el sistema.

  6. Seleccione Aplicar en la parte inferior de la página.

    Captura de pantalla que muestra la página Enrutamiento de un espacio de nombres.

Envío de mensajes MQTT de prueba mediante MQTTX

Envía mensajes MQTT de prueba al espacio de nombres y confirma que la función las recibe.

Sigue las instrucciones del artículo Publicación y suscripción de mensajes mediante la aplicación MQTTX para enviar algunos mensajes de prueba al espacio de nombres de Event Grid.

Este es el flujo de los eventos o mensajes:

  1. MQTTX envía mensajes al espacio de temas del espacio de nombres de Event Grid.

  2. Los mensajes se enrutan al tema personalizado que configuraste.

  3. Los mensajes se reenvían a la suscripción de eventos, que es la función de Azure.

  4. Usa la característica de registro para comprobar que la función ha recibido el evento.

    Captura de pantalla que muestra la página Flujo de registro de una función de Azure.

Paso siguiente

Puedes ver ejemplos de código en este repositorio de GitHub.