Rövid útmutató: Stream Analytics-feladat létrehozása Azure PowerShell használatával
A Azure PowerShell modul az Azure-erőforrások PowerShell-parancsmagok vagy szkriptek használatával történő létrehozására és kezelésére szolgál. Ez a rövid útmutató bemutatja, hogyan használható a Azure PowerShell modul egy Azure Stream Analytics-feladat üzembe helyezésére és futtatására.
A mintafeladat beolvassa a streamelési adatokat egy IoT Hub eszközről. A bemeneti adatokat egy Raspberry Pi online szimulátor hozza létre. A Stream Analytics-feladat átalakítja az adatokat a Stream Analytics lekérdezési nyelvével a 27°-nál magasabb hőmérsékletű üzenetek szűréséhez. Ezután az eredményül kapott kimeneti eseményeket egy blobtárolóban lévő fájlba írja.
Előkészületek
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
- Ehhez a rövid útmutatóhoz szükség van a Azure PowerShell modulra. Ahhoz, hogy megtudja, melyik verzió van telepítve a helyi gépen, futtassa a
Get-Module -ListAvailable Az
parancsot. Ha telepíteni vagy frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. - Egyes IoT Hub műveleteket a Azure PowerShell nem támogat, és az Azure CLI 2.0.70-es vagy újabb verziójával, valamint az Azure CLI IoT-bővítményével kell elvégezni. Telepítse az Azure CLI-t , és a használatával
az extension add --name azure-iot
telepítse az IoT-bővítményt.
Bejelentkezés az Azure-ba
Jelentkezzen be az Azure-előfizetésébe a Connect-AzAccount
paranccsal, és adja meg Azure-beli hitelesítő adatait az előugró böngészőben:
# Connect to your Azure account
Connect-AzAccount
Ha több előfizetéssel rendelkezik, az alábbi parancsmagok futtatásával válassza ki a rövid útmutatóhoz használni kívánt előfizetést. Ügyeljen rá, hogy a <your subscription name>
helyett saját előfizetésének a nevét adja meg:
# 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
Erőforráscsoport létrehozása
Hozzon létre egy Azure-erőforráscsoportot a New-AzResourceGroup paranccsal. Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.
$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
A bemeneti adatok előkészítése
A Stream Analytics-feladat létrehozása előtt készítse elő azokat az adatokat, amelyek a feladat bemenetét fogják képezni.
Az alábbi Azure CLI-kódblokk számos parancsot kínál a feladathoz szükséges bemeneti adatok előkészítéséhez. A kód megértéséhez tekintse át az alábbi szakaszokat.
A PowerShell-ablakban futtassa a parancsot az
az login
Azure-fiókba való bejelentkezéshez.Ha sikeresen bejelentkezik, az Azure CLI visszaadja az előfizetések listáját. Másolja ki a rövid útmutatóhoz használt előfizetést, és futtassa a parancsot az
az account set
előfizetés kiválasztásához. Válassza ki ugyanazt az előfizetést, amit az előző szakaszban a PowerShell-lel választott. Ügyeljen arra, hogy a helyére<your subscription name>
írja be az előfizetés nevét.az login az account set --subscription "<your subscription>"
Hozzon létre egy IoT Hub a
az iot hub create
paranccsal. Ez a példa létrehoz egy MyASAIoTHub nevű IoT Hub. Mivel IoT Hub nevek egyediek, saját IoT Hub nevet kell létrehoznia. Állítsa az SKU-t F1 értékre az ingyenes szint használatához, ha az elérhető az előfizetésében. Ha nem, válassza a következő legalacsonyabb szintet.az iot hub create --name "MyASAIoTHub" --resource-group $resourceGroup --sku S1
Az IoT Hub létrehozása után kérje le a IoT Hub kapcsolati sztring az az iot hub show-connection-string paranccsal. Másolja ki a teljes kapcsolati sztring, és mentse. Szüksége lesz rá, amikor hozzáadja a IoT Hub bemenetként a Stream Analytics-feladathoz.
az iot hub show-connection-string --resource-group $resourceGroup --hub-name "MyASAIoTHub"
Adjon hozzá egy eszközt a IoT Hub a
az iot hub device-identity create
paranccsal. Ez a példa egy MyASAIoTDevice nevű eszközt hoz létre.az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
Kérje le az eszközt kapcsolati sztring a
az iot hub device-identity connection-string show
paranccsal. Másolja ki a teljes kapcsolati sztring, és mentse a Raspberry Pi-szimulátor létrehozásakor.az iot hub device-identity connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
Példa a kimenetre:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Blob Storage létrehozása
Az alábbi Azure PowerShell kódblokk parancsokat használ a feladat kimenetéhez használt blobtároló létrehozásához. Tekintse át az egyes szakaszokat a kód értelmezése céljából.
Hozzon létre egy standard általános célú tárfiókot a New-AzStorageAccount parancsmaggal. Ez a példa létrehoz egy myasaquickstartstorage nevű tárfiókot helyileg redundáns tárolással (LRS) és blobtitkosítással (alapértelmezés szerint engedélyezve).
Kérje le a
$storageAccount.Context
nevű tárfiókkörnyezetet, amely meghatározza a használni kívánt tárfiókot. Ha a tárfiókok használatával történő munka során erre a környezetre hivatkozik, nem kell minden alkalommal megadnia a hitelesítő adatokat.Hozzon létre egy tárolót a New-AzStorageContainer használatával.
Másolja ki a kód által kimeneti tárkulcsot, és mentse a kulcsot a streamelési feladat kimenetének későbbi létrehozásához.
$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
Stream Analytics-feladat létrehozása
Hozzon létre egy Stream Analytics-feladatot a New-AzStreamAnalyticsJob parancsmaggal. Ez a parancsmag paraméterként veszi fel a feladat nevét, az erőforráscsoport nevét, a helyet és a termékváltozat nevét. A feladat neve bármilyen, a feladatot azonosító rövid név lehet. Csak alfanumerikus karaktereket, kötőjeleket és aláhúzásjeleket tartalmazhat, és 3 és 63 karakter közötti hosszúságúnak kell lennie.
Futtassa a New-AzStreamAnalyticsJob
parancsmagot.
$jobName = "MyStreamingJob"
New-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-Location centralus `
-SkuName Standard
A feladat bemenetének konfigurálása
Adjon hozzá egy bemenetet a feladathoz a New-AzStreamAnalyticsInput parancsmag használatával. Ennél a parancsmagnál a feladat neve, a feladat bemenetének a neve, az erőforráscsoport neve, és a feladat bemenetének definíciója adható meg paraméterként. A feladat bemenetének definíciója egy JSON-fájl, amely a feladat bemenetének konfigurálásához szükséges tulajdonságokat tartalmazza. Ebben a példában egy blobtárolót hoz létre bemenetként.
Hozzon létre a helyi gépén egy JobInputDefinition.json
nevű fájlt, és adja hozzá a következő JSON-adatokat.
Fontos
- Cserélje le
accesspolicykey
a elemet azSharedAccessKey
előző szakaszban mentett IoT Hub kapcsolati sztring részére. - Ha más nevet használt az IoT Hubhoz, frissítse a értékét.
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"
}
Állítsa a $jobInputDefinitionFile
PowerShell-változót arra az elérési útra, ahol a feladat bemeneti definíciójának JSON-fájlját tárolta.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
Ezután futtassa a New-AzStreamAnalyticsInput
parancsmagot egy Azure IoT Hub bemenet létrehozásához a Stream Analytics-feladathoz.
$jobInputName = "IoTHubInput"
New-AzStreamAnalyticsInput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobInputDefinitionFile `
-Name $jobInputName
A feladat kimenetének konfigurálása
Adjon hozzá egy kimenetet a feladathoz a New-AzStreamAnalyticsOutput parancsmag használatával. Ennél a parancsmagnál a feladat neve, a feladat kimenetének a neve, az erőforráscsoport neve, és a feladat kimenetének definíciója adható meg paraméterként. A feladat kimenetének definíciója egy JSON-fájl, amely a feladat kimenetének konfigurálásához szükséges tulajdonságokat tartalmazza. Ez a példa egy Blob Storage-tárolót használ kimenetként.
Hozzon létre a helyi gépén egy JobOutputDefinition.json
nevű fájlt, és adja hozzá a következő JSON-adatokat.
Fontos
Cserélje le a értékét accountKey
a tárfiók hozzáférési kulcsára, amely az értékben $storageAccountKey
tárolt érték.
{
"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"
}
Állítsa a $jobOutputDefinitionFile
PowerShell-változót arra az elérési útra, ahol a feladat kimeneti definíciójának JSON-fájlját tárolta.
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
Ezután futtassa a New-AzStreamAnalyticsOutput
parancsmagot egy Azure Blob Storage kimenet létrehozásához a Stream Analytics-feladathoz.
$jobOutputName = "BlobOutput"
New-AzStreamAnalyticsOutput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobOutputDefinitionFile `
-Name $jobOutputName
A transzformációs lekérdezés definiálása
Adjon hozzá egy átalakítást a feladathoz a New-AzStreamAnalyticsTransformation parancsmag használatával. Ennél a parancsmagnál a feladat neve, a feladat transzformációjának a neve, az erőforráscsoport neve, és a feladat transzformációjának definíciója adható meg paraméterként. Hozzon létre a helyi gépén egy JobTransformationDefinition.json
nevű fájlt, és adja hozzá a következő JSON-adatokat. A JSON-fájl tartalmaz egy query (lekérdezés) paramétert, amellyel definiálható a transzformációs lekérdezés:
{
"name":"MyTransformation",
"type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
"properties":{
"streamingUnits":1,
"script":null,
"query":"SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27"
}
}
Ezután futtassa a New-AzStreamAnalyticsTransformation
parancsmagot.
$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
Az IoT-szimulátor futtatása
Nyissa meg a Raspberry Pi Azure IoT Online-szimulátort.
Cserélje le a helyőrzőt a 15. sorban az előző szakaszban mentett teljes Azure IoT Hub Eszköz kapcsolati sztring.
Kattintson a Futtatás elemre. A kimenetnek meg kell jelenítenie a IoT Hub küldött érzékelőadatokat és üzeneteket.
A Stream Analytics-feladat indítása és a kimenet ellenőrzése
Indítsa el a feladatot a Start-AzStreamAnalyticsJob parancsmaggal. Ennél a parancsmagnál a feladat neve, az erőforráscsoport neve, a feladat kimenetének indítási módja, és a kezdés ideje adható meg paraméterként. Az OutputStartMode
által elfogadott értékek: JobStartTime
, CustomTime
és LastOutputEventTime
. A PowerShell-dokumentáció paraméterekkel foglalkozó szakaszában talál további információt arról, hogy ezek az értékek mit jelentenek.
A következő parancsmag futtatása a True
kimenetet adja vissza, ha a feladat elindult. A Storage-tárolóban létrejön egy kimeneti mappa, amely az átalakított adatokat tartalmazza.
Start-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-OutputStartMode 'JobStartTime'
Az erőforrások eltávolítása
Ha már nincs szükség rá, törölheti az erőforráscsoportot, a folyamatos átviteli feladatot és az összes kapcsolódó erőforrást. A feladat törlésével megakadályozhatja, hogy a feladat által felhasznált streamelési egységek kiszámlázásra kerüljenek. Ha később is szeretné használni a feladatot, akkor nem kell törölnie, hanem elég, ha leállítja. Ha nem fogja tovább használni ezt a feladatot, törölje a rövid útmutató által létrehozott összes erőforrást a következő parancsmag futtatásával:
Remove-AzResourceGroup `
-Name $resourceGroup
Következő lépések
Ebben a rövid útmutatóban egy egyszerű Stream Analytics-feladatot helyezett üzembe a PowerShell használatával. A Stream Analytics-feladatokat az Azure Portallal és a Visual Studióval is üzembe helyezheti.
Az egyéb bemeneti források beállításával és a valós idejű észlelés végrehajtásával kapcsolatos információkért olvassa el az alábbi cikkeket: