Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
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.
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 S1Nachdem 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 $iotHubNameFü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"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 tableAusgabebeispiel:
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.
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 blobRufen 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 $keyVon Bedeutung
Notieren Sie sich den Zugriffsschlüssel für das Azure-Speicherkonto. Sie verwenden diesen Schlüssel später in dieser Schnellstartanleitung.
Erstellen Sie mit dem Befehl
stateeinen 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 KEYmit 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=, lautetxxxxxxxxxxxxxx=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
iotHubNamespaceim folgenden Befehl, wenn Sie einen anderen Namen alsMyASAIoTHubverwendet haben. Führen Sieecho $iotHubNameaus, 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
Öffnen Sie den Raspberry Pi-Azure IoT-Onlinesimulator.
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.
Klicken Sie auf Ausführen. In der Ausgabe sollten nun die Sensordaten und -nachrichten angezeigt werden, die an Ihre IoT Hub-Instanz gesendet werden.
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.
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: