Inicio rápido: Crear un trabajo de Stream Analytics con Visual Studio Code
En este inicio rápido se muestra cómo crear, ejecutar y enviar un trabajo de Azure Stream Analytics (ASA) mediante la extensión de Azure Stream Analytics Tools para Visual Studio Code en el equipo local. Aprenderá a crear un trabajo de ASA que lee datos de streaming en tiempo real de IoT Hub y que filtra los eventos con una temperatura superior a 27°. Los resultados de salida se envían a un archivo en Blob Storage. Un simulador en línea de Raspberry Pi genera los datos de entrada de esta guía de inicio rápido.
Nota
Las herramientas de Visual Studio Code no admiten trabajos de las regiones de Este de China, Norte de China, Centro de Alemania y Nordeste de Alemania.
Requisitos previos
- Suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita.
- Visual Studio Code.
Instalación de la extensión Azure Stream Analytics Tools
Abra Visual Studio Code (VS Code).
Desde Extensiones en el panel izquierdo, busque Stream Analytics y seleccione Install (Instalar) en la extensión Azure Stream Analytics Tools.
Una vez instalada, seleccione el icono de Azure en la barra de actividad e inicie sesión en Azure.
Una vez que haya iniciado sesión, verá las suscripciones de su cuenta de Azure.
Nota
La extensión Azure Stream Analytics Tools iniciará sesión automáticamente cada vez que abra VS Code. Si la cuenta tiene la autenticación en dos fases, se recomienda usar la autenticación telefónica en lugar de usar un PIN. Para cerrar la sesión de su cuenta de Azure, presione Ctrl + Shift + P
y escriba Azure: Sign Out
.
Preparación de los datos de entrada
Antes de definir el trabajo de Stream Analytics, debe preparar los datos de entrada. Los datos del sensor en tiempo real se ingieren en IoT Hub, que posteriormente se configura como la entrada del trabajo. Haga lo siguiente para preparar los datos de entrada que el trabajo requiere:
Inicie sesión en Azure Portal.
Haga clic en Crear un recurso > Internet de las cosas > IoT Hub.
En el panel IoT Hub, escriba la siguiente información:
- Suscripción: seleccione su suscripción de Azure.
- Grupo de recursos: seleccione un grupo de recursos existente o cree uno nuevo.
- Nombre de la instancia de IoT Hub: escriba un nombre para la instancia de IoT Hub.
- Región: seleccione la región más cercana a la suya.
Vaya a la página Administración. En Nivel de precios y de escala, seleccione F1: Nivel Gratis, si todavía está disponible en la suscripción. Para obtener más información, vea el artículo sobre precios de IoT Hub.
Seleccione Revisar + crear. Revise la información del centro de IoT y haga clic en Crear. Este proceso puede tardar unos minutos en implementar la instancia de IoT Hub.
Una vez creada la instancia de IoT Hub, seleccione Ir al recurso para ir a la página IoT Hub. '
En la página IoT Hub, seleccione Dispositivos en el menú de la izquierda y, a continuación, seleccione + Agregar dispositivo.
Introduzca un identificador de dispositivo y seleccione Guardar.
Después de crear el dispositivo, debería verlo en la lista Dispositivos de IoT. Seleccione el botón Actualizar de la página si no lo ve.
Seleccione el dispositivo de la lista. Copie el valor de Cadena de conexión principal y guárdelo en el Bloc de notas para usarlo más adelante.
Ejecutar el simulador
Abra el simulador en línea de Raspberry Pi para Azure IoT en otra pestaña del explorador.
Reemplace el marcador de posición de la línea 15 con la cadena de conexión del dispositivo del centro de IoT que ha guardado anteriormente.
Seleccione Run (Ejecutar). La salida debe mostrar los datos y mensajes del sensor que se envían al centro de IoT.
Creación de un almacenamiento de blobs
En la esquina superior izquierda de Azure Portal, seleccione Crear un recurso>Almacenamiento>Cuenta de almacenamiento.
En el panel Crear cuenta de almacenamiento, escriba un nombre, una ubicación y un grupo de recursos para la cuenta de almacenamiento. Elija la misma ubicación y grupo de recursos que los del centro de IoT que ha creado. Luego, seleccione Revisar y crear y Crear para crear la cuenta de almacenamiento.
En la página Cuenta de almacenamiento, seleccione Contenedores y, a continuación, seleccione + Contenedor en la barra de comandos.
En la página Nuevo contenedor, proporcione un nombre para el contenedor, deje Nivel de acceso público como Privado (sin acceso anónimo) y seleccione Aceptar.
Creación de un trabajo de Stream Analytics
En Visual Studio Code, presione Ctrl+Mayús+P y escriba ASA: Create New Project para crear un proyecto de ASA.
Escriba el nombre del proyecto, como myASAproj, y seleccione una carpeta.
Se agrega al área de trabajo un proyecto de ASA que consta de tres carpetas: Inputs, Outputs y Functions. También tiene el script de consulta (*.asaql) , un archivo JobConfig.json y un archivo de configuración asaproj.json.
El archivo asaproj.json contiene las entradas, las salidas y la configuración de trabajo para enviar el trabajo de Stream Analytics a Azure.
Nota
Al agregar las entradas y salidas de la paleta de comandos, se agregan automáticamente las rutas correspondientes a asaproj.json. Si agrega o quita entradas o salidas en el disco directamente, deberá agregarlas o quitarlas manualmente en asaproj.json. Puede colocar las entradas y salidas en un mismo lugar y, a continuación, hacer referencia a ellas en distintos trabajos especificando las rutas de acceso en cada archivo asaproj.json.
Definir la consulta de transformación
Abra el archivo myASAproj.asaql y agregue la siguiente consulta:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Configuración de la entrada del trabajo
Haga clic con el botón derecho en la carpeta Entradas del proyecto de Stream Analytics. Después, seleccione ASA: Agregar entrada en el menú contextual.
También puede presionar Ctrl+Mayús+P para abrir la paleta de comandos y escribir ASA: Add Input para agregar una entrada de ASA.
Seleccione IoT Hub como tipo de entrada.
Seleccione un script de ASA *.asaql y Suscripciones de Azure en el menú desplegable y presione ENTRAR.
Verá que se crea un archivo IoTHub1.json en la carpeta Inputs. Reemplace la configuración por los siguientes valores sugeridos y mantenga los valores predeterminados de los campos que no se mencionen aquí.
Configuración Valor sugerido Descripción Nombre Entrada Este nombre de entrada se usa para la instrucción FROM de la consulta. IotHubNamespace spiothub Nombre de la instancia de IoT Hub. Los nombres de IoT Hub se detectan automáticamente si se selecciona Select from your subscription (Seleccionar desde la suscripción). SharedAccessPolicyName iothubowner Seleccione Preview data (Vista previa de los datos) para comprobar si los datos de entrada están configurados correctamente para el trabajo. Se capturará un ejemplo de la instancia de IoT Hub y se mostrará en la ventana de vista previa.
Configuración de la salida del trabajo
Presione Ctrl+Mayús+P para abrir la paleta de comandos y escribir ASA: Add Output para agregar una salida de ASA.
Elija Data Lake Storage Gen2/Blob Storage para el tipo de receptor.
Seleccione el script de consulta usando esta salida.
Escriba BlobStorage1 como nombre de archivo de salida.
Edite la configuración con los siguientes valores. Conserve los valores predeterminados para los campos que no se mencionan aquí.
Configuración Valor sugerido Descripción Nombre Salida Este nombre de salida se usa en la instrucción INTO de la consulta. Cuenta de almacenamiento spstorageaccount0901 Elija o escriba el nombre de la cuenta de almacenamiento. Los nombres de cuenta de almacenamiento se detectan automáticamente si se crean en la misma suscripción. Contenedor spcontainer Seleccione el contenedor existente que creó en la cuenta de almacenamiento.
Compilación del script y envío a Azure
La compilación del script comprueba la sintaxis y genera las plantillas de Azure Resource Manager para la implementación automática.
Haga clic con el botón derecho en el script y seleccione ASA: Compile Script.
Tras la compilación, verá una carpeta Deploy en el proyecto con dos plantillas de Azure Resource Manager. Estos dos archivos se usan para la implementación automática.
Seleccione Enviar a Azure en el editor de consultas.
Después, siga las instrucciones para completar el proceso: Seleccionar una suscripción > Seleccionar un trabajo > Crear un trabajo > Indicar el nombre del trabajo > Elegir el grupo de recursos y la región.
Seleccione Publicar en Azure y complete. Espere a que se abra una nueva pestaña de Cloud Job View (Vista de trabajo en la nube) donde se muestra el estado del trabajo.
Inicio del trabajo de Stream Analytics y consulta de la salida
En la pestaña Cloud Job View (Vista de trabajo en la nube), seleccione Iniciar para ejecutar el trabajo en la nube. Este proceso puede tardar unos minutos en completarse.
Si el trabajo se inicia correctamente, su estado cambia a En ejecución. Puede ver un diagrama lógico en el que se muestra cómo se está ejecutando el trabajo de ASA.
Para ver los resultados de salida, puede abrir el almacenamiento de blobs en la extensión de Visual Studio Code o en Azure Portal.
Descargue y abra el archivo para ver la salida.
{"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}} {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}} {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}} {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}} {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}} {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}} {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}} {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}} {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}} {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}} {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
Limpieza de recursos
Cuando no los necesite, elimine el grupo de recursos, el trabajo de Stream Analytics y todos los recursos relacionados. La eliminación del trabajo evita la facturación de las unidades de streaming utilizadas por el trabajo. Si piensa utilizar el trabajo en el futuro, puede detenerlo y volver a iniciarlo más adelante cuando sea necesario. Si no va a seguir usando este trabajo, siga estos pasos para eliminar todos los recursos creados en este inicio rápido:
En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos y después el nombre del recurso que ha creado.
En la página del grupo de recursos, seleccione Eliminar. En el cuadro de texto, escriba el nombre del recurso que desea eliminar y, después, seleccione Eliminar.
Pasos siguientes
Para obtener más información sobre la extensión Azure Stream Analytics Tools para Visual Studio Code, consulte los artículos siguientes: