Démarrage rapide : Créer un travail Stream Analytics à l’aide d’Azure PowerShellQuickstart: Create a Stream Analytics job using Azure PowerShell

Le module Azure PowerShell est utilisé pour créer et gérer des ressources Azure à l’aide des applets de commande ou des scripts PowerShell.The Azure PowerShell module is used to create and manage Azure resources using PowerShell cmdlets or scripts. Ce démarrage rapide décrit en détail comment utiliser le module Azure PowerShell pour déployer et exécuter un travail Azure Stream Analytics.This quickstart details using the Azure PowerShell module to deploy and run an Azure Stream Analytics job.

Cet exemple de travail lit les données de streaming à partir d’un appareil IoT Hub.The example job reads streaming data from an IoT Hub device. Les données d’entrée sont générées par un simulateur en ligne Raspberry Pi.The input data is generated by a Raspberry Pi online simulator. Ensuite, le travail Stream Analytics transforme les données en utilisant le langage de requête Stream Analytics pour filtrer les messages indiquant une température supérieure à 27 degrés.Next, the Stream Analytics job transforms the data using the Stream Analytics query language to filter messages with a temperature greater than 27°. Enfin, ce travail écrit les événements de sortie résultants dans un fichier du stockage d’objets blob.Finally, it writes the resulting output events into a file in blob storage.

Avant de commencerBefore you begin

Notes

Cet article a été mis à jour pour pouvoir utiliser le module Azure Az PowerShell.This article has been updated to use the Azure Az PowerShell module. Le module Az PowerShell est le module PowerShell qui est recommandé pour interagir avec Azure.The Az PowerShell module is the recommended PowerShell module for interacting with Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell.To get started with the Az PowerShell module, see Install Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.If you don't have an Azure subscription, create a free account.

  • Ce démarrage rapide nécessite le module Azure PowerShell.This quickstart requires the Azure PowerShell module. Exécutez Get-Module -ListAvailable Az pour rechercher la version installée sur votre ordinateur local.Run Get-Module -ListAvailable Az to find the version that is installed on your local machine. Si vous devez installer ou mettre à niveau, consultez Installer le module Azure PowerShell.If you need to install or upgrade, see Install Azure PowerShell module.

  • Certaines actions IoT Hub ne sont pas prises en charge par Azure PowerShell et doivent être effectuées à l’aide d’Azure CLI version 2.0.70 ou ultérieure, ainsi que l’extension IoT pour Azure CLI.Some IoT Hub actions are not supported by Azure PowerShell and must be completed using Azure CLI version 2.0.70 or later and the IoT extension for Azure CLI. Installez Azure CLI et utilisez az extension add --name azure-iot pour installer l’extension IoT.Install the Azure CLI and use az extension add --name azure-iot to install the IoT extension.

Connexion à AzureSign in to Azure

Connectez-vous à votre abonnement Azure avec la commande Connect-AzAccount, puis entrez vos informations d’identification Azure dans le navigateur contextuel :Sign in to your Azure subscription with the Connect-AzAccount command, and enter your Azure credentials in the pop-up browser:

# Connect to your Azure account
Connect-AzAccount

Si vous avez plusieurs abonnements, sélectionnez l’abonnement que vous souhaitez utiliser dans ce guide de démarrage rapide en exécutant les applets de commande suivantes.If you have more than one subscription, select the subscription you would like to use for this quickstart by running the following cmdlets. Assurez-vous de remplacer <your subscription name> par le nom de votre abonnement :Make sure to replace <your subscription name> with the name of your subscription:

# List all available subscriptions.
Get-AzSubscription

# Select the Azure subscription you want to use to create the resource group and resources.
Get-AzSubscription -SubscriptionName "<your subscription name>" | Select-AzSubscription

Créer un groupe de ressourcesCreate a resource group

Créez un groupe de ressources Azure avec New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.A resource group is a logical container into which Azure resources are deployed and managed.

$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
    -Name $resourceGroup `
    -Location $location

Préparer les données d’entréePrepare the input data

Avant de définir le travail Stream Analytics, préparez les données qui seront configurées en tant qu’entrée pour le travail.Before defining the Stream Analytics job, prepare the data that is configured as input to the job.

Le bloc de code Azure CLI ci-après exécute de nombreuses commandes pour préparer les données d’entrée requises par le travail.The following Azure CLI code block does many commands to prepare the input data required by the job. Passez en revue les différentes sections pour comprendre le code.Review the sections to understand the code.

  1. Dans la fenêtre PowerShell, exécutez la commande az login pour vous connecter à votre compte Azure.In your PowerShell window, run the az login command to sign in to your Azure account.

    Une fois que vous êtes connecté, Azure CLI retourne une liste de vos abonnements.When you successfully sign in, Azure CLI returns a list of your subscriptions. Copiez l’abonnement que vous utilisez dans ce guide de démarrage rapide et exécutez la commande az account set pour sélectionner cet abonnement.Copy the subscription you're using for this quickstart and run the az account set command to select that subscription. Choisissez le même abonnement que vous avez sélectionné dans la section précédente avec PowerShell.Choose the same subscription you selected in the previous section with PowerShell. Veillez à remplacer <your subscription name> par le nom de votre abonnement.Make sure to replace <your subscription name> with the name of your subscription.

    az login
    
    az account set --subscription "<your subscription>"
    
  2. Créez un hub IoT à l’aide de la commande az iot hub create.Create an IoT Hub using the az iot hub create command. Cet exemple crée un hub IoT appelé MyASAIoTHub.This example creates an IoT Hub called MyASAIoTHub. Comme les noms de hub IoT sont uniques, vous devez spécifier votre propre nom de hub IoT.Because IoT Hub names are unique, you need to come up with your own IoT Hub name. Définissez la référence SKU sur F1 pour utiliser le niveau Gratuit s’il est disponible avec votre abonnement.Set the SKU to F1 to use the free tier if it is available with your subscription. Si ce n’est pas le cas, choisissez le niveau le plus bas suivant.If not, choose the next lowest tier.

    az iot hub create --name "<your IoT Hub name>" --resource-group $resourceGroup --sku S1
    

    Après avoir créé le hub IoT, obtenez la chaîne de connexion du hub IoT à l’aide de la commande az iot hub show-connection-string.Once the IoT hub has been created, get the IoT Hub connection string using the az iot hub show-connection-string command. Copiez la chaîne de connexion complète et enregistrez-la, car vous en aurez besoin quand vous ajouterez le hub IoT comme entrée dans votre travail Stream Analytics.Copy the entire connection string and save it for when you add the IoT Hub as input to your Stream Analytics job.

    az iot hub show-connection-string --hub-name "MyASAIoTHub"
    
  3. Ajoutez un appareil au hub IoT à l’aide de la commande az iothub device-identity create.Add a device to IoT Hub using the az iothub device-identity create command. Cet exemple crée un appareil appelé MyASAIoTDevice.This example creates a device called MyASAIoTDevice.

    az iot hub device-identity create --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
    
  4. Obtenez la chaîne de connexion de l’appareil à l’aide de la commande az iot hub device-identity show-connection-string.Get the device connection string using the az iot hub device-identity show-connection-string command. Copiez la chaîne de connexion complète et enregistrez-la, car vous en aurez besoin quand vous créerez le simulateur Raspberry Pi.Copy the entire connection string and save it for when you create the Raspberry Pi simulator.

    az iot hub device-identity show-connection-string --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
    

    Exemple de sortie :Output example:

    HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
    

Créer un stockage d’objets blobCreate blob storage

Le bloc de code Azure PowerShell suivant utilise des commandes afin de créer le stockage d’objets blob utilisé pour la sortie du travail.The following Azure PowerShell code block uses commands to create blob storage that is used for job output. Passez en revue les différentes sections pour comprendre le code.Review the sections to understand the code.

  1. Créez un compte de stockage standard à usage général avec l’applet de commande New-AzStorageAccount.Create a standard general-purpose storage account using New-AzStorageAccount cmdlet. Cet exemple crée un compte de stockage nommé myasaquickstartstorage avec les options de stockage localement redondant (LRS) et de chiffrement des objets blob (options activées par défaut).This example creates a storage account called myasaquickstartstorage with locally redundant storage(LRS) and blob encryption (enabled by default).

  2. Récupérez le contexte de compte de stockage $storageAccount.Context qui définit le compte de stockage à utiliser.Retrieve the storage account context $storageAccount.Context that defines the storage account to be used. Lorsque vous utilisez des comptes de stockage, référencez le contexte au lieu d’entrer les informations d’identification à plusieurs reprises.When working with storage accounts, you reference the context instead of repeatedly providing the credentials.

  3. Créez un conteneur de stockage avec la commande New-AzStorageContainer.Create a storage container using New-AzStorageContainer.

  4. Copiez la clé de stockage générée par le code et enregistrez-la, car vous en aurez besoin plus tard pour créer la sortie du travail de streaming.Copy the storage key that is outputted by the code, and save that key to create the streaming job's output later on.

    $storageAccountName = "myasaquickstartstorage"
    $storageAccount = New-AzStorageAccount `
      -ResourceGroupName $resourceGroup `
      -Name $storageAccountName `
      -Location $location `
      -SkuName Standard_LRS `
      -Kind Storage
    
    $ctx = $storageAccount.Context
    $containerName = "container1"
    
    New-AzStorageContainer `
      -Name $containerName `
      -Context $ctx
    
    $storageAccountKey = (Get-AzStorageAccountKey `
      -ResourceGroupName $resourceGroup `
      -Name $storageAccountName).Value[0]
    
    Write-Host "The <storage account key> placeholder needs to be replaced in your output json files with this key value:"
    Write-Host $storageAccountKey -ForegroundColor Cyan
    

Création d’un travail Stream AnalyticsCreate a Stream Analytics job

Créez un travail Stream Analytics avec l’applet de commande New-AzStreamAnalyticsJob.Create a Stream Analytics job with New-AzStreamAnalyticsJob cmdlet. Cette applet de commande prend le nom du travail, le nom du groupe de ressources et la définition du travail comme paramètres.This cmdlet takes the job name, resource group name, and job definition as parameters. Le nom du travail peut correspondre à n’importe quel nom convivial identifiant votre travail.The job name can be any friendly name that identifies your job. Ce nom peut contenir uniquement des caractères alphanumériques, des traits d’union et des traits de soulignement, et doit comporter entre 3 et 63 caractères.It can have alphanumeric characters, hyphens, and underscores only and it must be between 3 and 63 characters long. La définition du travail est un fichier JSON qui contient les propriétés nécessaires à la création d’un travail.The job definition is a JSON file that contains the properties required to create a job. Sur votre ordinateur local, créez un fichier nommé JobDefinition.json et ajoutez-y les données JSON suivantes :On your local machine, create a file named JobDefinition.json and add the following JSON data to it:

{
  "location":"WestUS2",
  "properties":{
    "sku":{
      "name":"standard"
    },
    "eventsOutOfOrderPolicy":"adjust",
    "eventsOutOfOrderMaxDelayInSeconds":10,
    "compatibilityLevel": 1.1
  }
}

Ensuite, exécutez l’applet de commande New-AzStreamAnalyticsJob.Next, run the New-AzStreamAnalyticsJob cmdlet. Remplacez la valeur de la variable jobDefinitionFile par le chemin où vous avez enregistré le fichier JSON de définition du travail.Replace the value of jobDefinitionFile variable with the path where you've stored the job definition JSON file.

$jobName = "MyStreamingJob"
$jobDefinitionFile = "C:\JobDefinition.json"
New-AzStreamAnalyticsJob `
  -ResourceGroupName $resourceGroup `
  -File $jobDefinitionFile `
  -Name $jobName `
  -Force

Configurer l’entrée du travailConfigure input to the job

Ajoutez une entrée à votre travail avec l’applet de commande New-AzStreamAnalyticsInput.Add an input to your job by using the New-AzStreamAnalyticsInput cmdlet. Cette applet de commande prend le nom du travail, le nom de l’entrée du travail, le nom du groupe de ressources et la définition de l’entrée du travail comme paramètres.This cmdlet takes the job name, job input name, resource group name, and the job input definition as parameters. La définition de l’entrée du travail est un fichier JSON qui contient les propriétés nécessaires à la configuration de l’entrée du travail.The job input definition is a JSON file that contains the properties required to configure the job’s input. Dans cet exemple, vous allez créer un stockage d’objets blob comme entrée.In this example, you'll create a blob storage as an input.

Sur votre ordinateur local, créez un fichier nommé JobInputDefinition.json et ajoutez-y les données JSON ci-après.On your local machine, create a file named JobInputDefinition.json and add the following JSON data to it. Remplacez la valeur de accesspolicykey par la partie SharedAccessKey de la chaîne de connexion du hub IoT que vous avez enregistrée dans une section précédente.Make sure to replace the value for accesspolicykey with the SharedAccessKey portion of the IoT Hub connection string you saved in a previous section.

{
    "properties": {
        "type": "Stream",
        "datasource": {
            "type": "Microsoft.Devices/IotHubs",
            "properties": {
                "iotHubNamespace": "MyASAIoTHub",
                "sharedAccessPolicyName": "iothubowner",
                "sharedAccessPolicyKey": "accesspolicykey",
                "endpoint": "messages/events",
                "consumerGroupName": "$Default"
                }
        },
        "compression": {
            "type": "None"
        },
        "serialization": {
            "type": "Json",
            "properties": {
                "encoding": "UTF8"
            }
        }
    },
    "name": "IoTHubInput",
    "type": "Microsoft.StreamAnalytics/streamingjobs/inputs"
}

Ensuite, exécutez l’applet de commande New-AzStreamAnalyticsInput et remplacez la valeur de la variable jobDefinitionFile par le chemin où vous avez enregistré le fichier JSON de définition de l’entrée du travail.Next, run the New-AzStreamAnalyticsInput cmdlet, make sure to replace the value of jobDefinitionFile variable with the path where you've stored the job input definition JSON file.

$jobInputName = "IoTHubInput"
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
New-AzStreamAnalyticsInput `
  -ResourceGroupName $resourceGroup `
  -JobName $jobName `
  -File $jobInputDefinitionFile `
  -Name $jobInputName

Configurer la sortie du travailConfigure output to the job

Ajoutez une sortie à votre travail avec l’applet de commande New-AzStreamAnalyticsOutput.Add an output to your job by using the New-AzStreamAnalyticsOutput cmdlet. Cette applet de commande prend le nom du travail, le nom de la sortie du travail, le nom du groupe de ressources et la définition de la sortie du travail comme paramètres.This cmdlet takes the job name, job output name, resource group name, and the job output definition as parameters. La définition de la sortie du travail est un fichier JSON qui contient les propriétés nécessaires à la configuration de la sortie du travail.The job output definition is a JSON file that contains the properties required to configure job’s output. Cet exemple utilise le stockage blob en guise de sortie.This example uses blob storage as output.

Sur votre ordinateur local, créez un fichier nommé JobOutputDefinition.json et ajoutez-y les données JSON ci-après.On your local machine, create a file named JobOutputDefinition.json, and add the following JSON data to it. Veillez à remplacer la valeur de accountKey par la clé d’accès de votre compte de stockage qui correspond à la valeur stockée dans $storageAccountKey.Make sure to replace the value for accountKey with your storage account’s access key that is the value stored in $storageAccountKey value.

{
    "properties": {
        "datasource": {
            "type": "Microsoft.Storage/Blob",
            "properties": {
                "storageAccounts": [
                    {
                      "accountName": "asaquickstartstorage",
                      "accountKey": "<storage account key>"
                    }
                ],
                "container": "container1",
                "pathPattern": "output/",
                "dateFormat": "yyyy/MM/dd",
                "timeFormat": "HH"
            }
        },
        "serialization": {
            "type": "Json",
            "properties": {
                "encoding": "UTF8",
                "format": "LineSeparated"
            }
        }
    },
    "name": "BlobOutput",
    "type": "Microsoft.StreamAnalytics/streamingjobs/outputs"
}

Ensuite, exécutez l’applet de commande New-AzStreamAnalyticsOutput.Next, run the New-AzStreamAnalyticsOutput cmdlet. Veillez à remplacer la valeur de la variable jobOutputDefinitionFile par le chemin dans lequel vous avez stocké le fichier JSON de définition de la sortie du travail.Make sure to replace the value of jobOutputDefinitionFile variable with the path where you have stored the job output definition JSON file.

$jobOutputName = "BlobOutput"
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
New-AzStreamAnalyticsOutput `
  -ResourceGroupName $resourceGroup `
  -JobName $jobName `
  -File $jobOutputDefinitionFile `
  -Name $jobOutputName -Force

Définir la requête de transformationDefine the transformation query

Ajoutez une transformation à votre travail avec l’applet de commande New-AzStreamAnalyticsTransformation.Add a transformation your job by using the New-AzStreamAnalyticsTransformation cmdlet. Cette applet de commande prend le nom du travail, le nom de la transformation du travail, le nom du groupe de ressources et la définition de la transformation du travail comme paramètres.This cmdlet takes the job name, job transformation name, resource group name, and the job transformation definition as parameters. Sur votre ordinateur local, créez un fichier nommé JobTransformationDefinition.json et ajoutez-y les données JSON ci-après.On your local machine, create a file named JobTransformationDefinition.json and add the following JSON data to it. Le fichier JSON contient un paramètre de requête qui définit la requête de transformation :The JSON file contains a query parameter that defines the transformation query:

{
    "name":"MyTransformation",
    "type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
    "properties":{
        "streamingUnits":1,
        "script":null,
        "query":" SELECT * INTO BlobOutput FROM IoTHubInput HAVING Temperature > 27"
    }
}

Ensuite, exécutez l’applet de commande New-AzStreamAnalyticsTransformation.Next run the New-AzStreamAnalyticsTransformation cmdlet. Remplacez la valeur de la variable jobTransformationDefinitionFile par le chemin où vous avez enregistré le fichier JSON de définition de la transformation du travail.Make sure to replace the value of jobTransformationDefinitionFile variable with the path where you've stored the job transformation definition JSON file.

$jobTransformationName = "MyJobTransformation"
$jobTransformationDefinitionFile = "C:\JobTransformationDefinition.json"
New-AzStreamAnalyticsTransformation `
  -ResourceGroupName $resourceGroup `
  -JobName $jobName `
  -File $jobTransformationDefinitionFile `
  -Name $jobTransformationName -Force

Exécuter le simulateur IoTRun the IoT simulator

  1. Ouvrez le simulateur en ligne Azure IoT Raspberry Pi.Open the Raspberry Pi Azure IoT Online Simulator.

  2. Remplacez l’espace réservé à la ligne 15 par la chaîne de connexion entière de l’appareil Azure IoT Hub que vous avez enregistrée dans une section précédente.Replace the placeholder in Line 15 with the entire Azure IoT Hub Device connection string you saved in a previous section.

  3. Cliquez sur Exécuter.Click Run. La sortie doit indiquer les données de capteur et les messages qui sont envoyés à votre hub IoT.The output should show the sensor data and messages that are being sent to your IoT Hub.

    Simulateur en ligne Azure IoT Raspberry Pi

Démarrer le travail Stream Analytics et observer le résultatStart the Stream Analytics job and check the output

Démarrez le travail avec l’applet de commande Start-AzStreamAnalyticsJob.Start the job by using the Start-AzStreamAnalyticsJob cmdlet. 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.This cmdlet takes the job name, resource group name, output start mode, and start time as parameters. OutputStartMode accepte les valeurs de JobStartTime, CustomTime ou LastOutputEventTime.OutputStartMode accepts values of JobStartTime, CustomTime, or LastOutputEventTime. Pour plus d’informations sur les éléments auxquels ces valeurs font référence, consultez la section Paramètres de la documentation PowerShell.To learn more about what each of these values are referring to, see the parameters section in PowerShell documentation.

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.After you run the following cmdlet, it returns True as output if the job starts. Dans le conteneur de stockage, un dossier de sortie est créé avec les données transformées.In the storage container, an output folder is created with the transformed data.

Start-AzStreamAnalyticsJob `
  -ResourceGroupName $resourceGroup `
  -Name $jobName `
  -OutputStartMode 'JobStartTime'

Nettoyer les ressourcesClean up resources

Lorsque vous n’en avez plus besoin, supprimez le groupe de ressources, le travail de streaming et toutes les ressources associées.When no longer needed, delete the resource group, the streaming job, and all related resources. La suppression du travail évite la facturation des unités de streaming consommées par le travail.Deleting the job avoids billing the streaming units consumed by the job. Si vous envisagez d’utiliser le travail à l’avenir, vous pouvez vous abstenir de le supprimer et vous contenter de l’arrêter à ce stade.If you're planning to use the job in future, you can skip deleting it, and stop the job for now. Si vous n’avez plus besoin de ce travail, supprimez toutes les ressources créées dans le cadre de ce guide de démarrage rapide en exécutant l’applet de commande suivante :If you aren't going to continue to use this job, delete all resources created by this quickstart by running the following cmdlet:

Remove-AzResourceGroup `
  -Name $resourceGroup

Étapes suivantesNext steps

Dans ce guide de démarrage rapide, vous avez déployé un travail Stream Analytics simple à l’aide de PowerShell.In this quickstart, you deployed a simple Stream Analytics job using PowerShell. Vous pouvez également déployer des travaux Stream Analytics à l’aide du Portail Azure et de Visual Studio.You can also deploy Stream Analytics jobs using the Azure portal and 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 :To learn about configuring other input sources and performing real-time detection, continue to the following article: