Compartir vía


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

En este inicio rápido, usará Azure Portal para crear un espacio de nombres de Event Grid con el agente MQTT habilitado, crear sub recursos como clientes, grupos de clientes y espacios de temas, conceder a los clientes acceso para publicar y suscribirse a espacios de temas y, a continuación, publicar y recibir mensajes entre clientes.

Requisitos previos

  • Si no tiene una suscripción de Azure, cree una cuenta gratuita de Azure.
  • Si no está familiarizado con Azure Event Grid, lea la introducción a Event Grid antes de comenzar este tutorial.
  • Asegúrese de que el puerto 8883 está abierto en el firewall. En el ejemplo de este tutorial se usa el protocolo MQTT, que se comunica mediante el puerto 8883. Este puerto puede estar bloqueado en algunos entornos de red corporativos y educativos.
  • Necesita un certificado de cliente X.509 para generar la huella digital y autenticar la conexión de cliente.

Generación de un certificado de cliente de ejemplo y una huella digital

Si aún no tiene un certificado, puede crear un certificado de ejemplo mediante la CLI de Step. Considere la posibilidad de instalar manualmente para Windows.

Después de una instalación correcta de Step, debe abrir un símbolo del sistema en la carpeta de perfil de usuario (Win+R escriba %USERPROFILE%).

  1. Para crear certificados raíz e intermedios, ejecute el siguiente comando. Recuerde la contraseña, que deberá utilizar en el siguiente paso.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Use los archivos de CA generados para crear un certificado para el primer cliente. Asegúrese de usar la ruta de acceso correcta para los archivos de certificado y secretos en el comando.

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. Para ver la huella digital, ejecute el comando Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Ahora, cree un certificado para el segundo cliente.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. Para ver la huella digital que se va a usar con el segundo cliente, ejecute el comando Step.

    step certificate fingerprint client2-authn-ID.pem
    

Creación de un espacio de nombres

  1. Inicie sesión en el portal de Azure.

  2. En la barra de búsqueda, escriba Espacios de nombres de Event Grid y, a continuación, seleccione Espacios de nombres de Event Grid en la lista desplegable.

    Captura de pantalla de la búsqueda del espacio de nombres de Event Grid en Azure Portal.

  3. En la página Espacios de nombres de Event Grid, seleccione + Crear en la barra de herramientas.

  4. En la página Crear espacio de nombres, siga estos pasos:

    1. Seleccione su suscripción a Azure.

    2. Seleccione un grupo de recursos existente o Crear nuevo y escriba un nombre para el grupo de recursos.

    3. Proporcione un nombre único para el espacio de nombres. El nombre del espacio de nombres debe ser único en cada región porque representa una entrada DNS. No use el nombre que se muestra en la imagen. En su lugar, cree su propio nombre: debe tener entre 3 y 50 caracteres y contener solo los valores a-z, A-Z, 0-9 y -.

    4. Seleccione una ubicación para el espacio de nombres de Event Grid. Actualmente, el espacio de nombres de Event Grid solo está disponible en determinadas regiones.

      Captura de pantalla que muestra la pestaña básica de la creación de flujo del espacio de nombres de Event Grid.

  5. En la parte inferior de la página, seleccione Revisar y crear.

  6. En la pestaña Revisar y crear de la página Crear espacio de nombres, seleccione Crear.

    Nota:

    Para simplificar el inicio rápido, solo usará la página Aspectos básicos para crear un espacio de nombres. Para obtener información detallada sobre la configuración de la red, la seguridad y otros parámetros en otras páginas del asistente, consulte Creación de un espacio de nombres.

  7. Cuando la implementación se haya realizado correctamente, seleccione Ir al recurso para acceder a la página Información general del espacio de nombres de Event Grid correspondiente a su espacio de nombres.

  8. En la página Información general, verá que MQTT broker está en estado Deshabilitado. Para habilitar MQTT broker, seleccione el vínculo Deshabilitado y le redirigirá a la página Configuración.

  9. En la página Configuración, seleccione la opción Habilitar MQTT broker y, a continuación, seleccione Aplicar para aplicar la configuración.

    Captura de pantalla que muestra la página de configuración del espacio de nombres de Event Grid para habilitar MQTT.

Creación de clientes

  1. En el menú de la izquierda, seleccione Clientes en la sección MQTT broker.

  2. En la página Clientes, seleccione + Cliente en la barra de herramientas.

    Recorte de pantalla de la página Clientes con el botón Agregar seleccionado.

  3. En la página Crear cliente, escriba un nombre para el cliente. Los nombres de cliente deben ser únicos en un espacio de nombres.

  4. El nombre de autenticación de cliente tiene como valor predeterminado el nombre del cliente. Para este tutorial, cámbielo a client1-authn-ID. Debe incluir este nombre como Username en el paquete CONNECT.

  5. En este tutorial, usará la autenticación basada en huella digital. Incluya la huella digital del certificado de cliente en la huella digital principal.

    Recorte de pantalla de la configuración del cliente 1.

  6. Seleccione Crear en la barra de herramientas para crear otro cliente.

  7. Repita los pasos anteriores para crear un segundo cliente denominado client2. Cambie el nombre de autenticación a client2-authn-ID e incluya la segunda huella digital del certificado de cliente en la huella digital principal.

    Recorte de pantalla de la configuración del cliente 2.

    Nota:

    • Para simplificar el inicio rápido, usará la opción de Coincidencia de huella digital para la autenticación. Para obtener información detallada sobre el uso de la cadena de certificados de CA X.509 para la autenticación de cliente, consulte Autenticación de cliente mediante la cadena de certificados.
    • Además, usamos el grupo de clientes $all predeterminado, que incluye todos los clientes del espacio de nombres para este ejercicio. Para obtener más información sobre cómo crear grupos de cliente personalizados con atributos de cliente, consulte Grupos de clientes.

Creación de espacios de temas

  1. En el menú de la izquierda, seleccione Espacios de temas en la sección MQTT broker.

  2. En la página Espacios de tema, seleccione + Espacio de tema en la barra de herramientas.

    Recorte de pantalla de la página Espacios de temas con el botón Crear seleccionado.

  3. Proporcione un nombre para el espacio del tema, en la página Crear espacio de temas.

    Recorte de pantalla del espacio Crear tema con el nombre.

  4. Escriba contosotopics/topic1 para la plantilla de tema y, a continuación, seleccione Crear para crear el espacio del tema.

    Captura de pantalla de la configuración del espacio de tema.

Configuración del control de acceso mediante enlaces de permisos

  1. En el menú de la izquierda, seleccione Enlaces de permisos en la sección MQTT broker.

  2. En la página Enlaces de permisos, seleccione + Enlace de permisos en la barra de herramientas.

    Recorte de pantalla que muestra la página Enlaces de permisos con el botón Crear seleccionado.

  3. Configure el enlace de permisos de la siguiente manera:

    1. Proporcione un nombre para el enlace de permisos. Por ejemplo, contosopublisherbinding.

    2. En Nombre del grupo de clientes, seleccione $all.

    3. En Nombre del espacio del tema, seleccione el espacio del tema que creó en el paso anterior.

    4. Conceda permiso de Publicador al grupo de clientes en el espacio de tema.

      Captura de pantalla que muestra la creación del primer enlace de permisos.

  4. Seleccione Crear para crear el enlace de permisos.

  5. Cree un enlace de permisos adicional (contososubscriberbinding) seleccionando + Enlace de permisos en la barra de herramientas.

  6. Proporcione un nombre y dé al grupo de clientes $all Subscriber acceso al ContosoTopicSpace como se muestra.

    Captura de pantalla que muestra la creación del segundo enlace de permisos.

  7. Seleccione Crear para crear el enlace de permisos.

Conexión de los clientes al espacio de nombres EG mediante la aplicación MQTTX

  1. Para publicar o suscribirse a mensajes MQTT, puede usar cualquiera de sus herramientas favoritas. Con fines de demostración, la publicación y suscripción se muestra con la aplicación MQTTX, que se puede descargar de https://mqttx.app/.

  2. Seleccione + en la barra de navegación a la izquierda.

  3. Configure cliente1 con:

    • Nombre como client1 (este valor puede ser cualquier cosa)

    • Un id. de cliente como client1-session1 (el identificador de cliente del paquete CONNECT se usa para identificar el identificador de sesión de la conexión de cliente)

    • Nombre de usuario como client1-authn-ID. Este valor debe coincidir con el valor de Nombre de autenticación de cliente que especificó al crear el cliente en Azure Portal.

      Importante

      El nombre de usuario debe coincidir con el nombre de autenticación de cliente en los metadatos del cliente.

  4. Actualice el nombre de host al nombre de host MQTT desde la página Información general del espacio de nombres.

    Captura de pantalla que muestra la página información general del espacio de nombres de Event Grid, que tiene el nombre de host MQTT.

  5. Actualización del puerto a 8883.

  6. Cambie SSL/TLS a ACTIVADO.

  7. Cambie SSL Secure a ACTIVADO para garantizar la validación del certificado de servicio.

  8. Seleccione Certificado como ENTIDAD de certificación o certificados auto firmados.

  9. Proporcione la ruta de acceso para el archivo de certificado de cliente.

  10. Proporcione la ruta de acceso para el archivo de clave de cliente.

  11. El resto de la configuración se puede dejar con los valores predeterminados predefinidos.

    Captura de pantalla que muestra la parte 1 de la configuración del cliente 1 en la aplicación MQTTX.

  12. Seleccione Conectar para conectar el cliente a MQTT broker.

  13. Repita los pasos anteriores para conectar el segundo cliente cliente2, con la información de autenticación correspondiente como se muestra.

    Captura de pantalla que muestra la parte 1 de la configuración del cliente 2 en la aplicación MQTTX.

    Captura de pantalla que muestra la parte 2 de la configuración del cliente 2 en la aplicación MQTTX.

Publicación y suscripción mediante la aplicación MQTTX

  1. Después de conectar los clientes, para cliente2, seleccione el botón + Nueva suscripción.

  2. Agregue contosotopics/topic1 como tema y seleccione Confirmar. Puede dejar los demás campos con los valores predeterminados existentes.

    Captura de pantalla que muestra la configuración del tema en la aplicación MQTTX.

  3. Seleccione cliente1 en el raíl izquierdo.

  4. Para client1, en la parte superior del cuadro de redacción de mensajes, escriba contosotopics/topic1 como tema en el que se va a publicar.

  5. Redacte un mensaje. Puede usar cualquier formato o JSON como se muestra.

  6. Seleccione el botón Enviar.

    Captura de pantalla que muestra la publicación de mensajes del tema en la aplicación MQTTX.

  7. El mensaje debe verse como Publicado en el cliente 1.

    Captura de pantalla que muestra el mensaje publicado del tema en la aplicación MQTTX.

  8. Cambie a client2. Confirme que client2 recibió el mensaje.

    Captura de pantalla que muestra el mensaje recibido por el cliente suscriptor en la aplicación MQTTX.