Teilen über


Schnellstart: Erstellen eines Azure Stream Analytics-Auftrags mithilfe der Azure CLI

In dieser Schnellstartanleitung verwenden Sie Azure CLI, um einen Stream Analytics-Auftrag zu definieren, der Echtzeitsensornachrichten mit einem Temperaturwert größer als 27 filtert. Der Stream Analytics-Auftrag liest Daten aus IoT Hub, transformiert die Daten und schreibt die Ausgabedaten in einen Container in einem BLOB-Speicher. Die in dieser Schnellstartanleitung verwendeten Eingabedaten werden von einem Raspberry Pi-Onlinesimulator generiert.

Bevor Sie anfangen

Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.

Voraussetzungen

  • Erstellen Sie eine Ressourcengruppe. Alle Azure-Ressourcen müssen in einer Ressourcengruppe bereitgestellt werden. Mit Ressourcengruppen können verwandte Azure-Ressourcen organisiert und verwaltet werden.

    Erstellen Sie für diesen Schnellstart eine Ressourcengruppe namens streamanalyticsrg am Standort East US mit dem folgenden Befehl az group create:

    az group create --name streamanalyticsrg --location eastus
    

Vorbereiten der Eingabedaten

Bevor Sie den Stream Analytics-Auftrag definieren, bereiten Sie die Daten vor, die für die Eingabe des Auftrags verwendet werden. Die folgenden Azure CLI-Befehle bereiten die eingabedaten vor, die für den Auftrag erforderlich sind.

  1. Erstellen Sie einen IoT Hub mit dem Az iot Hub Create-Befehl . In diesem Beispiel wird eine IoT Hub-Instanz mit dem Namen MyASAIoTHub erstellt. Da IoT Hub-Namen global eindeutig sein müssen, müssen Sie möglicherweise den Namen ändern, wenn er bereits verwendet wird. Legen Sie die SKU auf F1 fest, um den Free-Tarif zu nutzen, sofern dieser für Ihr Abonnement verfügbar ist. Wählen Sie andernfalls den niedrigsten verfügbaren Tarif aus.

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

    Nachdem der IoT-Hub erstellt wurde, rufen Sie die IoT Hub-Verbindungszeichenfolge mit dem Befehl az iot hub connection-string show ab. Kopieren Sie die gesamte Verbindungszeichenfolge, und speichern Sie sie. Sie verwenden ihn beim Hinzufügen des IoT Hub als Eingabe zu Ihrem Stream Analytics-Auftrag.

    az iot hub connection-string show --hub-name $iotHubName
    
  2. Fügen Sie ein Gerät mit dem Az iothub Device Identity Create-Befehl zum IoT Hub hinzu. In diesem Beispiel wird ein Gerät namens MyASAIoTDevice erstellt.

    az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
    
  3. Verwenden Sie den Befehl az iot hub device-identity connection-string show, um die Geräteverbindungszeichenfolge abzurufen. Kopieren Sie die komplette Verbindungszeichenfolge, und speichern Sie sie (Sie benötigen sie, wenn Sie den Raspberry Pi-Simulator erstellen).

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

    Ausgabebeispiel:

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

Erstellen eines Blobspeicherkontos

Die folgenden Azure CLI-Befehle erstellen ein BLOB-Speicherkonto , das für die Auftragsausgabe verwendet wird.

  1. Erstellen Sie ein allgemeines Speicherkonto mit dem Befehl "az storage account create ". Das allgemeine Speicherkonto kann für alle vier Dienste verwendet werden: Blobs, Dateien, Tabellen und Warteschlangen.

    storageAccountName="asatutorialstorage$RANDOM"
    az storage account create \
        --name $storageAccountName \
        --resource-group streamanalyticsrg \
        --location eastus \
        --sku Standard_ZRS \
        --encryption-services blob
    
  2. Rufen Sie den Schlüssel für Ihr Speicherkonto ab, indem Sie den Listenbefehl "az storage account keys" ausführen.

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

    Von Bedeutung

    Notieren Sie sich den Zugriffsschlüssel für das Azure-Speicherkonto. Sie verwenden diesen Schlüssel später in dieser Schnellstartanleitung.

  3. Erstellen Sie mit dem Befehl state einen Container namens zum Speichern von Blobs. Sie verwenden den Speicherkontoschlüssel, um den Vorgang zum Erstellen des Containers zu autorisieren. Weitere Informationen zum Autorisieren von Datenvorgängen mit Azure CLI finden Sie unter Autorisieren des Zugriffs auf Blob- oder Warteschlangendaten mit Azure CLI.

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

Erstellen eines Stream Analytics-Auftrags

Erstellen Sie einen Stream-Analytics-Auftrag mit dem Befehl 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"

Konfigurieren einer Eingabe für den Auftrag

Fügen Sie Ihrem Auftrag eine Eingabe hinzu, indem Sie das Cmdlet az stream-analytics input verwenden. Dieses Cmdlet verwendet den Auftragsnamen, den Auftragseingabenamen, den Ressourcengruppennamen und die Eingabeeigenschaften im JSON-Format als Parameter. In diesem Beispiel erstellen Sie einen IoT-Hub als Eingabe.

Von Bedeutung

  • Ersetzen Sie IOT HUB ACCESS KEY mit dem Wert von Shared Access Key in der gespeicherten IOT Hub-Verbindungszeichenfolge. Wenn z. B. die IOT Hub-Verbindungszeichenfolge lautet: HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, lautet xxxxxxxxxxxxxx=der Wert für den Shared Access Key . Stellen Sie beim Ersetzen des Werts sicher, dass Sie kein \ (Escape-)Zeichen für " (doppelte Anführungszeichen) löschen.
  • Aktualisieren Sie den Wert von iotHubNamespace im folgenden Befehl, wenn Sie einen anderen Namen als MyASAIoTHub verwendet haben. Führen Sie echo $iotHubName aus, um den Namen Ihres IoT-Hubs anzuzeigen.
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"

Konfigurieren einer Ausgabe für den Auftrag

Fügen Sie eine Ausgabe zu Ihrem Job hinzu, indem Sie das Cmdlet az stream-analytics output create verwenden. Dieses Cmdlet verwendet den Auftragsnamen, den Auftragsausgabenamen, den Ressourcengruppennamen, die Datenquelle im JSON-Format und den Serialisierungstyp als Parameter.

Von Bedeutung

Ersetzen Sie den STORAGEACCOUNTNAME> Namen Ihres Azure Storage-Kontos und STORAGEACCESSKEY> durch den Zugriffsschlüssel für Ihr Speicherkonto. Wenn Sie diese Werte nicht notiert haben, führen Sie die folgenden Befehle aus, um sie abzurufen: echo $storageAccountName und echo $key. Stellen Sie beim Ersetzen der Werte sicher, dass Sie kein \ (Escape-)Zeichen für " (doppelte Anführungszeichen) löschen.

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

Definieren der Transformationsabfrage

Fügen Sie Ihrem Auftrag eine Transformation hinzu, indem Sie das Cmdlet az stream-analytics transformation create verwenden.

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"

Ausführen des IoT-Simulators

  1. Öffnen Sie den Raspberry Pi-Azure IoT-Onlinesimulator.

  2. Ersetzen Sie den Platzhalter in Zeile 15 durch die gesamte Azure IoT Hub Device-Verbindungszeichenfolge (nicht IoT Hub-Verbindungszeichenfolge), die Sie am Anfang des Schnellstarts gespeichert haben.

  3. Klicken Sie auf Ausführen. In der Ausgabe sollten nun die Sensordaten und -nachrichten angezeigt werden, die an Ihre IoT Hub-Instanz gesendet werden.

    Raspberry Pi Azure IoT Online Simulator

Starten des Stream Analytics-Auftrags und Überprüfen der Ausgabe

Starten Sie den Auftrag mithilfe des Cmdlets az stream-analytics job start. Dieses Cmdlet übernimmt den Auftragsnamen, den Ressourcengruppennamen, den Ausgabestartmodus und die Startzeit als Parameter. OutputStartMode akzeptiert die Werte JobStartTime, CustomTime und LastOutputEventTime.

Nach der Ausführung des folgenden Cmdlets wird als Ausgabe True zurückgegeben, wenn der Auftrag gestartet wird.

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

Warten Sie ein paar Minuten und überprüfen Sie dann, ob die Ausgabedatei im state BLOB-Container erstellt wurde.

Screenshot: Ausgabedatei im Status-Blobcontainer

Laden Sie die Datei herunter, und öffnen Sie sie, um mehrere Einträge wie die folgende anzuzeigen:

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

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe, die alle Ressourcen in der Ressourcengruppe einschließlich Stream Analytics-Auftrag, IoT Hub und Azure Storage-Konto löscht.

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

Nächste Schritte

In dieser Schnellstartanleitung haben Sie einen einfachen Stream Analytics-Auftrag mit Azure CLI bereitgestellt. Stream Analytics-Aufträge können auch mit dem Azure-Portal und Visual Studio bereitgestellt werden.

Wenn Sie Informationen zum Konfigurieren anderer Eingabequellen sowie zum Ausführen der Echtzeiterkennung benötigen, lesen Sie den folgenden Artikel: