Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous allez utiliser Azure CLI pour définir un travail Stream Analytics qui filtre les messages de capteur en temps réel avec une lecture de température supérieure à 27. Votre tâche Stream Analytics lit les données à partir d’un IoT Hub, les transforme et écrit les données de sortie dans un conteneur de stockage d’objets blob. Les données d’entrée utilisées dans ce guide de démarrage rapide sont générées par un simulateur en ligne Raspberry Pi.
Avant de commencer
Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Conditions préalables
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter des commandes de référence CLI localement, installez Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Créez un groupe de ressources. Toutes les ressources Azure doivent être déployées dans un groupe de ressources. Les groupes de ressources vous permettent d’organiser et de gérer les ressources Azure connexes.
Pour ce guide de démarrage rapide, créez un groupe de ressources nommé streamanalyticsrg à l’emplacement eastus avec la commande az group create suivante :
az group create --name streamanalyticsrg --location eastus
Préparer les données d’entrée
Avant de définir le travail Stream Analytics, préparez les données utilisées pour l’entrée du travail. Les commandes Azure CLI suivantes préparent les données d’entrée requises par le travail.
Créez un hub IoT à l’aide de la commande az iot hub create . Cet exemple crée un hub IoT appelé MyASAIoTHub. Étant donné que les noms IoT Hub doivent être globalement uniques, vous devrez peut-être modifier le nom s’il est déjà pris. Définissez la référence SKU sur F1 pour utiliser le niveau gratuit s’il est disponible avec votre abonnement. Si ce n’est pas le cas, choisissez le niveau le plus bas suivant.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1Après avoir créé le IoT Hub, obtenez sa chaîne de connexion à l’aide de la commande az iot hub connection-string show. Copiez la chaîne de connexion complète et enregistrez-la. Vous l’utilisez lors de l’ajout du hub IoT en tant qu’entrée pour votre tâche Stream Analytics.
az iot hub connection-string show --hub-name $iotHubNameAjoutez un appareil à IoT Hub à l’aide de la commande az iothub device-identity create . Cet exemple crée un appareil appelé MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"Utilisez la commande az iot hub device-identity connection-string show pour obtenir la chaîne de connexion de l'appareil. Copiez la chaîne de connexion complète et enregistrez-la, car vous en aurez besoin quand vous créerez le simulateur Raspberry Pi.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output tableExemple de sortie :
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Création d’un compte de stockage d’objets blob
Les commandes Azure CLI suivantes créent un compte de stockage d’objets blob utilisé pour la sortie de la tâche.
Créez un compte de stockage à usage général avec la commande az storage account create . Le compte de stockage à usage général peut être utilisé pour les quatre services : objets blob, fichiers, tables et files d’attente.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blobObtenez la clé de votre compte de stockage en exécutant la commande az storage account keys list .
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $keyImportant
Notez la clé d’accès pour le compte de stockage Azure. Vous utiliserez cette clé plus loin dans ce guide de démarrage rapide.
Créez un conteneur nommé
statepour stocker des objets blob avec la commande az storage container create . Vous utilisez la clé de compte de stockage pour autoriser l’opération de création du conteneur. Pour plus d’informations sur l’autorisation des opérations de données avec Azure CLI, consultez Autoriser l’accès aux données d’objet blob ou de file d’attente avec Azure CLI.az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Création d’un travail Stream Analytics
Créez un travail Stream Analytics avec la commande 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"
Configurer l’entrée du travail
Ajoutez une entrée à votre tâche à l'aide de la cmdlet az stream-analytics input. Cette applet de commande prend le nom du travail, le nom d’entrée du travail, le nom du groupe de ressources et les propriétés d’entrée au format JSON en tant que paramètres. Dans cet exemple, vous allez créer un hub IoT en tant qu’entrée.
Important
- Remplacez
IOT HUB ACCESS KEYpar la valeur de la clé d’accès partagé dans la chaîne de connexion iOT Hub que vous avez enregistrée. Par exemple, si la chaîne de connexion IOT Hub est la suivante :HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, la valeur de la clé d’accès partagé estxxxxxxxxxxxxxx=. Lorsque vous remplacez la valeur, assurez-vous de ne pas supprimer le\caractère (échappement) des"(guillemets doubles). - Mettez à jour la valeur de
iotHubNamespacela commande suivante si vous avez utilisé un nom autre queMyASAIoTHub. Exécutezecho $iotHubNamepour afficher le nom de votre IoT Hub.
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"
Configurer la sortie du travail
Ajoutez une sortie à votre travail à l’aide de l’applet de commande az stream-analytics output create . Cette applet de commande prend le nom du travail, le nom de sortie du travail, le nom du groupe de ressources, la source de données au format JSON et le type de sérialisation en tant que paramètres.
Important
Remplacez STORAGEACCOUNTNAME> par le nom de votre compte de stockage Azure et STORAGEACCESSKEY> par la clé d’accès de votre compte de stockage. Si vous n’avez pas noté ces valeurs, exécutez les commandes suivantes pour les obtenir : echo $storageAccountName et echo $key. Lors du remplacement des valeurs, assurez-vous de ne pas supprimer le caractère \ (échappement) pour " (guillemets doubles).
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
Définir la requête de transformation
Ajoutez une transformation à votre tâche en utilisant le 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"
Exécuter le simulateur IoT
Ouvrez le simulateur en ligne Azure IoT Raspberry Pi.
Remplacez l’espace réservé à la ligne 15 par la chaîne de connexion d’appareil Azure IoT Hub complète (et non par la chaîne de connexion IoT Hub) que vous avez enregistrée au début du démarrage rapide.
Sélectionnez Exécuter. La sortie doit indiquer les données de capteur et les messages qui sont envoyés à votre hub IoT.
Démarrer le travail Stream Analytics et observer le résultat
Démarrez le travail à l’aide de l’applet de commande az stream-analytics job start . Cette applet de commande prend le nom du travail, le nom du groupe de ressources, le mode de démarrage de la sortie et l’heure de démarrage comme paramètres.
OutputStartMode accepte les valeurs de JobStartTime, CustomTime ou LastOutputEventTime.
Après son exécution, l’applet de commande ci-après renvoie la valeur True en guise de sortie si le travail démarre.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Donnez-lui quelques minutes, puis vérifiez qu’un fichier de sortie est créé dans le conteneur d'objets blob state.
Téléchargez et ouvrez le fichier pour afficher plusieurs entrées similaires à celles suivantes :
{
"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
}
}
Nettoyer les ressources
Supprimez le groupe de ressources, qui supprimera toutes les ressources du groupe de ressources, notamment le travail Stream Analytics, IoT Hub et le compte de stockage Azure.
az group delete \
--name streamanalyticsrg \
--no-wait
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez déployé un travail Stream Analytics simple à l’aide d’Azure CLI. Vous pouvez également déployer des travaux Stream Analytics à l’aide du Portail Azure et de Visual Studio.
Pour savoir comment configurer d’autres sources d’entrée et effectuer une détection en temps réel, passez à l’article suivant :