Partilhar via


Quickstart: Crie um trabalho de Stream Analytics usando Visual Studio Code

Neste início rápido, você cria, executa e submete um trabalho no Azure Stream Analytics (ASA) usando a extensão ASA Tools para Visual Studio Code na sua máquina local. Você aprende a criar um trabalho ASA que lê dados de streaming em tempo real do Hub IoT e filtra eventos com uma temperatura superior a 27°. Os resultados de saída são enviados para um arquivo no armazenamento de blobs. Os dados de entrada usados neste início rápido são gerados por um simulador online do Raspberry Pi.

Nota

As ferramentas do Visual Studio Code não suportam empregos nas regiões China Este, China Norte, Alemanha Central e Alemanha Nordeste.

Pré-requisitos

Instalar a extensão Azure Stream Analytics Tools

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

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

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

  3. Depois de instalado, selecione o ícone do Azure na barra de atividades e entre 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 ASA Tools faz login automaticamente sempre que abre o VS Code. Se a sua conta tiver autenticação de dois fatores, use autenticação por telefone em vez de usar um PIN. Para sair da sua conta do Azure, pressione Ctrl + Shift + P e digite Azure: Sign Out.

Preparar os dados de entrada

Antes de definir o trabalho de Stream Analytics, prepare os dados de entrada. A solução ingere os dados dos sensores em tempo real para o IoT Hub, que depois configura como entrada de trabalho. Para preparar os dados de entrada exigidos pelo trabalho, conclua as seguintes etapas:

  1. Inicie sessão no portal Azure.

  2. Selecione Criar um recurso. Na página Criar um recurso, selecione Internet das Coisas>Hub IoT.

    Captura de tela mostrando o menu Hub IoT na página Criar um recurso.

  3. Na página IoT Hub, siga estas etapas:

    1. Em Assinatura, selecione sua assinatura do Azure.
    2. Em Grupo de recursos, selecione um grupo de recursos existente ou crie um novo grupo de recursos.
    3. Para Nome do hub IoT, insira um nome para seu hub IoT.
    4. Em Região, selecione a região mais próxima de você.
    5. Para o Nível, selecione Grátis, se ainda estiver disponível na sua subscrição. Para obter mais informações, consulte Preços do Hub IoT.
    6. Para Limite diário de mensagens, mantenha o valor padrão.
    7. Selecione Next: Networking na parte inferior da página.

    Captura de ecrã que mostra a página do IoT Hub para criação.

  4. Selecione Verificar + criar. Revise as informações do Hub IoT e selecione Criar. Seu Hub IoT pode levar alguns minutos para ser criado. Você pode monitorar o progresso no painel Notificações .

  5. Depois de criar o recurso (hub IoT), selecione Ir para recurso para aceder à página do Hub IoT.

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

  7. Introduza um ID de dispositivo e selecione Guardar.

    Captura de ecrã que mostra a página Criar um dispositivo.

  8. Depois de criar o dispositivo, vê-lo na lista de dispositivos IoT . Selecione o botão Atualizar na página se não o vir.

    Captura de ecrã a mostrar a lista de dispositivos.

  9. Selecione o seu dispositivo na lista.

  10. Na página do dispositivo, selecione o botão de cópia ao lado de Cadeia de Ligação Primária e guarde-a num bloco de notas para usar mais tarde.

    Captura de ecrã a mostrar o botão de cópia junto à cadeia de ligação do dispositivo.

Execute o simulador de IoT

  1. Abra o Simulador Raspberry Pi Azure IoT Online.

  2. Substitua o marcador na linha 15 pela cadeia de conexão do dispositivo Azure IoT Hub que guardou numa secção anterior.

  3. Selecione Executar. A saída mostra os dados dos sensores e as mensagens enviadas para o seu Hub IoT.

    Captura de tela mostrando a página **Raspberry Pi Azure IoT Online Simulator** com a consulta de exemplo.

    Importante

    Selecione Redefinir após alguns minutos para redefinir a cadeia de conexão.

Criar armazenamento de blob

  1. No canto superior esquerdo do portal do Azure, selecione Criar um recurso>Armazenamento>Conta de armazenamento.

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

  2. No painel Criar conta de armazenamento, insira um nome de conta de armazenamento, local e grupo de recursos. Escolha o mesmo local e grupo de recursos que o hub IoT que você criou. Em seguida, selecione Revisar 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 Contêineres no menu esquerdo e, em seguida, selecione + Contêiner na barra de comandos.

    Captura de ecrã mostrando a página Contentores.

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

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

Criar um projeto do Stream Analytics

  1. No Visual Studio Code, selecione Ver>Paleta de Comandos e introduza ASA: Criar Novo Projeto.

    Captura de tela mostrando a seleção de ASA: Criar novo projeto na paleta de comandos.

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

    Captura de tela mostrando a inserção de um nome de projeto ASA.

  3. O Visual Studio Code adiciona um projeto ASA ao seu espaço de trabalho. Consiste em três pastas: Entradas, Saídas e Funções. Ele também tem o script de consulta (*.asaql), um arquivo JobConfig.json e um arquivo de configuração asaproj.json .

    Captura de tela mostrando arquivos de projeto do Stream Analytics no Visual Studio Code.

    O arquivo asaproj.json contém as entradas, saídas e definições de configuração de trabalho para enviar o trabalho do Stream Analytics para o Azure.

    Nota

    Quando adicionas entradas e saídas da paleta de comandos, os caminhos correspondentes são adicionados automaticamente paraasaproj.json . Se você adicionar ou remover entradas ou saídas no disco diretamente, precisará adicioná-las ou removê-las manualmente do asaproj.json. Podes colocar as entradas e saídas num só local e depois referi-las em diferentes tarefas, especificando os caminhos em cada ficheiro asaproj.json.

Definir a consulta de transformação

  1. Abra o arquivo 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 Inputs no seu projeto do Stream Analytics. Em seguida, selecione ASA: Adicionar entrada no menu de contexto.

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

    Ou pressione Ctrl+Shift+P para abrir a paleta de comandos e digite ASA: Add Input.

  2. Escolha Hub IoT para o tipo de entrada.

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

  3. Escolha Selecionar das subscrições do Azure no menu pendente e, em seguida, prima ENTER.

  4. Introduza Input para o nome e, em seguida, prima ENTER.

  5. Na pasta Inputs, vês que um ficheiroInput.json foi criado.

  6. No arquivo JSON, confirme se Input está especificado como Name.

  7. No editor JSON para Input.json, escolha Selecionar entre suas assinaturas e, em seguida, selecione sua assinatura do Azure que tenha o hub IoT.

    Captura de ecrã mostrando o editor JSON com selecionar a partir do link das suas assinaturas.

  8. No editor JSON, escolha Selecionar um Hub IoT e selecione o hub IoT que você criou.

    Captura de tela mostrando o editor JSON com o link Selecionar um Hub IoT.

  9. Por padrão, o SharedAccessPolicyName deve ser definido como iothubowner. Caso contrário, escolha o link Selecionar um Nome de Política de Acesso Compartilhado e, em seguida, selecione iothubowner na lista suspensa.

  10. O SharedAccessPolicyKey valor deve ser definido automaticamente.

  11. Selecione Visualizar dados para ver se os dados de entrada foram configurados com êxito para seu trabalho. Ele buscará uma amostra do seu Hub IoT e exibirá na janela de visualização.

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

Configurar saída de tarefa

  1. Clique com o botão direito do mouse em Saídas no explorador e selecione ASA: Adicionar saída.
  2. Escolha Data Lake Storage Gen2/Blob Storage para o tipo de coletor na lista suspensa.
  3. Escolha Selecionar entre subscrições Azure.
  4. Digite Output para o nome do alias e pressione ENTER. Esse nome de saída é usado para a instrução INTO na consulta.
  5. No editor JSON para o ficheiro Output.json, escolha Escolher entre as suas subscrições e depois selecione a sua subscrição do Azure que contém a conta de Armazenamento Azure.
  6. Se você precisar alterar a conta de armazenamento que é preenchida automaticamente, escolha Selecionar uma conta de armazenamento e, em seguida, selecione sua conta de armazenamento do Azure. Os nomes das contas de armazenamento são detetados automaticamente se forem criados na mesma assinatura.
  7. Se você precisar alterar o nome do contêiner, escolha Selecionar um contêiner e selecione o contêiner de blob que você criou.

Captura de tela mostrando a configuração da saída para o trabalho do Stream Analytics.

Compilar o script e submetê-lo ao Azure

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

  1. Clique com o botão direito do mouse no arquivo de script na janela do Explorer, aponte para ASA: Compile Script e selecione ASA: ARM Template V2 (recomendado).

    Captura de ecrã da opção de compilação de scripts do explorador Stream Analytics no VS Code.

  2. Após a compilação, você verá uma pasta Implantar em seu projeto com dois modelos do Azure Resource Manager. Esses dois arquivos são usados para implantação automática.

    Captura de ecrã dos modelos de implementação gerados na pasta do projeto.

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

    Captura de ecrã do botão Enviar trabalho para submeter o trabalho de Stream Analytics para o Azure.

  4. Na janela Enviar, siga estas etapas:

    1. Selecione a sua subscrição do Azure.

    2. Selecione um grupo de recursos do Azure.

    3. Selecione a região onde deseja criar o trabalho do Stream Analytics.

    4. Em seguida, selecione Enviar.

      Captura de ecrã das opções de Submissão.

  5. Selecione Publicar no Azure e conclua. Aguarde até que ele abra uma nova guia Cloud Job View mostrando o status do seu trabalho.

    Captura de ecrã do botão publicar para Azure no VS Code.

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

  1. No separador Cloud Job View, selecione Iniciar para executar o seu trabalho na nuvem.

    Captura de ecrã do botão Iniciar trabalho na página da visualização na Cloud.

  2. Na janela Iniciar trabalho de streaming, selecione OK. A conclusão deste processo poderá demorar alguns minutos.

    Captura de ecrã da janela de início do trabalho de streaming.

  3. Se o seu trabalho começar com sucesso, o estado do trabalho muda para Em Execução. Você vê um diagrama lógico que mostra como está em execução o seu trabalho ASA.

    Captura de ecrã do estado da tarefa a correr no VS Code.

  4. Para visualizar os resultados de saída, abra o armazenamento de blobs na extensão Visual Studio Code ou no portal Azure.

    Captura de ecrã do ficheiro de saída no contentor Blob.

    Baixe e abra o arquivo 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 recursos

Quando já não precisares dos recursos, elimina o grupo de recursos, o trabalho de Stream Analytics e todos os recursos relacionados. Eliminar o trabalho impede a faturação das unidades de streaming que o trabalho consome. Se planeias usar o trabalho no futuro, podes pará-lo e recomeçar mais tarde, quando precisares. Se você não vai continuar a usar esse trabalho, exclua todos os recursos criados por este início rápido usando as seguintes etapas:

  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.

Próximos passos

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