Udostępnij za pośrednictwem


Szybki start: tworzenie zadania usługi Azure Stream Analytics przy użyciu interfejsu wiersza polecenia platformy Azure

W tym przewodniku Szybki start użyjesz interfejsu wiersza polecenia platformy Azure do zdefiniowania zadania usługi Stream Analytics, które filtruje komunikaty czujników w czasie rzeczywistym z odczytem temperatury większym niż 27. Zadanie usługi Stream Analytics odczytuje dane z usługi IoT Hub, przekształca dane i zapisuje dane wyjściowe w kontenerze w magazynie obiektów blob. Dane wejściowe używane w tym przewodniku Szybki start są generowany przez symulator online Raspberry Pi.

Zanim rozpoczniesz

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Utwórz grupę zasobów. Wszystkie zasoby platformy Azure należy wdrożyć w grupie zasobów. Grupy zasobów umożliwiają organizowanie powiązanych zasobów platformy Azure i zarządzanie nimi.

    W tym przewodniku Szybki start utwórz grupę zasobów o nazwie streamanalyticsrg w lokalizacji eastus za pomocą następującego polecenia az group create:

    az group create --name streamanalyticsrg --location eastus
    

Przygotowywanie danych wejściowych

Przed zdefiniowaniem zadania usługi Stream Analytics przygotuj dane używane do danych wejściowych zadania. Następujące polecenia interfejsu wiersza polecenia platformy Azure przygotowują dane wejściowe wymagane przez zadanie.

  1. Utwórz centrum IoT Hub za pomocą polecenia az iot hub create. W tym przykładzie tworzone jest centrum IoT Hub o nazwie MyASAIoTHub. Ponieważ nazwy usługi IoT Hub muszą być globalnie unikatowe, może być konieczne zmianę nazwy, jeśli została już zajęta. Ustaw jednostkę SKU na F1, aby używać warstwy Bezpłatna, jeśli jest dostępna w ramach subskrypcji. W przeciwnym razie wybierz kolejną najniższą warstwę.

    iotHubName=MyASAIoTHub
    az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1
    

    Po utworzeniu centrum IoT hub pobierz usługę IoT Hub parametry połączenia za pomocą polecenia az iot hub connection-string show. Skopiuj cały parametry połączenia i zapisz go. Jest on używany podczas dodawania usługi IoT Hub jako danych wejściowych do zadania usługi Stream Analytics.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. Dodaj urządzenie do centrum IoT Hub za pomocą polecenia az iothub device-identity create. W tym przykładzie zostanie utworzone urządzenie o nazwie MyASAIoTDevice.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. Pobierz urządzenie parametry połączenia za pomocą polecenia az iot hub device-identity connection-string show. Skopiuj całe parametry połączenia i zapisz je, ponieważ będą używane podczas tworzenia symulatora urządzenia Raspberry Pi.

    az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
    

    Przykładowe dane wyjściowe:

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

Tworzenie konta usługi Blob Storage

Następujące polecenia interfejsu wiersza polecenia platformy Azure tworzą konto magazynu obiektów blob, które jest używane na potrzeby danych wyjściowych zadania.

  1. Do utworzenia konta magazynu (ogólnego przeznaczenia) służy polecenie az storage account create. Konta magazynu można używać z wszystkimi czterema usługami: obiektami blob, plikami, tabelami i kolejkami.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. Pobierz klucz dla konta magazynu, uruchamiając polecenie az storage account keys list .

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

    Ważne

    Zanotuj klucz dostępu dla konta usługi Azure Storage. Użyjesz tego klucza w dalszej części tego przewodnika Szybki start.

  3. Utwórz kontener o nazwie state do przechowywania obiektów blob za pomocą polecenia az storage container create . Klucz konta magazynu służy do autoryzowania operacji tworzenia kontenera. Aby uzyskać więcej informacji na temat autoryzowania operacji danych za pomocą interfejsu wiersza polecenia platformy Azure, zobacz Autoryzowanie dostępu do danych obiektów blob lub kolejek za pomocą interfejsu wiersza polecenia platformy Azure.

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

Tworzenie zadania usługi Stream Analytics

Utwórz zadanie usługi Stream Analytics za pomocą polecenia az stream-analytics job create .

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"

Konfigurowanie danych wejściowych zadania

Dodaj dane wejściowe do zadania przy użyciu polecenia cmdlet az stream-analytics input . To polecenie cmdlet przyjmuje nazwę zadania, nazwę danych wejściowych zadania, nazwę grupy zasobów i właściwości wejściowe w formacie JSON jako parametry. W tym przykładzie utworzysz centrum IoT Hub jako dane wejściowe.

Ważne

  • Zastąp IOT HUB ACCESS KEY wartość kluczem dostępu współdzielonego w zapisanym parametry połączenia centrum IOT Hub. Jeśli na przykład parametry połączenia usługi IOT Hub to: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, wartość klucza dostępu współdzielonego to xxxxxxxxxxxxxx=. Podczas zastępowania wartości upewnij się, że nie usuwasz \ znaku (ucieczka) dla " elementu (cudzysłowy podwójne).
  • Zaktualizuj wartość iotHubNamespace w poniższym poleceniu, jeśli użyto nazwy innej niż MyASAIoTHub. Uruchom polecenie echo $iotHubName , aby wyświetlić nazwę centrum IoT Hub.
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"

Konfigurowanie danych wyjściowych zadania

Dodaj dane wyjściowe do zadania przy użyciu polecenia cmdlet az stream-analytics output create . To polecenie cmdlet przyjmuje nazwę zadania, nazwę danych wyjściowych zadania, nazwę grupy zasobów, źródło danych w formacie JSON i typ serializacji jako parametry.

Ważne

Zastąp STORAGEACCOUNTNAME> ciąg nazwą konta usługi Azure Storage i STORAGEACCESSKEY> kluczem dostępu dla konta magazynu. Jeśli nie zanotujesz tych wartości, uruchom następujące polecenia, aby je pobrać: echo $storageAccountName i echo $key. Podczas zastępowania wartości upewnij się, że nie usuwasz \ (ucieczki) znaku " (cudzysłowów podwójnych).

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

Definiowanie zapytania przekształcenia

Dodaj przekształcenie zadania przy użyciu polecenia cmdlet 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"

Uruchamianie symulatora IoT

  1. Otwórz symulator Raspberry Pi Azure IoT Online Simulator.

  2. Zastąp symbol zastępczy w wierszu 15 całym parametry połączenia urządzenia usługi Azure IoT Hub (a nie parametry połączenia usługi IoT Hub) zapisanym na początku przewodnika Szybki start.

  3. Wybierz Uruchom. Dane wyjściowe powinny pokazywać dane z czujników i komunikaty, które są wysyłane do usługi IoT Hub.

    Raspberry Pi Azure IoT Online Simulator

Uruchamianie zadania usługi Stream Analytics i sprawdzanie danych wyjściowych

Uruchom zadanie przy użyciu polecenia cmdlet az stream-analytics job start . To polecenie cmdlet przyjmuje jako parametry nazwę zadania, nazwę grupy zasobów, tryb uruchamiania danych wyjściowych i czas rozpoczęcia. Parametr OutputStartMode przyjmuje wartość JobStartTime, CustomTime lub LastOutputEventTime.

Po uruchomieniu poniższego polecenia cmdlet zwróci ono wartość True jako dane wyjściowe, jeśli zadanie zostało uruchomione.

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

Nadaj mu kilka minut, a następnie sprawdź, czy plik wyjściowy został utworzony w kontenerze state obiektów blob.

Screenshot showing the output file in the State blob container.

Pobierz i otwórz plik, aby wyświetlić kilka wpisów podobnych do następujących:

{
    "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
    }
}

Czyszczenie zasobów

Usuń grupę zasobów, która spowoduje usunięcie wszystkich zasobów w grupie zasobów, w tym zadania usługi Stream Analytics, usługi IoT Hub i konta usługi Azure Storage.

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

Następne kroki

W tym przewodniku Szybki start wdrożono proste zadanie usługi Stream Analytics przy użyciu interfejsu wiersza polecenia platformy Azure. Możesz też wdrażać zadania usługi Stream Analytics przy użyciu witryny Azure Portal i programu Visual Studio.

Aby dowiedzieć się więcej o konfigurowaniu innych źródeł danych wejściowych i wykonywaniu wykrywania w czasie rzeczywistym, zapoznaj się z następującym artykułem: