Creación y eliminación de rutas y puntos de conexión mediante Azure PowerShell

En este artículo se muestra primero cómo crear rutas y puntos de conexión en cualquier centro desde Azure IoT Hub y, luego, cómo eliminarlos. Aprenda a usar Azure PowerShell para crear rutas y puntos de conexión para Azure Event Hubs, las colas y los temas de Azure Service Bus y Azure Storage.

Para más información sobre cómo funciona el enrutamiento en IoT Hub, consulte Uso del enrutamiento de mensajes de IoT Hub para enviar mensajes del dispositivo a la nube a distintos puntos de conexión. Para obtener información sobre la configuración de una ruta que envíe mensajes al almacenamiento y la posterior realización de pruebas en un dispositivo simulado, consulte Tutorial: Envío de datos de dispositivo a Azure Storage mediante el enrutamiento de mensajes de IoT Hub.

Requisitos previos

Los procedimientos que se describen en el artículo usan los siguientes recursos:

  • Azure PowerShell
  • Una instancia de IoT Hub
  • Un servicio de punto de conexión en Azure

Azure PowerShell

En este artículo se usa la interfaz de Azure PowerShell para trabajar con IoT Hub y otros servicios de Azure. Para usar Azure PowerShell localmente instale el módulo de Azure PowerShell en el equipo. Como alternativa, para usar Azure PowerShell en un explorador web, habilite Azure Cloud Shell.

centro de IoT

Para crear una ruta de un centro de IoT, se necesita el centro de IoT que se creó mediante Azure IoT Hub. Tanto los mensajes como los registros de eventos del dispositivo parten del centro de IoT.

Asegúrese de tener el siguiente recurso de centro para que pueda usarlo al crear la ruta del centro de IoT:

Servicio de punto de conexión

Para crear una ruta de un centro de IoT, se necesita al menos otro servicio de Azure, con el fin de usarlo como punto de conexión a la ruta. El punto de conexión recibe tanto los mensajes como los registros de eventos del dispositivo. Puede elegir qué servicio de Azure usa para que cada punto de conexión se conecte a la ruta del centro de IoT: Event Hubs, colas o temas de Service Bus o Azure Storage.

Asegúrese de tener uno de los siguientes recursos para usarlo al crear un punto de conexión en la ruta del centro de IoT:

Creación de recursos y puntos de conexión

En IoT Hub, puede crear una ruta para enviar mensajes o capturar eventos. Cada ruta tiene un origen de datos y un punto de conexión. El origen de datos es el lugar del que parten los mensajes o los registros de eventos. El punto de conexión es el lugar en que terminan los mensajes o los registros de eventos. Cuando se crea una ruta en el centro de IoT, se eligen las ubicaciones del origen de datos y del punto de conexión. Luego, se usan consultas de enrutamiento para filtrar los mensajes o eventos antes de que van al punto de conexión.

Puede usar un centro de eventos, una cola o un tema de Service Bus o una cuenta de Azure Storage como punto de conexión de la ruta del centro de IoT. El servicio que use para crear el punto de conexión debe existir en la cuenta de Azure.

Nota:

Si usa una versión local de Azure PowerShell, inicie sesión en Azure PowerShell antes de comenzar.

Los comandos de los siguientes procedimientos usan estas referencias:

Creación de un centro de eventos

Para crear un recurso de Event Hubs que tenga una regla de autorización:

  1. Creación de un nuevo espacio de nombres de Event Hubs En NamespaceName, use un valor único.

    New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
    
  2. Cree la entidad de Event Hubs. En Name, use un valor único. En NamespaceName, use el nombre del espacio de nombres que creó en el paso anterior.

    New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
    
  3. Cree una nueva regla de autorización. En Name, use el nombre de la entidad en EventHubName. Para el nombre de la regla de autorización, use un valor único.

    New-AzEventHubAuthorizationRule -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule -Rights @('Manage', 'Send', 'Listen')
    

    Para más información sobre el acceso, consulte Autorización del acceso a Azure Event Hubs.

Creación de un punto de conexión de Event Hubs

  1. Obtenga la cadena de conexión principal de su centro de eventos. Copie la cadena de conexión para usarla más adelante.

    Get-AzEventHubKey -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule
    
  2. Cree un nuevo punto de conexión de IoT Hub en Event Hubs. Use la cadena de conexión principal del paso anterior. El valor de EndpointType debe ser EventHub. Para todos los demás parámetros, use los valores de su escenario.

    Add-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -EndpointType EventHub -EndpointResourceGroup MyResourceGroup -EndpointSubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConnectionString "Endpoint=<my connection string>"
    

    Para ver todas las opciones de punto de conexión de enrutamiento, consulte Add-AzIotHubRoutingEndpoint.

Creación de una ruta de IoT Hub

Con el nuevo punto de conexión del IoT Hub, puede crear una ruta.

La ruta de reserva predeterminada de IoT Hub recopila mensajes de DeviceMessages. Elija otra opción para la ruta personalizada, como DeviceConnectionStateEvents. Para más información acerca de las opciones de origen, consulte Add-AzIotHubRoute. El parámetro Enabled es un modificador, por lo que no es necesario usar ningún valor con el parámetro.

Add-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -Source DeviceLifecycleEvents -EndpointName MyEndpoint -Enabled

PowerShell muestra una confirmación similar a la de este ejemplo:

RouteName     : MyIotHub 
DataSource    : DeviceLifecycleEvents
EndpointNames : MyEndpoint
Condition     : true
IsEnabled     : True

Actualización de una ruta de IoT Hub

Para realizar cambios en una ruta existente, use el siguiente comando. Por ejemplo, pruebe a cambiar el nombre de la ruta mediante el comando.

Set-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute

Use el comando Get-AzIotHubRoute para confirmar el cambio en la ruta:

Get-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub

Eliminar un extremo

Para eliminar un punto de conexión:

Remove-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -PassThru

Eliminación de una ruta de IoT Hub

Para eliminar una ruta de IoT Hub:

Remove-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -PassThru

Sugerencia

La eliminación de una ruta no elimina ningún punto de conexión de la cuenta de Azure. Los puntos de conexión se deben eliminar independientemente de la eliminación de rutas.

Pasos siguientes

En este artículo de procedimientos ha aprendido a crear una ruta y un punto de conexión para Event Hubs, colas o temas de Service Bus y Azure Storage.

Para más información sobre el enrutamiento de mensajes, consulte Tutorial: Envío de datos de dispositivo a Azure Storage mediante el enrutamiento de mensajes de IoT Hub. En este tutorial, se crea una ruta de almacenamiento y se prueba con un dispositivo de un centro de IoT.