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
- Subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita.
- Visual Studio Code.
Instalar a extensão das Ferramentas do Azure Stream Analytics
Abra o Visual Studio Code (VS Code).
Em Extensões no painel esquerdo, procure stream analytics e selecione Instalar na extensão Azure Stream Analytics Tools .
Após a instalação, selecione o ícone do Azure na barra de atividade e inicie sessão no Azure.
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:
Inicie sessão no Portal do Azure.
Selecione Criar um recurso > Internet das Coisas > Hub IoT.
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.
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.
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.
Depois de criar o hub IoT, selecione Ir para recurso para navegar para a página Hub IoT. '
Na página Hub IoT, selecione Dispositivos no menu esquerdo e, em seguida, selecione + Adicionar Dispositivo.
Introduza um ID de Dispositivo e selecione Guardar.
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.
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.
Executar o simulador IoT
Abra o Simulador Online do Azure IoT Raspberry Pi num novo separador do browser.
Substitua o marcador de posição na linha 15 pela cadeia de ligação do dispositivo do hub IoT que guardou anteriormente.
Selecione Executar. O resultado deve mostrar os dados do sensor e as mensagens que estão a ser enviadas para o seu hub IoT.
Criar armazenamento de blobs
No canto superior esquerdo do portal do Azure, selecione Criar umaconta deArmazenamento>de recursos>.
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.
Na página Conta de armazenamento , selecione Contentores no menu esquerdo e, em seguida, selecione + Contentor na barra de comandos.
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.
Criar um projeto do Stream Analytics
No Visual Studio Code, prima Ctrl+Shift+P e introduza ASA: Criar Novo Projeto.
Introduza o nome do projeto, como myASAproj, e selecione uma pasta para o seu projeto.
É 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 .
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
Abra o ficheiro 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 rato na pasta Entradas no seu projeto do Stream Analytics. Em seguida, selecione ASA: Adicionar Entrada no menu de contexto.
Em alternativa, prima Ctrl+Shift+P para abrir a paleta de comandos e introduza ASA: Adicionar Entrada.
Selecione Hub IoT para o tipo de entrada.
Selecione um script ASA *.asaql e Subscrições do Azure no menu pendente e, em seguida, prima ENTER.
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 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.
Configurar a saída da tarefa
Prima Ctrl+Shift+P para abrir a paleta de comandos e introduza ASA: Adicionar Saída.
Selecione Data Lake Storage Gen2/Armazenamento de Blobs para o tipo de sink.
Selecione o script de consulta com esta saída.
Introduza BlobStorage1 como nome de ficheiro de saída.
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.
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.
Clique com o botão direito do rato no script e selecione ASA: Compilar Script.
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.
Selecione Submeter para o Azure no editor de consultas.
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.
Selecione Publicar no Azure e conclua. Aguarde que abra um novo separador Vista de Trabalho na Cloud que mostra o estado da sua tarefa.
Iniciar a tarefa do Stream Analytics e verificar a saída
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.
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.
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.
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:
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.
Passos seguintes
Para saber mais sobre a extensão asA Tools para Visual Studio Code, avance para os seguintes artigos: