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

Instalación de la extensión Azure Stream Analytics Tools

  1. Abra Visual Studio Code (VS Code).

  2. Desde Extensiones en el panel izquierdo, busque Stream Analytics y seleccione Install (Instalar) en la extensión Azure Stream Analytics Tools.

    Captura de pantalla que muestra la página de extensiones de Visual Studio Code con una opción para instalar la extensión Stream Analytics.

  3. Una vez instalada, seleccione el icono de Azure en la barra de actividad e inicie sesión en Azure.

    Captura de pantalla que muestra cómo iniciar sesión en Azure.

  4. 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:

  1. Inicie sesión en Azure Portal.

  2. Haga clic en Crear un recurso > Internet de las cosas > IoT Hub.

    Captura de pantalla que muestra la página Creación de recursos para Iot Hub.

  3. 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.

    Captura de pantalla en la que se muestra la página de creación de IoT Hub.

  4. 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.

    Captura de pantalla de la página de administración de IoT Hub

  5. 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.

  6. Una vez creada la instancia de IoT Hub, seleccione Ir al recurso para ir a la página IoT Hub. '

  7. En la página IoT Hub, seleccione Dispositivos en el menú de la izquierda y, a continuación, seleccione + Agregar dispositivo.

    Captura de pantalla en la que se muestra el botón Agregar dispositivo en la página Dispositivo.

  8. Introduzca un identificador de dispositivo y seleccione Guardar.

    Captura de pantalla que muestra la página Agregar dispositivos.

  9. 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.

    Captura de pantalla que muestra la selección del dispositivo en la página Dispositivos.

  10. 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.

    Captura de pantalla que muestra la cadena de conexión principal del dispositivo creado.

Ejecutar el simulador

  1. Abra el simulador en línea de Raspberry Pi para Azure IoT en otra pestaña del explorador.

  2. 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.

  3. Seleccione Run (Ejecutar). La salida debe mostrar los datos y mensajes del sensor que se envían al centro de IoT.

    Captura de pantalla en la que se muestra el Simulador en línea de Raspberry Pi para Azure IoT con la salida.

Creación de un almacenamiento de blobs

  1. En la esquina superior izquierda de Azure Portal, seleccione Crear un recurso>Almacenamiento>Cuenta de almacenamiento.

    Captura de pantalla que muestra el menú Crear una cuenta de almacenamiento.

  2. 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.

    Captura de pantalla que muestra la página Crear una cuenta de almacenamiento.

  3. En la página Cuenta de almacenamiento, seleccione Contenedores y, a continuación, seleccione + Contenedor en la barra de comandos.

    Captura de pantalla que muestra la página Contenedores.

  4. 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.

    Captura de pantalla que muestra la creación de un contenedor de blobs.

Creación de un trabajo de Stream Analytics

  1. En Visual Studio Code, presione Ctrl+Mayús+P y escriba ASA: Create New Project para crear un proyecto de ASA.

    Captura de pantalla que muestra la selección de ASA: Creación de nuevo proyecto en la paleta de comandos.

  2. Escriba el nombre del proyecto, como myASAproj, y seleccione una carpeta.

    Captura de pantalla que muestra la introducción de un nombre de proyecto de ASA.

  3. 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.

    Captura de pantalla que muestra los archivo del proyecto de Stream Analytics en Visual Studio Code.

    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

  1. Abra el archivo myASAproj.asaql y agregue la siguiente consulta:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Captura de pantalla que muestra la consulta de transformación.

Configuración de la entrada del trabajo

  1. 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.

    Captura de pantalla de ASA: Agregar menú de entrada en Visual Studio Code.

    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.

  2. Seleccione IoT Hub como tipo de entrada.

    Captura de pantalla que muestra la selección del centro IoT en la paleta de comandos de VS Code.

  3. Seleccione un script de ASA *.asaql y Suscripciones de Azure en el menú desplegable y presione ENTRAR.

  4. 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

    Captura de pantalla de la configuración de IoT Hub en VS Code

  5. 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.

    Captura de pantalla que muestra la vista previa de los datos de entrada en el centro de IoT.

Configuración de la salida del trabajo

  1. Presione Ctrl+Mayús+P para abrir la paleta de comandos y escribir ASA: Add Output para agregar una salida de ASA.

  2. Elija Data Lake Storage Gen2/Blob Storage para el tipo de receptor.

  3. Seleccione el script de consulta usando esta salida.

  4. Escriba BlobStorage1 como nombre de archivo de salida.

  5. 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.

Captura de pantalla que muestra la configuración de la salida del trabajo de Stream Analytics.

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.

  1. Haga clic con el botón derecho en el script y seleccione ASA: Compile Script.

    Captura de pantalla que muestra la opción de compilación de scripts desde el explorador de Stream Analytics en VS Code.

  2. 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.

    Captura de pantalla que muestra las plantillas de implementación generadas en la carpeta del proyecto.

  3. Seleccione Enviar a Azure en el editor de consultas.

    Captura de pantalla que muestra el botón de envío de trabajo para enviar el trabajo de Stream Analytics a Azure

    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.

  4. 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.

    Captura de pantalla que muestra el botón Publicar en Azure en VS Code

Inicio del trabajo de Stream Analytics y consulta de la salida

  1. 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.

    Captura de pantalla que muestra el botón Iniciar trabajo en la página de la vista de nube.

  2. 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.

    Captura de pantalla que muestra el estado de ejecución del trabajo en VS Code

  3. Para ver los resultados de salida, puede abrir el almacenamiento de blobs en la extensión de Visual Studio Code o en Azure Portal.

    Captura de pantalla que muestra el archivo de salida del contenedor de blobs.

    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:

  1. En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos y después el nombre del recurso que ha creado.

  2. 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: