Megosztás:


Rövid útmutató: Stream Analytics-feladat létrehozása az Azure PowerShell használatával

Az 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 helyezhet üzembe és futtathat Azure Stream Analytics-feladatokat az Azure PowerShell-modullal.

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.

Mielőtt elkezdené

  • Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
  • Ehhez a rövid útmutatóhoz az Azure PowerShell-modul szükséges. 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 az Azure PowerShell nem támogat, és az Azure CLI 2.0.70-es vagy újabb verziójával és az Azure CLI IoT-bővítményével kell végrehajtani. Telepítse az Azure CLI-t , és telepítse az extension add --name azure-iot 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-hitelesítő adatait az előugró böngészőben:

# Connect to your Azure account
Connect-AzAccount

Ha több előfizetéssel rendelkezik, válassza ki a rövid útmutatóhoz használni kívánt előfizetést az alábbi parancsmagok futtatásával. Ü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 használatával. 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 megismeréséhez tekintse át a következő szakaszokat.

  1. 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, amely az előző szakaszban a PowerShellt használja. Ügyeljen arra, hogy az előfizetés nevére cserélje le a helyére <your subscription name> .

    az login
    
    az account set --subscription "<your subscription>"
    
  2. Hozzon létre egy IoT Hubot a az iot hub create paranccsal. Ez a példa létrehoz egy MyASAIoTHub nevű IoT Hubot. Mivel az 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ével. 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 az IoT Hub kapcsolati sztring az az iot hub connection-string show parancsával. Másolja ki a teljes kapcsolati sztring, és mentse. Szüksége lesz rá, amikor hozzáadja az IoT Hubot a Stream Analytics-feladat bemeneteként.

    az iot hub connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub"
    
  3. Adjon hozzá egy eszközt az IoT Hubhoz a az iot hub device-identity create paranccsal. Ez a példa létrehoz egy MyASAIoTDevice nevű eszközt.

    az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
    
  4. Kérje le az eszközt kapcsolati sztring a az iot hub device-identity connection-string show parancs használatával. 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 kimenetre:

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

Blob storage létrehozása

Az alábbi Azure PowerShell-kódblokk parancsokkal hoz létre a feladat kimenetéhez használt blobtárolót. Tekintse át az egyes szakaszokat a kód értelmezése céljából.

  1. 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).

  2. 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.

  3. Hozzon létre egy tárolót a New-AzStorageContainer használatával.

  4. 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

Stream Analytics-feladat létrehozása 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 az SharedAccessKey IoT Hub kapcsolati sztring egy előző szakaszban mentett részére.
  • Ha más nevet használt az IoT Hubhoz, frissítse a következő é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 tárfiók hozzáférési kulcsának értékét accountKey az értékben tárolt értékre $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"
}

Á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

  1. Nyissa meg a Raspberry Pi Azure IoT Online szimulátort.

  2. Cserélje le a helyőrzőt a 15. sorban az előző szakaszban mentett teljes Azure IoT Hub-eszközre kapcsolati sztring.

  3. Kattintson a Futtatás elemre. A kimenetnek az IoT Hubra küldött érzékelőadatokat és üzeneteket kell megjelenítenie.

    Képernyőkép a Raspberry Pi Azure IoT Online szimulátorról.

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 folytatja a feladat használatát, törölje a rövid útmutatóban létrehozott összes erőforrást az alábbi 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: