Share via


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

Ebben a rövid útmutatóban az Azure CLI használatával definiál egy Stream Analytics-feladatot, amely 27-nél nagyobb hőmérsékleten szűri a valós idejű érzékelőüzeneteket. A Stream Analytics-feladat adatokat olvas be az IoT Hubról, átalakítja az adatokat, és a kimeneti adatokat egy blobtárolóban lévő tárolóba írja. Az ebben a rövid útmutatóban használt bemeneti adatokat egy Raspberry Pi online szimulátor hozza létre.

Előkészületek

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

  • Hozzon létre egy erőforráscsoportot. Minden Azure-erőforrást egy erőforráscsoportba kell telepíteni. Az erőforráscsoportok lehetővé teszik az egymáshoz kapcsolódó Azure-erőforrások rendszerezését és kezelését.

    Ebben a rövid útmutatóban hozzon létre egy streamanalyticsrg nevű erőforráscsoportot az eastus helyen az alábbi az group create paranccsal:

    az group create --name streamanalyticsrg --location eastus
    

A bemeneti adatok előkészítése

A Stream Analytics-feladat definiálása előtt készítse elő a feladat bemenetéhez használt adatokat. Az alábbi Azure CLI-parancsok előkészítik a feladathoz szükséges bemeneti adatokat.

  1. Hozzon létre egy IoT Hubot az az iot hub create paranccsal. Ez a példa létrehoz egy MyASAIoTHub nevű IoT Hubot. Mivel az IoT Hub-neveknek globálisan egyedinek kell lenniük, előfordulhat, hogy módosítania kell a nevet, ha már megtörtént. Á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.

    iotHubName=MyASAIoTHub
    az iot hub create --name $iotHubName --resource-group streamanalyticsrg --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. Ezt az IoT Hub hozzáadásakor használja a Stream Analytics-feladat bemeneteként.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. Adjon hozzá egy eszközt az IoT Hubhoz az az iothub device-identity create paranccsal. Ez a példa létrehoz egy MyASAIoTDevice nevű eszközt.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. Kérje le az eszközt kapcsolati sztring az 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 --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
    

    Példa kimenetre:

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

Blob Storage-fiók létrehozása

Az alábbi Azure CLI-parancsok létrehoznak egy blobtároló fiókot , amelyet a feladat kimenetéhez használnak.

  1. Az az storage account create paranccsal hozzon létre egy általános célú tárfiókot. Az általános célú tárfiók mind a négy szolgáltatással (blobok, fájlok, táblák és üzenetsorok) használható.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. Kérje le a tárfiók kulcsát az az storage account keys list parancs futtatásával.

    key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv)
    echo $key
    

    Fontos

    Jegyezze fel az Azure Storage-fiók hozzáférési kulcsát. Ezt a kulcsot a rövid útmutató későbbi részében fogja használni.

  3. Hozzon létre egy blobok tárolására szolgáló state tárolót az az storage container create paranccsal. A tárfiókkulcs használatával engedélyezheti a műveletet a tároló létrehozásához. További információ az adatműveletek Azure CLI-vel való engedélyezéséről: Blob- vagy üzenetsoradatokhoz való hozzáférés engedélyezése az Azure CLI-vel.

    az storage container create \
        --account-name $storageAccountName \
        --name state \
        --account-key $key \
        --auth-mode key
    

Stream Analytics-feladat létrehozása

Hozzon létre egy Stream Analytics-feladatot az az stream-analytics feladat létrehozási parancsával.

az stream-analytics job create \
    --job-name "streamanalyticsjob" \
    --resource-group "streamanalyticsrg" \
    --location "eastus" \
    --output-error-policy "Drop" \
    --out-of-order-policy "Drop" \
    --order-max-delay 5 \
    --arrival-max-delay 16 \
    --data-locale "en-US"

A feladat bemenetének konfigurálása

Adjon hozzá egy bemenetet a feladathoz az az stream-analytics bemeneti parancsmag használatával. Ez a parancsmag paraméterként veszi fel a feladat nevét, a feladat bemeneti nevét, az erőforráscsoport nevét és a bemeneti tulajdonságokat JSON formátumban. Ebben a példában egy IoT Hubot fog létrehozni bemenetként.

Fontos

  • Cserélje le IOT HUB ACCESS KEY a megosztott hozzáférési kulcs értékét a mentett IOT Hub kapcsolati sztring. Ha például az IOT Hub kapcsolati sztring a következő: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, akkor a közös hozzáférésű hozzáférési kulcs értéke .xxxxxxxxxxxxxx= Az érték cseréjekor győződjön meg arról, hogy nem törli \ a (feloldó) karaktert a (dupla idézőjelek) számára " .
  • Frissítse a következő parancs értékét iotHubNamespace , ha nem a nevet MyASAIoTHubhasználta. Futtassa echo $iotHubName az IoT Hub nevét.
az stream-analytics input create \
    --properties "{\"type\":\"Stream\",\"datasource\":{\"type\":\"Microsoft.Devices/IotHubs\",\"properties\":{\"consumerGroupName\":\"\$Default\",\"endpoint\":\"messages/events\",\"iotHubNamespace\":\"MyASAIoTHub\",\"sharedAccessPolicyKey\":\"IOT HUB ACCESS KEY\",\"sharedAccessPolicyName\":\"iothubowner\"}},\"serialization\":{\"type\":\"Json\",\"encoding\":\"UTF8\"}}" \
    --input-name "asaiotinput" \
    --job-name "streamanalyticsjob" \
    --resource-group "streamanalyticsrg"

A feladat kimenetének konfigurálása

Adjon hozzá egy kimenetet a feladathoz az az stream-analytics output create parancsmag használatával. Ez a parancsmag a feladat nevét, a feladat kimenetének nevét, az erőforráscsoport nevét, az adatforrást JSON formátumban, a szerializáció típusát pedig paraméterként veszi fel.

Fontos

Cserélje le STORAGEACCOUNTNAME> az Azure Storage-fiók nevére és STORAGEACCESSKEY> a tárfiók hozzáférési kulcsára. Ha nem jegyezte fel ezeket az értékeket, futtassa a következő parancsokat a lekéréshez: echo $storageAccountName és echo $key. Az értékek cseréjekor győződjön meg arról, hogy nem törli \ a (feloldó) karaktert a (dupla idézőjelek) számára " .

az stream-analytics output create \
    --job-name streamanalyticsjob \
    --datasource "{\"type\":\"Microsoft.Storage/Blob\",\"properties\":{\"container\":\"state\",\"dateFormat\":\"yyyy/MM/dd\",\"pathPattern\":\"{date}/{time}\",\"storageAccounts\":[{\"accountKey\":\"STORAGEACCESSKEY\",\"accountName\":\"STORAGEACCOUNTNAME\"}],\"timeFormat\":\"HH\"}}" \
    --serialization "{\"type\":\"Json\",\"properties\":{\"format\":\"Array\",\"encoding\":\"UTF8\"}}" \
    --output-name asabloboutput \
    --resource-group streamanalyticsrg

A transzformációs lekérdezés definiálása

Adjon hozzá egy átalakítást a feladathoz az az stream-analytics transzformációs létrehozási parancsmag használatával.

az stream-analytics transformation create \
    --resource-group streamanalyticsrg \
    --job-name streamanalyticsjob \
    --name Transformation \
    --streaming-units "6" \
    --saql "SELECT * INTO asabloboutput FROM asaiotinput WHERE Temperature > 27"

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 a gyorsútmutató elején mentett teljes Azure IoT Hub-eszköz kapcsolati sztring (nem az IoT Hub kapcsolati sztring).

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

    Raspberry Pi Azure IoT Online Simulator

A Stream Analytics-feladat indítása és a kimenet ellenőrzése

Indítsa el a feladatot az az stream-analytics feladat indítási parancsmagjának használatával. 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 következő parancsmag futtatása a True kimenetet adja vissza, ha a feladat elindult.

az stream-analytics job start \
    --resource-group streamanalyticsrg \
    --name streamanalyticsjob \
    --output-start-mode JobStartTime

Adjon neki néhány percet, majd ellenőrizze, hogy létrejön-e kimeneti fájl a state blobtárolóban.

Screenshot showing the output file in the State blob container.

Töltse le és nyissa meg a fájlt az alábbihoz hasonló bejegyzések megtekintéséhez:

{
    "messageId": 229,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 31.85214010589595,
    "humidity": 60.278830289656284,
    "EventProcessedUtcTime": "2023-02-28T22:06:33.5567789Z",
    "PartitionId": 3,
    "EventEnqueuedUtcTime": "2023-02-28T22:05:49.6520000Z",
    "IoTHub": {
        "MessageId": null,
        "CorrelationId": null,
        "ConnectionDeviceId": "MyASAIoTDevice",
        "ConnectionDeviceGenerationId": "638132150746523845",
        "EnqueuedTime": "2023-02-28T22:05:49.6520000Z",
        "StreamId": null
    }
}

Clean up resources

Törölje az erőforráscsoportot, amely törli az erőforráscsoport összes erőforrását, beleértve a Stream Analytics-feladatot, az IoT Hubot és az Azure Storage-fiókot.

az group delete \
    --name streamanalyticsrg \
    --no-wait

Következő lépések

Ebben a rövid útmutatóban üzembe helyezett egy egyszerű Stream Analytics-feladatot az Azure CLI 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: