Rychlý start: Vytvoření úlohy Azure Stream Analytics pomocí Azure CLI
V tomto rychlém startu použijete Azure CLI k definování úlohy Stream Analytics, která filtruje zprávy ze snímačů v reálném čase s teplotou vyšší než 27. Úloha Stream Analytics čte data ze služby IoT Hub, transformuje data a zapisuje výstupní data do kontejneru v úložišti objektů blob. Vstupní data použitá v tomto rychlém startu se generují online simulátorem Raspberry Pi.
Než začnete
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Předpoklady
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Vytvořte skupinu prostředků. Všechny prostředky Azure musí být nasazené do skupiny prostředků. Skupiny prostředků vám umožňují organizaci a správu souvisejících prostředků Azure.
Pro účely tohoto rychlého startu vytvořte skupinu prostředků s názvem streamanalyticsrg v umístění eastus pomocí následujícího příkazu az group create:
az group create --name streamanalyticsrg --location eastus
Příprava vstupních dat
Před definováním úlohy Stream Analytics připravte data, která se použijí pro vstup úlohy. Následující příkazy Azure CLI připraví vstupní data požadovaná úlohou.
Vytvořte IoT Hub pomocí příkazu az iot hub create . Tento příklad vytvoří IoT Hub s názvem MyASAIoTHub. Vzhledem k tomu, že názvy ioT Hubu musí být globálně jedinečné, možná budete muset změnit název, pokud se už používá. Nastavte skladovou položku na F1, aby používala úroveň Free, pokud je dostupná pro vaše předplatné. Pokud ne, zvolte další nejnižší úroveň.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1
Po vytvoření centra IoT získejte připojovací řetězec IoT Hub pomocí příkazu az iot hub connection-string show. Zkopírujte celý připojovací řetězec a uložte ho. Použijete ho při přidávání IoT Hubu jako vstupu do úlohy Stream Analytics.
az iot hub connection-string show --hub-name $iotHubName
Přidejte zařízení do IoT Hubu pomocí příkazu az iothub device-identity create . Tento příklad vytvoří zařízení s názvem MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
Získejte připojovací řetězec zařízení pomocí příkazu az iot hub device-identity connection-string show. Zkopírujte celý připojovací řetězec a uložte ho při vytváření simulátoru Raspberry Pi.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
Příklad výstupu:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Vytvoření účtu úložiště objektů blob
Následující příkazy Azure CLI vytvoří účet úložiště objektů blob, který se používá pro výstup úlohy.
Účet úložiště pro obecné účely vytvoříte příkazem az storage account create. Účet úložiště pro obecné účely můžete použít pro všechny čtyři služby: objekty blob, soubory, tabulky a fronty.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
Získejte klíč pro svůj účet úložiště spuštěním příkazu az storage account keys list .
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $key
Důležité
Poznamenejte si přístupový klíč pro účet úložiště Azure. Tento klíč použijete později v tomto rychlém startu.
Vytvořte kontejner s názvem
state
pro ukládání objektů blob pomocí příkazu az storage container create . Klíč účtu úložiště použijete k autorizaci operace k vytvoření kontejneru. Další informace o autorizaci operací s daty pomocí Azure CLI najdete v tématu Autorizace přístupu k datům objektů blob nebo front pomocí Azure CLI.az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Vytvoření úlohy Stream Analytics
Pomocí příkazu az stream-analytics job create vytvořte úlohu Stream Analytics.
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"
Konfigurace vstupu do úlohy
Přidejte do úlohy vstup pomocí rutiny az stream-analytics input . Tato rutina přebírá název úlohy, název vstupu úlohy, název skupiny prostředků a vstupní vlastnosti ve formátu JSON jako parametry. V tomto příkladu vytvoříte IoT Hub jako vstup.
Důležité
- Nahraďte
IOT HUB ACCESS KEY
hodnotou sdíleného přístupového klíče ve službě IOT Hub připojovací řetězec, kterou jste uložili. Pokud je například ioT Hub připojovací řetězec:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=
, hodnota sdíleného přístupového klíče jexxxxxxxxxxxxxx=
. Při nahrazování hodnoty se ujistěte, že neodstraníte\
(řídicí) znak pro"
(dvojité uvozovky). - Aktualizujte hodnotu
iotHubNamespace
v následujícím příkazu, pokud jste použili jiný název nežMyASAIoTHub
. Spuštěním zobrazíteecho $iotHubName
název ioT Hubu.
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"
Konfigurace výstupu do úlohy
Přidejte výstup do úlohy pomocí rutiny az stream-analytics output create . Tato rutina přebírá název úlohy, název výstupu úlohy, název skupiny prostředků, zdroj dat ve formátu JSON a typ serializace jako parametry.
Důležité
Nahraďte STORAGEACCOUNTNAME>
názvem účtu služby Azure Storage a STORAGEACCESSKEY>
přístupovým klíčem pro váš účet úložiště. Pokud jste si tyto hodnoty nezaznamenali, získejte je spuštěním následujících příkazů: echo $storageAccountName
a echo $key
. Při nahrazování hodnot se ujistěte, že neodstraníte \
(řídicí) znak pro "
(dvojité uvozovky).
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
Definice transformačního dotazu
Přidejte transformaci úlohy pomocí rutiny az stream-analytics transformation create .
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"
Spuštění simulátoru IoT
Zástupný symbol na řádku 15 nahraďte celým připojovací řetězec zařízení Služby Azure IoT Hub (nikoli službou IoT Hub připojovací řetězec), kterou jste uložili na začátku rychlého startu.
Vyberte Spustit. Výstup by měl zobrazit data snímačů a zprávy, které se odesílají do ioT Hubu.
Spuštění úlohy Stream Analytics a kontrola výstupu
Spusťte úlohu pomocí rutiny az stream-analytics job start . 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
.
Jakmile spustíte následující rutinu, vrátí jako výstup hodnotu True
, pokud se úloha spustí.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Dejte mu pár minut a pak ověřte, že se v kontejneru state
objektů blob vytvoří výstupní soubor.
Stáhněte a otevřete soubor, abyste viděli několik položek podobných následujícímu:
{
"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
}
}
Vyčištění prostředků
Odstraňte skupinu prostředků, která odstraní všechny prostředky ve skupině prostředků, včetně úlohy Stream Analytics, IoT Hubu a účtu Azure Storage.
az group delete \
--name streamanalyticsrg \
--no-wait
Další kroky
V tomto rychlém startu jste pomocí Azure CLI 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: