Sdílet prostřednictvím


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 z IoT Hub, transformuje data a zapisuje výstupní data do kontejneru v úložišti blob. Vstupní data použitá v tomto rychlém startu se generují online simulátorem Raspberry Pi.

Než začnete

Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

Požadavky

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

  1. 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
    
  2. 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"
    
  3. Pomocí příkazu az iot hub device-identity connection-string show získejte řetězec pro připojení zařízení. 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řte účet ú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.

  1. Pomocí příkazu az storage account create vytvořte účet úložiště pro obecné účely. Účet úložiště pro obecné účely lze použít pro všechny čtyři služby: 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
    
  2. 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.

  3. 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řte úlohu 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 vstup do úlohy pomocí cmdletu 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 v připojovacím řetězci ioT Hubu, který jste uložili. Pokud je například připojovací řetězec ioT Hubu: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, hodnota sdíleného přístupového klíče je xxxxxxxxxxxxxx=. Při nahrazování hodnoty se ujistěte, že neodstraníte \ (escape) znak pro " (dvojité uvozovky).
  • Aktualizujte hodnotu iotHubNamespace v následujícím příkazu, pokud jste použili jiný název než MyASAIoTHub. Spusťte echo $iotHubName, abyste zjistili 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 \ (escapeovací) 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 ke své úloze 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

  1. Otevřete simulátor Raspberry Pi Azure IoT Online.

  2. Zástupný text na řádku 15 nahraďte celým připojovacím řetězcem zařízení Azure IoT Hubu (ne připojovacím řetězcem služby IoT Hub), který jste si uložili na začátku rychlého startu.

  3. Vyberte Spustit. Výstup by měl zobrazit data snímačů a zprávy, které se odesílají do ioT Hubu.

    Simulátor Raspberry Pi Azure IoT Online

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.

Snímek obrazovky znázorňující výstupní soubor v kontejneru State blob

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čistěte zdroje

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: