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
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
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.
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
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"
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.
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
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.
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 nevetMyASAIoTHub
használta. Futtassaecho $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
Nyissa meg a Raspberry Pi Azure IoT Online szimulátort.
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).
Válassza a Futtatás lehetőséget. A kimenetnek az IoT Hubra küldött érzékelőadatokat és üzeneteket kell megjelenítenie.
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.
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: