Compartir vía


Inicio rápido: Crear un trabajo de Stream Analytics con Visual Studio Code

En este inicio rápido, 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.

Ejecutar el simulador

  1. Abra el simulador en línea de Raspberry Pi para Azure IoT.

  2. Reemplace el marcador de posición de la línea 15 con la cadena de conexión del dispositivo de Azure IoT Hub que guardó en la sección anterior.

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

    Captura de pantalla en la que se muestra la página **Simulador en línea de Raspberry Pi para Azure IoT** con la consulta de ejemplo.

    Importante

    Seleccione Restablecer después de unos minutos para restablecer la cadena de conexión.

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. Elija Seleccionar entre las suscripciones de Azure en el menú desplegable y presione ENTER.

  4. Escriba Entrada para el nombre y presione ENTER.

  5. Verá que se crea un archivo IoTHub1.json en la carpeta Inputs.

  6. En el archivo JSON, confirme que Entrada se especifica como Nombre.

  7. En el editor JSON de Input.json, elija Seleccionar entre las suscripciones y, a continuación, seleccione la suscripción de Azure que tenga IoT Hub.

    Recorte de pantalla que muestra el editor JSON con el vínculo Seleccionar entre las suscripciones.

  8. En el editor JSON, elija Seleccionar una instancia de IoT Hub y, a continuación, seleccione el centro de IoT que creó.

    Recorte de pantalla que muestra el editor JSON con el vínculo Seleccionar una instancia de IoT Hub.

  9. De forma predeterminada, el SharedAccessPolicyName debe establecerse en iothubowner. Si no es así, elija Seleccionar un nombre de directiva de acceso compartido y, a continuación, seleccione iothubowner en la lista desplegable.

  10. El valor de SharedAccessPolicyKey debe establecerse automáticamente.

  11. 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. Haga clic con el botón derecho en Salidas en el explorador y seleccione ASA: Agregar salida.
  2. Elija Data Lake Storage Gen2/Blob Storage para el tipo de receptor en la lista desplegable.
  3. Elija Seleccionar entre las suscripciones de Azure
  4. Escriba Salida para el nombre del alias y presione ENTRAR. Este nombre de salida se usa en la instrucción INTO de la consulta.
  5. En el editor JSON de Output.json, elija Seleccionar entre las suscripciones y, a continuación, seleccione la suscripción de Azure que tenga la cuenta de Azure Storage
  6. Si necesita cambiar la cuenta de almacenamiento que se rellena automáticamente, elija Seleccionar una cuenta de almacenamiento y, a continuación, seleccione la cuenta de Azure Storage. Los nombres de cuenta de almacenamiento se detectan automáticamente si se crean en la misma suscripción.
  7. Si necesita cambiar el nombre del contenedor, elija Seleccionar un contenedor y seleccione el contenedor de blobs que creó.

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 archivo de script en la ventana del explorador, seleccione ASA: compilar script y, a continuación, seleccione ASA: plantilla de ARM V2 (recomendado).

    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.

    Recorte de pantalla que muestra el botón Enviar trabajo para enviar el trabajo de Stream Analytics a Azure.

  4. En la ventana Enviar, siga estos pasos:

    1. Seleccione la suscripción de Azure.

    2. Seleccione un grupo de recursos de Azure.

    3. Seleccione la región donde desea crear el trabajo de Stream Analytics.

    4. Seleccione Enviar.

      Recorte de pantalla que muestra las opciones de Enviar.

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

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

  2. En la ventana Iniciar trabajo de streaming, seleccione Aceptar. Este proceso puede tardar unos minutos en completarse.

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

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