Rychlý start: Vytvoření úlohy Stream Analytics pomocí Azure PowerShellu
Modul Azure PowerShell slouží k vytváření a správě prostředků Azure pomocí rutin nebo skriptů PowerShellu. V tomto rychlém startu se dozvíte, jak pomocí modulu Azure PowerShell nasadit a spustit úlohu Azure Stream Analytics.
Ukázková úloha čte streamovaná data ze zařízení IoT Hubu. Vstupní data se generují online simulátorem Raspberry Pi. Úloha Stream Analytics transformuje data pomocí dotazovacího jazyka Stream Analytics k filtrování zpráv s teplotou větší než 27°. Potom zapíše výsledné výstupní události do souboru v úložišti objektů blob.
Než začnete
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
- Tento rychlý start vyžaduje modul Azure PowerShellu. Pomocí příkazu
Get-Module -ListAvailable Az
vyhledejte verzi, která je nainstalovaná na místním počítači. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace modulu Azure PowerShell. - Azure PowerShell nepodporuje některé akce IoT Hubu a musí se dokončit pomocí Azure CLI verze 2.0.70 nebo novější a rozšíření IoT pro Azure CLI. Nainstalujte Azure CLI a použijte
az extension add --name azure-iot
k instalaci rozšíření IoT.
Přihlášení k Azure
Přihlaste se ke svému předplatnému Azure pomocí Connect-AzAccount
příkazu a do automaticky otevíraných prohlížečů zadejte přihlašovací údaje Azure:
# Connect to your Azure account
Connect-AzAccount
Pokud máte více než jedno předplatné, vyberte předplatné, které chcete pro účely tohoto rychlého startu použít, spuštěním následujících rutin. Ujistěte se, že jste <your subscription name>
nahradili názvem vašeho předplatného:
# 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
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků Azure pomocí rutiny New-AzResourceGroup. Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
Příprava vstupních dat
Než začnete definovat úlohu Stream Analytics, připravte si data nakonfigurovaná jako vstup pro tuto úlohu.
Následující blok kódu Azure CLI obsahuje mnoho příkazů k přípravě vstupních dat požadovaných úlohou. Projděte si následující části a seznamte se s kódem.
V okně PowerShellu
az login
spusťte příkaz pro přihlášení k účtu Azure.Po úspěšném přihlášení vrátí Azure CLI seznam vašich předplatných. Zkopírujte předplatné, které používáte pro účely tohoto rychlého startu, a spuštěním
az account set
příkazu vyberte toto předplatné. Zvolte stejné předplatné, které jste vybrali v předchozí části pomocí PowerShellu. Nezapomeňte nahradit<your subscription name>
názvem vašeho předplatného.az login az account set --subscription "<your subscription>"
Pomocí příkazu vytvořte IoT Hub
az iot hub create
. Tento příklad vytvoří IoT Hub s názvem MyASAIoTHub. Vzhledem k tomu, že názvy ioT Hubu jsou jedinečné, musíte přijít s vlastním názvem IoT Hubu. Nastavte skladovou položku na F1, aby používala úroveň Free, pokud je dostupná pro vaše předplatné. Pokud ne, zvolte další nejnižší úroveň.az iot hub create --name "MyASAIoTHub" --resource-group $resourceGroup --sku S1
Po vytvoření centra IoT získejte připojovací řetězec IoT Hub pomocí příkazu az iot hub connection-string show. Zkopírujte celý připojovací řetězec a uložte ho. Potřebujete ho, když ioT Hub přidáte jako vstup do úlohy Stream Analytics.
az iot hub connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub"
Přidejte zařízení do IoT Hubu
az iot hub device-identity create
pomocí příkazu. Tento příklad vytvoří zařízení s názvem MyASAIoTDevice.az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
Pomocí příkazu získejte připojovací řetězec
az iot hub device-identity connection-string show
zařízení. Zkopírujte celý připojovací řetězec a uložte ho při vytváření simulátoru Raspberry Pi.az iot hub device-identity connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
Příklad výstupu:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Vytvoření úložiště objektů blob
Následující blok kódu Azure PowerShellu používá příkazy k vytvoření úložiště objektů blob, které se používá pro výstup úlohy. Prohlédněte si jednotlivé části a seznamte se s kódem.
Vytvořte standardní účet úložiště pro obecné účely pomocí rutiny New-AzStorageAccount . Tento příklad vytvoří účet úložiště s názvem myasaquickstartstorage s místně redundantním úložištěm (LRS) a šifrováním objektů blob (ve výchozím nastavení povoleno).
Načtěte kontext účtu úložiště
$storageAccount.Context
určující účet úložiště, který chcete použít. Když pracujete s účtem úložiště, namísto opakovaného zadávání přihlašovacích údajů odkazujete na jeho kontext.Vytvořte kontejner úložiště pomocí Rutiny New-AzStorageContainer.
Zkopírujte klíč úložiště, který je výstupem kódu, a uložte ho, abyste později vytvořili výstup úlohy streamování.
$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
Vytvoření úlohy Stream Analytics
Vytvořte úlohu Stream Analytics pomocí rutiny New-AzStreamAnalyticsJob . Tato rutina jako parametry přebírá název úlohy, název skupiny prostředků, umístění a název skladové položky. Jako název úlohy můžete zadat jakýkoli popisný název, který identifikuje vaši úlohu. Může mít jenom alfanumerické znaky, pomlčky a podtržítka a musí mít délku 3 až 63 znaků.
Spusťte rutinu New-AzStreamAnalyticsJob
.
$jobName = "MyStreamingJob"
New-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-Location centralus `
-SkuName Standard
Konfigurace vstupu do úlohy
Přidejte do úlohy vstup pomocí rutiny New-AzStreamAnalyticsInput . Tato rutina použije název úlohy, název vstupu úlohy, název skupiny prostředků a definici vstupu úlohy jako parametry. Definici vstupu úlohy představuje soubor JSON, který obsahuje vlastnosti potřebné ke konfiguraci vstupu úlohy. V tomto příkladu vytvoříte úložiště objektů blob jako vstup.
Na místním počítači vytvořte soubor s názvem JobInputDefinition.json
a přidejte do něj následující data JSON.
Důležité
SharedAccessKey
Nahraďteaccesspolicykey
část ioT Hubu připojovací řetězec, kterou jste uložili v předchozí části.- Pokud jste pro centrum IoT použili jiný název, aktualizujte hodnotu pro
iotHubNamespace
.
{
"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"
}
Nastavte proměnnou $jobInputDefinitionFile
PowerShellu na cestu, kam jste uložili soubor JSON definice vstupu úlohy.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
Pak spuštěním rutiny New-AzStreamAnalyticsInput
vytvořte vstup Azure IoT Hubu pro úlohu Stream Analytics.
$jobInputName = "IoTHubInput"
New-AzStreamAnalyticsInput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobInputDefinitionFile `
-Name $jobInputName
Konfigurace výstupu do úlohy
Přidejte výstup do úlohy pomocí rutiny New-AzStreamAnalyticsOutput . Tato rutina použije název úlohy, název výstupu úlohy, název skupiny prostředků a definici výstupu úlohy jako parametry. Definici výstupu úlohy představuje soubor JSON, který obsahuje vlastnosti potřebné ke konfiguraci výstupu úlohy. V tomto příkladu je výstupem úložiště objektů blob.
Na místním počítači vytvořte soubor s názvem JobOutputDefinition.json
a přidejte do něj následující data JSON.
Důležité
Nahraďte hodnotu accountKey
přístupovým klíčem vašeho účtu úložiště, který je hodnotou uloženou v $storageAccountKey
hodnotě.
{
"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"
}
Nastavte proměnnou $jobOutputDefinitionFile
PowerShellu na cestu, kam jste uložili soubor JSON definice výstupu úlohy.
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
Pak spuštěním rutiny New-AzStreamAnalyticsOutput
vytvořte výstup služby Azure Blob Storage pro úlohu Stream Analytics.
$jobOutputName = "BlobOutput"
New-AzStreamAnalyticsOutput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobOutputDefinitionFile `
-Name $jobOutputName
Definice transformačního dotazu
Přidejte transformaci úlohy pomocí rutiny New-AzStreamAnalyticsTransformation . Tato rutina použije název úlohy, název transformace úlohy, název skupiny prostředků a definici transformace úlohy jako parametry. Na místním počítači vytvořte soubor s názvem JobTransformationDefinition.json
a přidejte do něj následující data JSON. Soubor JSON obsahuje parametr dotazu, který definuje transformaci dotazu:
{
"name":"MyTransformation",
"type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
"properties":{
"streamingUnits":1,
"script":null,
"query":"SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27"
}
}
Potom spusťte rutinu New-AzStreamAnalyticsTransformation
.
$jobTransformationName = "MyJobTransformation"
$jobTransformationDefinitionFile = "C:\JobTransformationDefinition.json"
New-AzStreamAnalyticsTransformation `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-Query "SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27" `
-StreamingUnit 1 `
-Name $jobTransformationName
Spuštění simulátoru IoT
Zástupný symbol na řádku 15 nahraďte celým zařízením Azure IoT Hub připojovací řetězec, které jste si uložili v předchozí části.
Klepněte na položku Spustit. Výstup by měl zobrazit data snímačů a zprávy, které se odesílají do ioT Hubu.
Spuštění úlohy Stream Analytics a kontrola výstupu
Spusťte úlohu pomocí rutiny Start-AzStreamAnalyticsJob . Tato rutina použije název úlohy, název skupiny prostředků, režim spuštění výstupu a čas spuštění jako parametry. Parametr OutputStartMode
připouští hodnoty JobStartTime
, CustomTime
nebo LastOutputEventTime
. Další informace o tom, na co tyto hodnoty odkazují, najdete v části Parametry v dokumentaci k prostředí PowerShell.
Jakmile spustíte následující rutinu, vrátí jako výstup hodnotu True
, pokud se úloha spustí. V kontejneru úložiště se vytvoří výstupní složku s transformovanými daty.
Start-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-OutputStartMode 'JobStartTime'
Vyčištění prostředků
Odstraňte skupinu prostředků, úlohu streamování a všechny související prostředky, pokud je už nepotřebujete. Odstraněním úlohy se zabrání zaúčtování jednotek streamování, které daná úloha spotřebovává. Pokud máte v plánu tuto úlohu ještě někdy používat, nemusíte ji odstraňovat a prozatím ji jenom zastavte. Pokud tuto úlohu nebudete dál používat, odstraňte všechny prostředky vytvořené v tomto rychlém startu spuštěním následující rutiny:
Remove-AzResourceGroup `
-Name $resourceGroup
Další kroky
V tomto rychlém startu jste pomocí PowerShellu nasadili jednoduchou úlohu Stream Analytics. Úlohy Stream Analytics můžete nasadit také pomocí webu Azure Portal a sady Visual Studio.
Pokud se chcete dozvědět o konfiguraci dalších vstupních zdrojů a provádění detekce v reálném čase, pokračujte na další článek: