Início Rápido: Criar um trabalho do Azure Stream Analytics usando a CLI do Azure
Neste início rápido, você usará a CLI do Azure para definir um trabalho do Stream Analytics que filtra mensagens de sensor em tempo real com uma leitura de temperatura superior a 27. O trabalho do Stream Analytics lê os dados do Hub IoT, transforma os dados e grava os dados de saída em um contêiner em um armazenamento de blob. Os dados de entrada usados neste início rápido são gerados por um simulador online do Raspberry Pi.
Antes de começar
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para saber mais, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Crie um grupos de recursos. Todos os recursos do Azure devem ser implantados em um grupo de recursos. Os grupos de recursos facilitam organizar e gerenciar os recursos relacionados ao Azure.
Para este início rápido, crie um grupo de recursos chamado streamanalyticsrg na localização eastus com o seguinte comando az group create:
az group create --name streamanalyticsrg --location eastus
Preparar os dados de entrada
Antes de definir o trabalho do Stream Analytics, prepare os dados que são usados para a entrada do trabalho. Os seguintes comandos da CLI do Azure preparam os dados de entrada exigidos pelo trabalho.
Crie um Hub IoT usando o comando az iot hub create. Este exemplo cria um Hub IoT chamado MyASAIoTHub. Como os nomes do Hub IoT devem ser globalmente exclusivos, você pode ter que alterar o nome se ele já estiver em uso. Defina o SKU como F1 para usar o nível gratuito, se estiver disponível com sua assinatura. Caso contrário, escolha a próxima camada mais baixa.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1
Depois que o Hub IoT for criado, obtenha a cadeia de conexão do Hub IoT usando o comando az iot hub connection-string show. Copie toda a cadeia de conexão e salve-a. Você a usa enquanto adiciona o Hub IoT como uma entrada para o seu trabalho do Stream Analytics.
az iot hub connection-string show --hub-name $iotHubName
Adicione um dispositivo ao Hub IoT usando o comando az iothub device-identity create. Este exemplo cria um dispositivo chamado MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
Obtenha a cadeia de conexão do dispositivo usando o comando az iot hub device-identity connection-string show. Copie a cadeia de conexão inteira e salve-a para quando você criar o simulador do Raspberry Pi.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
Exemplo de saída:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Criar uma conta de armazenamento de blobs
Os seguintes comandos da CLI do Azure criam umaconta de armazenamentodo BLOB usada para a saída do trabalho.
Crie uma conta de armazenamento de uso geral com o comando az storage account create. A conta de armazenamento de uso geral pode ser usada para todos os quatro serviços: blobs, arquivos, tabelas e filas.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
Obtenha a chave para sua conta de armazenamento executando o comando az storage account keys list.
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $key
Importante
Anote a chave de acesso da conta de armazenamento do Azure. Você usará essa chave mais tarde neste início rápido.
Crie um contêiner chamado
state
para armazenar os blobs com o comando az storage container create. Você usa a chave de conta de armazenamento para autorizar a operação para criar o contêiner. Para obter mais informações sobre como autorizar operações de dados com a CLI do Azure, confira Autorizar o acesso a dados de blob ou de fila com a CLI do Azure.az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Criar um trabalho de Stream Analytics
Crie um trabalho do Stream Analytics com o comando az stream-analytics job create.
az stream-analytics job create \
--job-name "streamanalyticsjob" \
--resource-group "streamanalyticsrg" \
--location "eastus" \
--output-error-policy "Drop" \
--out-of-order-policy "Drop" \
--order-max-delay 5 \
--arrival-max-delay 16 \
--data-locale "en-US"
Configurar a entrada para o trabalho
Adicione uma entrada ao seu trabalho usando o cmdlet az stream-analytics input. Esse cmdlet toma como parâmetros o nome do trabalho, o nome do trabalho de entrada, o nome do grupo de recursos e as propriedades de entrada no formato JSON. Neste exemplo, você criará um Hub IoT como uma entrada.
Importante
- Substitua
IOT HUB ACCESS KEY
pelo valor da Chave de Acesso Compartilhado na cadeia de conexão do Hub IOT que você salvou. Por exemplo, se a cadeia de conexão do Hub IOT for:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=
, o valor da Chave de Acesso Compartilhado seráxxxxxxxxxxxxxx=
. Ao substituir o valor, certifique-se de não excluir o caractere\
(escape) de"
(aspas duplas). - Atualize o valor de
iotHubNamespace
no comando a seguir se você tiver usado um nome diferente deMyASAIoTHub
. Executeecho $iotHubName
para ver o nome do seu Hub IoT.
az stream-analytics input create \
--properties "{\"type\":\"Stream\",\"datasource\":{\"type\":\"Microsoft.Devices/IotHubs\",\"properties\":{\"consumerGroupName\":\"\$Default\",\"endpoint\":\"messages/events\",\"iotHubNamespace\":\"MyASAIoTHub\",\"sharedAccessPolicyKey\":\"IOT HUB ACCESS KEY\",\"sharedAccessPolicyName\":\"iothubowner\"}},\"serialization\":{\"type\":\"Json\",\"encoding\":\"UTF8\"}}" \
--input-name "asaiotinput" \
--job-name "streamanalyticsjob" \
--resource-group "streamanalyticsrg"
Configurar a saída para o trabalho
Adicione uma saída ao seu trabalho usando o cmdlet az stream-analytics output create. Esse cmdlet toma como parâmetros o nome do trabalho, nome do trabalho de saída, nome do grupo de recursos, a fonte de dados no formato JSON e o tipo de serialização.
Importante
Substitua STORAGEACCOUNTNAME>
pelo nome da sua conta de Armazenamento do Microsoft Azure e STORAGEACCESSKEY>
pela chave de acesso da sua conta de armazenamento. Se você não anotou esses valores, execute os comandos a seguir para obtê-los: echo $storageAccountName
e echo $key
. Ao substituir os valores, certifique-se de não excluir o caractere \
(escape) de "
(aspas duplas).
az stream-analytics output create \
--job-name streamanalyticsjob \
--datasource "{\"type\":\"Microsoft.Storage/Blob\",\"properties\":{\"container\":\"state\",\"dateFormat\":\"yyyy/MM/dd\",\"pathPattern\":\"{date}/{time}\",\"storageAccounts\":[{\"accountKey\":\"STORAGEACCESSKEY\",\"accountName\":\"STORAGEACCOUNTNAME\"}],\"timeFormat\":\"HH\"}}" \
--serialization "{\"type\":\"Json\",\"properties\":{\"format\":\"Array\",\"encoding\":\"UTF8\"}}" \
--output-name asabloboutput \
--resource-group streamanalyticsrg
Definir a consulta de transformação
Adicione uma transformação ao seu trabalho usando o cmdlet az stream-analytics transformation create.
az stream-analytics transformation create \
--resource-group streamanalyticsrg \
--job-name streamanalyticsjob \
--name Transformation \
--streaming-units "6" \
--saql "SELECT * INTO asabloboutput FROM asaiotinput WHERE Temperature > 27"
Executar o simulador de IoT
Substitua o espaço reservado na linha 15 por toda a cadeia de conexão do Dispositivo do Hub IoT do Azure (não a cadeia de conexão do Hub IoT) que você salvou no começo do início rápido.
Selecione Executar. A saída deve exibir os dados de sensor e as mensagens que estão sendo enviadas ao Hub IoT.
Iniciar o trabalho do Stream Analytics e verificar a saída
Inicie o trabalho usando o cmdlet az stream-analytics job start. Esse cmdlet usa o nome do trabalho, o nome do grupo de recursos, o modo inicial de saída e a hora de início como parâmetros. OutputStartMode
aceita valores de JobStartTime
, CustomTime
ou LastOutputEventTime
.
Depois de executar o cmdlet a seguir, ele retornará True
como saída se o trabalho for iniciado.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Aguarde alguns minutos e verifique se um arquivo de saída foi criado no contêiner de blob state
.
Baixe e abra o arquivo para ver várias entradas semelhantes às seguintes:
{
"messageId": 229,
"deviceId": "Raspberry Pi Web Client",
"temperature": 31.85214010589595,
"humidity": 60.278830289656284,
"EventProcessedUtcTime": "2023-02-28T22:06:33.5567789Z",
"PartitionId": 3,
"EventEnqueuedUtcTime": "2023-02-28T22:05:49.6520000Z",
"IoTHub": {
"MessageId": null,
"CorrelationId": null,
"ConnectionDeviceId": "MyASAIoTDevice",
"ConnectionDeviceGenerationId": "638132150746523845",
"EnqueuedTime": "2023-02-28T22:05:49.6520000Z",
"StreamId": null
}
}
Limpar os recursos
Exclua o grupo de recursos, que excluirá todos os recursos no grupo de recursos, incluindo o trabalho do Stream Analytics, o Hub IoT e a conta de Armazenamento do Microsoft Azure.
az group delete \
--name streamanalyticsrg \
--no-wait
Próximas etapas
Neste guia de início rápido, você implantou um trabalho simples do Stream Analytics usando a CLI do Azure. Você também pode implantar trabalhos do Stream Analytics usando o portal do Azure e o Visual Studio.
Para saber mais sobre como configurar outras fontes de entrada e executar detecção em tempo real, avance para o artigo a seguir: