Guia de início rápido: criar um trabalho do Stream Analytics usando o Visual Studio Code
Neste início rápido, você cria, executa e envia um trabalho do Azure Stream Analytics (ASA) usando a extensão ASA Tools para Visual Studio Code em 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 oferecem suporte a trabalhos nas regiões Leste da China, Norte da China, Alemanha Central e Nordeste da Alemanha.
Pré-requisitos
- Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita.
- Visual Studio Code.
Instalar a extensão Azure Stream Analytics Tools
Abra o Visual Studio Code (VS Code).
Em Extensões no painel esquerdo, procure análise de fluxo e selecione Instalar na extensão Ferramentas do Azure Stream Analytics .
Depois de instalado, selecione o ícone do Azure na barra de atividades e entre no Azure.
Depois de iniciar sessão, pode ver as subscrições na sua conta do Azure.
Nota
A extensão ASA Tools iniciará sessão automaticamente sempre que abrir o VS Code. Se sua conta tiver autenticação de dois fatores, recomendamos que você use a 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
.
Execute o simulador de IoT
Abra o Simulador do Raspberry Pi Azure IoT Online.
Substitua o espaço reservado na Linha 15 pela cadeia de conexão de dispositivo do Hub IoT do Azure salva em uma seção anterior.
Selecione Executar. A saída deve mostrar os dados do sensor e as mensagens que estão sendo enviadas para o Hub IoT.
Importante
Selecione Redefinir após alguns minutos para redefinir a cadeia de conexão.
Criar armazenamento de blob
No canto superior esquerdo do portal do Azure, selecione Criar uma conta de armazenamento de recursos>>.
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.
Na página Conta de armazenamento, selecione Contêineres no menu esquerdo e, em seguida, selecione + Contêiner na barra de comandos.
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.
Criar um projeto do Stream Analytics
No Visual Studio Code, pressione Ctrl+Shift+P e digite ASA: Create New Project.
Digite o nome do projeto, como myASAproj, e selecione uma pasta para o projeto.
Um projeto ASA é adicionado 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 .
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 você adiciona entradas e saídas da paleta de comandos, os caminhos correspondentes são adicionados ao asaproj.json automaticamente. Se você adicionar ou remover entradas ou saídas no disco diretamente, precisará adicioná-las ou removê-las manualmente do asaproj.json. Você pode optar por colocar as entradas e saídas em um só lugar e, em seguida, fazer referência a elas em trabalhos diferentes, especificando os caminhos em cada arquivo asaproj.json .
Definir a consulta de transformação
Abra o arquivo myASAproj.asaql e adicione a seguinte consulta:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Configurar a entrada da tarefa
Clique com o botão direito do mouse na pasta Inputs em seu projeto do Stream Analytics. Em seguida, selecione ASA: Adicionar entrada no menu de contexto.
Ou pressione Ctrl+Shift+P para abrir a paleta de comandos e digite ASA: Add Input.
Escolha Hub IoT para o tipo de entrada.
Escolha Selecionar a partir de subscrições do Azure no menu pendente e, em seguida, prima ENTER.
Introduza Input para o nome e, em seguida, prima ENTER.
Na pasta Entradas , você verá que um arquivo IoTHub1.json foi criado.
No arquivo JSON, confirme se Input é Nome especificado.
No editor JSON para Input.json, escolha Selecionar entre suas assinaturas e, em seguida, selecione sua assinatura do Azure que tenha o hub IoT.
No editor JSON, escolha Selecionar um Hub IoT e selecione o hub IoT que você criou.
Por padrão, o
SharedAccessPolicyName
deve ser definido comoiothubowner
. Caso contrário, escolha o link Selecionar um Nome da Política de Acesso Compartilhado e selecione iothubowner na lista suspensa.O
SharedAccessPolicyKey
valor deve ser definido automaticamente.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 será exibido na janela de visualização.
Configurar a saída da tarefa
- Clique com o botão direito do mouse em Saídas no explorador e selecione ASA: Adicionar saída.
- Escolha Data Lake Storage Gen2/Blob Storage para o tipo de coletor na lista suspensa.
- Escolha Selecionar a partir de subscrições do Azure
- Digite Output para o nome do alias e pressione ENTER. Esse nome de saída é usado para a instrução INTO na consulta.
- No editor JSON para Output.json, escolha Selecionar entre suas assinaturas e, em seguida, selecione sua assinatura do Azure que tenha a conta de Armazenamento do Azure
- 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.
- Se você precisar alterar o nome do contêiner, escolha Selecionar um contêiner e selecione o contêiner de blob que você criou.
Compilar o script e enviar para o Azure
A compilação de scripts verifica a sintaxe e gera os modelos do Azure Resource Manager para implantação automática.
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).
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.
Selecione Enviar para o Azure no editor de consultas.
Na janela Enviar, siga estas etapas:
Selecione a sua subscrição do Azure.
Selecione um grupo de recursos do Azure.
Selecione a região onde deseja criar o trabalho do Stream Analytics.
Em seguida, selecione Enviar.
Selecione Publicar no Azure e conclua. Aguarde até que ele abra uma nova guia Cloud Job View mostrando o status do seu trabalho.
Iniciar a tarefa do Stream Analytics e verificar a saída
No separador Cloud Job View, selecione Iniciar para executar o seu trabalho na nuvem.
Na janela Iniciar trabalho de streaming, selecione OK. A conclusão deste processo poderá demorar alguns minutos.
Se o trabalho for iniciado com êxito, o status do trabalho será alterado para Em execução. Você pode ver um diagrama lógico mostrando como seu trabalho ASA está sendo executado.
Para exibir os resultados de saída, você pode abrir o armazenamento de blob na extensão Visual Studio Code ou no portal do Azure.
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"}}
Clean up resources (Limpar recursos)
Quando não for mais necessário, exclua o grupo de recursos, o trabalho 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 você não vai continuar a usar esse trabalho, exclua todos os recursos criados por este início rápido usando as seguintes etapas:
No menu esquerdo do portal do Azure, selecione Grupos de recursos e, em seguida, selecione o nome do recurso que criou.
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, continue para os seguintes artigos: