Rychlý start: Vytvoření úlohy Stream Analytics pomocí Azure PowerShell
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 z IoT Hub zařízení. Vstupní data jsou generována online simulátorem Raspberry Pi. Úloha Stream Analytics transformuje data pomocí dotazovacího jazyka Stream Analytics a filtruje zprávy s teplotou vyšší než 27°. Potom zapíše výsledné výstupní události do souboru v úložišti objektů blob.
Než začnete
- Pokud nemáte předplatné Azure, vytvořte si bezplatný účet.
- Tento rychlý start vyžaduje modul Azure PowerShell. 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. - Některé IoT Hub akce nejsou podporovány Azure PowerShell a musí být dokončeny 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 oken zadejte svoje 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 použít pro tento rychlý start, 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 prostředků
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ů pro přípravu vstupních dat požadovaných úlohou. Projděte si následující části, abyste porozuměli kódu.
Spuštěním příkazu v okně PowerShellu
az login
se přihlaste ke svému úč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 tento rychlý start, a spuštěním
az account set
příkazu toto předplatné vyberte. 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>"
Vytvořte IoT Hub pomocí
az iot hub create
příkazu . Tento příklad vytvoří IoT Hub s názvem MyASAIoTHub. Vzhledem k tomu, že IoT Hub názvy jsou jedinečné, musíte přijít s vlastním názvem IoT Hub. Nastavte skladovou položku na F1, aby se používala úroveň Free, pokud je k dispozici ve vašem předplatném. 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 show-connection-string. Zkopírujte celý připojovací řetězec a uložte ho. Potřebujete ho, když přidáte IoT Hub jako vstup do úlohy Stream Analytics.
az iot hub show-connection-string --resource-group $resourceGroup --hub-name "MyASAIoTHub"
Přidejte zařízení do IoT Hub pomocí
az iot hub device-identity create
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í. Při vytváření simulátoru Raspberry Pi zkopírujte celý připojovací řetězec a uložte ho.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 PowerShell 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ě 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 přebírá jako parametry 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 obsahovat pouze alfanumerické znaky, spojovní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í připojovacího řetězce IoT Hub, který 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 vstupní úlohy.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
Dále spuštěním rutiny New-AzStreamAnalyticsInput
vytvořte vstup Azure IoT Hub 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é
Hodnotu nahraďte accountKey
přístupovým klíčem vašeho účtu úložiště, který je hodnotou uloženou v hodnotě $storageAccountKey
.
{
"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"
Dále spuštěním rutiny New-AzStreamAnalyticsOutput
vytvořte výstup 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
Otevřete online simulátor Raspberry Pi Azure IoT.
Zástupný symbol na řádku 15 nahraďte celým připojovacím řetězcem Azure IoT Hub Device, který jste uložili v předchozí části.
Klikněte na Spustit. Výstup by měl zobrazit data ze senzorů a zprávy, které se odesílají do IoT Hub.
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, spuštěním následující rutiny odstraňte všechny prostředky vytvořené v rámci tohoto rychlého startu:
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: