Início Rápido: Criar uma tarefa do Stream Analytics com o Visual Studio Code

Este início rápido mostra-lhe como criar, executar e submeter uma tarefa do Azure Stream Analytics (ASA) com a extensão ASA Tools para Visual Studio Code no seu computador local. Vai aprender a criar uma tarefa do ASA que lê dados de transmissão em fluxo em tempo real a partir de Hub IoT e filtra eventos com uma temperatura superior a 27°. Os resultados de saída são enviados para um ficheiro no armazenamento de blobs. Os dados de entrada utilizados neste início rápido são gerados por um simulador online Raspberry Pi.

Nota

As ferramentas do Visual Studio Code não suportam trabalhos nas regiões Leste da China, Norte da China, Alemanha Central e Alemanha do Norte.

Pré-requisitos

Instalar a extensão das Ferramentas do Azure Stream Analytics

  1. Abra o Visual Studio Code (VS Code).

  2. Em Extensões no painel esquerdo, procure stream analytics e selecione Instalar na extensão Azure Stream Analytics Tools .

    Captura de ecrã a mostrar a página Extensões do Visual Studio Code com uma opção para instalar a extensão do Stream Analytics.

  3. Após a instalação, selecione o ícone do Azure na barra de atividade e inicie sessão no Azure.

    Captura de ecrã a mostrar como iniciar sessão no Azure.

  4. Depois de iniciar sessão, pode ver as subscrições na sua conta do Azure.

Nota

A extensão ferramentas do ASA iniciará automaticamente a sua sessão sempre que abrir o VS Code. Se a sua conta tiver autenticação de dois fatores, recomendamos que utilize a autenticação por telefone em vez de utilizar um PIN. Para terminar sessão na sua conta do Azure, prima Ctrl + Shift + P e introduza Azure: Sign Out.

Preparar os dados de entrada

Antes de definir a tarefa do Stream Analytics, deve preparar os dados de entrada. Os dados do sensor em tempo real são ingeridos para Hub IoT, que posteriormente são configurados como a entrada da tarefa. Para preparar os dados de entrada necessários para a tarefa, siga estes passos:

  1. Inicie sessão no Portal do Azure.

  2. Selecione Criar um recurso > Internet das Coisas > Hub IoT.

    Captura de ecrã a mostrar a página Criar Recurso para o Hub IoT.

  3. Na página Hub IoT, introduza as seguintes informações:

    • Subscrição, selecione a sua subscrição do Azure.
    • Grupo de recursos, selecione um grupo de recursos existente ou crie um novo grupo de recursos.
    • Nome do hub IoT, introduza um nome para o seu hub IoT.
    • Região, selecione a região mais próxima de si.

    Captura de ecrã a mostrar a página Hub IoT para criação.

  4. Aceda à página Gestão , em Preços e escalão de dimensionamento, selecione F1: Escalão gratuito, se ainda estiver disponível na sua subscrição. Para obter mais informações, veja preços de Hub IoT do Azure.

    Captura de ecrã a mostrar a página de gestão de Hub IoT.

  5. Selecione Rever + criar. Reveja as informações do hub IoT e selecione Criar. Este processo pode demorar alguns minutos a implementar o seu hub IoT.

  6. Depois de criar o hub IoT, selecione Ir para recurso para navegar para a página Hub IoT. '

  7. Na página Hub IoT, selecione Dispositivos no menu esquerdo e, em seguida, selecione + Adicionar Dispositivo.

    Captura de ecrã a mostrar o botão Adicionar Dispositivo na página Dispositivos.

  8. Introduza um ID de Dispositivo e selecione Guardar.

    Captura de ecrã a mostrar a página Adicionar Dispositivo.

  9. Assim que o dispositivo for criado, deverá ver o dispositivo na lista de dispositivos IoT . Selecione o botão Atualizar na página se não o vir.

    Captura de ecrã a mostrar a seleção do dispositivo na página Dispositivos.

  10. Selecione o seu dispositivo na lista. Copie a Cadeia de Ligação Primária e guarde-a num bloco de notas para utilizar mais tarde.

    Captura de ecrã a mostrar a cadeia de ligação primária do dispositivo que criou.

Executar o simulador IoT

  1. Abra o Simulador Online do Azure IoT Raspberry Pi num novo separador do browser.

  2. Substitua o marcador de posição na linha 15 pela cadeia de ligação do dispositivo do hub IoT que guardou anteriormente.

  3. Selecione Executar. O resultado deve mostrar os dados do sensor e as mensagens que estão a ser enviadas para o seu hub IoT.

    Captura de ecrã a mostrar o Simulador Online do Azure IoT Raspberry Pi com saída.

Criar armazenamento de blobs

  1. No canto superior esquerdo do portal do Azure, selecione Criar umaconta deArmazenamento>de recursos>.

    Captura de ecrã a mostrar o menu Criar conta de armazenamento.

  2. No painel Criar conta de armazenamento , introduza o nome, a localização e o grupo de recursos da conta de armazenamento. Escolha a mesma localização e grupo de recursos que o hub IoT que criou. Em seguida, selecione Rever e Criar para criar a conta de armazenamento.

    Captura de ecrã a mostrar a página Criar conta de armazenamento.

  3. Na página Conta de armazenamento , selecione Contentores no menu esquerdo e, em seguida, selecione + Contentor na barra de comandos.

    Captura de ecrã a mostrar a página Contentores.

  4. Na página Novo contentor , forneça um nome para o contentor, deixe o Nível de acesso público como Privado (sem acesso anónimo) e selecione OK.

    Captura de ecrã a mostrar a criação de uma página de contentor de blobs.

Criar um projeto do Stream Analytics

  1. No Visual Studio Code, prima Ctrl+Shift+P e introduza ASA: Criar Novo Projeto.

    Captura de ecrã a mostrar a seleção de ASA: Criar Novo Projeto na paleta de comandos.

  2. Introduza o nome do projeto, como myASAproj, e selecione uma pasta para o seu projeto.

    Captura de ecrã a mostrar a introdução de um nome de projeto ASA.

  3. É adicionado um projeto ASA à área de trabalho. Consiste em três pastas: Entradas, Saídas e Funções. Também tem o script de consulta (*.asaql), um ficheiro JobConfig.json e um ficheiro de configuração asaproj.json .

    Captura de ecrã a mostrar ficheiros de projeto do Stream Analytics no Visual Studio Code.

    O ficheiro asaproj.json contém as definições de configuração de tarefas, saídas e entradas para submeter a tarefa do Stream Analytics para o Azure.

    Nota

    Quando adiciona entradas e saídas da paleta de comandos, os caminhos correspondentes são adicionados automaticamente a asaproj.json . Se adicionar ou remover entradas ou saídas diretamente no disco, terá de adicioná-las ou removê-las manualmente de asaproj.json. Pode optar por colocar as entradas e saídas num único local e, em seguida, referenciá-las em diferentes tarefas ao especificar os caminhos em cada ficheiro asaproj.json .

Definir a consulta de transformação

  1. Abra o ficheiro myASAproj.asaql e adicione a seguinte consulta:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Captura de ecrã a mostrar a consulta de transformação.

Configurar a entrada da tarefa

  1. Clique com o botão direito do rato na pasta Entradas no seu projeto do Stream Analytics. Em seguida, selecione ASA: Adicionar Entrada no menu de contexto.

    Captura de ecrã a mostrar o menu ASA: Adicionar entrada no Visual Studio Code.

    Em alternativa, prima Ctrl+Shift+P para abrir a paleta de comandos e introduza ASA: Adicionar Entrada.

  2. Selecione Hub IoT para o tipo de entrada.

    Captura de ecrã a mostrar a seleção do seu hub IoT na paleta de comandos do VS Code.

  3. Selecione um script ASA *.asaql e Subscrições do Azure no menu pendente e, em seguida, prima ENTER.

  4. Na pasta Entradas , verá que é criado um ficheiro IoTHub1.json . Substitua as definições pelos seguintes valores sugeridos e mantenha os valores predefinidos para campos não mencionados aqui.

    Definições Valor sugerido Descrição
    Nome Entrada Este nome de entrada é utilizado para a instrução FROM na consulta.
    IotHubNamespace spiothub Nome do hub IoT. Os nomes dos hubs IoT são automaticamente detetados se selecionar a partir da sua subscrição.
    SharedAccessPolicyName iothubowner

    Captura de ecrã a mostrar a configuração do Hub IoT no VS Code.

  5. Selecione Pré-visualizar dados para ver se os dados de entrada estão configurados com êxito para a sua tarefa. Irá obter um exemplo do seu Hub IoT e aparecer na janela de pré-visualização.

    Captura de ecrã a mostrar a pré-visualização dos dados de entrada no hub IoT.

Configurar a saída da tarefa

  1. Prima Ctrl+Shift+P para abrir a paleta de comandos e introduza ASA: Adicionar Saída.

  2. Selecione Data Lake Storage Gen2/Armazenamento de Blobs para o tipo de sink.

  3. Selecione o script de consulta com esta saída.

  4. Introduza BlobStorage1 como nome de ficheiro de saída.

  5. Edite as definições com os seguintes valores. Mantenha os valores predefinidos para campos não mencionados aqui.

    Definição Valor sugerido Descrição
    Nome Saída Este nome de saída é utilizado para a instrução INTO na consulta.
    Conta de Armazenamento spstorageaccount0901 Selecione ou introduza o nome da sua conta de armazenamento. Os nomes das contas de armazenamento são automaticamente detetados se forem criados na mesma subscrição.
    Contentor spcontainer Selecione o contentor existente que criou na conta de armazenamento.

Captura de ecrã a mostrar a configuração da saída da tarefa do Stream Analytics.

Compilar o script e submeter para o Azure

A compilação de scripts verifica a sintaxe e gera os modelos de Resource Manager do Azure para implementação automática.

  1. Clique com o botão direito do rato no script e selecione ASA: Compilar Script.

    Captura de ecrã a mostrar a opção de compilação do script do explorador do Stream Analytics no VS Code.

  2. Após a compilação, verá uma pasta Implementar no seu projeto com dois modelos do Azure Resource Manager. Estes dois ficheiros são utilizados para a implementação automática.

    Captura de ecrã a mostrar os modelos de implementação gerados na pasta do projeto.

  3. Selecione Submeter para o Azure no editor de consultas.

    Captura de ecrã a mostrar o botão submeter tarefa para submeter a tarefa do Stream Analytics para o Azure.

    Em seguida, siga as instruções para concluir o processo: Selecione subscrição > Selecione uma tarefa > Criar Nova Tarefa > Introduza nome > da tarefa Escolher grupo de recursos e região.

  4. Selecione Publicar no Azure e conclua. Aguarde que abra um novo separador Vista de Trabalho na Cloud que mostra o estado da sua tarefa.

    Captura de ecrã a mostrar o botão publicar no Azure no VS Code.

Iniciar a tarefa do Stream Analytics e verificar a saída

  1. No separador Vista de Trabalho na Cloud , selecione Iniciar para executar a sua tarefa na cloud. Este processo pode demorar alguns minutos a ser concluído.

    Captura de ecrã a mostrar o botão Iniciar tarefa na página Vista da cloud.

  2. Se a tarefa for iniciada com êxito, o estado da tarefa será alterado para Em Execução. Pode ver um diagrama lógico que mostra como a tarefa ASA está em execução.

    Captura de ecrã a mostrar o estado de execução da tarefa no VS Code.

  3. Para ver os resultados de saída, pode abrir o armazenamento de blobs na extensão do Visual Studio Code ou no portal do Azure.

    Captura de ecrã a mostrar o ficheiro de saída no contentor de Blobs.

    Transfira e abra o ficheiro para ver a saída.

    {"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"}}
    

Limpar os recursos

Quando já não for necessário, elimine o grupo de recursos, a tarefa do Stream Analytics e todos os recursos relacionados. A eliminação da tarefa evita a faturação das unidades de transmissão em fluxo consumidas pela tarefa. Se estiver a planear utilizar a tarefa no futuro, pode pará-la e reiniciá-la mais tarde, quando for necessário. Se não pretender continuar a utilizar esta tarefa, elimine todos os recursos criados por este início rápido com os seguintes passos:

  1. No menu esquerdo do portal do Azure, selecione Grupos de recursos e, em seguida, selecione o nome do recurso que criou.

  2. Na página do grupo de recursos, selecione Eliminar. Introduza o nome do recurso a eliminar na caixa de texto e, em seguida, selecione Eliminar.

Passos seguintes

Para saber mais sobre a extensão asA Tools para Visual Studio Code, avance para os seguintes artigos: