Schnellstart: Erstellen eines Stream Analytics-Auftrags mit Visual Studio Code
In diesem Schnellstart erstellen Sie mithilfe der ASA-Tools-Erweiterung für Visual Studio Code auf Ihrem lokalen Computer einen Azure Stream Analytics (ASA)-Auftrag, führen ihn aus und übermitteln ihn. Sie lernen, einen ASA-Auftrag zu erstellen, der Echtzeitstreamingdaten aus IoT Hub liest und Ereignisse mit einer Temperatur von mehr als 27 °C filtert. Die Ausgabeergebnisse werden an eine Datei im Blobspeicher gesendet. Die in dieser Schnellstartanleitung verwendeten Eingabedaten werden von einem Raspberry Pi-Onlinesimulator generiert.
Hinweis
Visual Studio Code Tools unterstützen keine Aufträge in den Regionen „China, Osten“, „China, Norden“, „Deutschland, Mitte“ oder „Deutschland, Nordosten“.
Voraussetzungen
- Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
- Visual Studio Code
Installieren der Azure Stream Analytics-Tools-Erweiterung
Öffnen Sie Visual Studio Code (VS Code).
Suchen Sie im linken Bereich unter Erweiterungen nach Stream Analytics, und wählen Sie in der Azure Stream Analytics-Tools-Erweiterung Installieren aus.
Wählen Sie nach der Installation das Azure-Symbol auf der Aktivitätsleiste aus, und melden Sie sich bei Azure an.
Sobald Sie angemeldet sind, werden die Abonnements unter Ihrem Azure-Konto angezeigt.
Hinweis
Die ASA-Tools-Erweiterung meldet Sie automatisch bei jedem Öffnen von VS Code an. Wenn Ihr Konto über zweistufige Authentifizierung verfügt, empfehlen wir anstelle einer PIN die Verwendung der Telefonauthentifizierung. Um sich bei Ihrem Azure-Konto abzumelden, drücken Sie Ctrl + Shift + P
, und geben Sie Azure: Sign Out
ein.
Ausführen des IoT-Simulators
Öffnen Sie den Raspberry Pi-Azure IoT-Onlinesimulator.
Ersetzen Sie den Platzhalter in Zeile 15 durch die zuvor gespeicherte Verbindungszeichenfolge für das Azure IoT Hub-Gerät.
Klicken Sie auf Run (Ausführen). In der Ausgabe sollten nun die Sensordaten und -nachrichten angezeigt werden, die an Ihre IoT Hub-Instanz gesendet werden.
Wichtig
Wählen Sie nach ein paar Minuten Zurücksetzen aus, um die Verbindungszeichenfolge zurückzusetzen.
Erstellen eines Blobspeichers
Wählen Sie in der linken oberen Ecke des Azure-Portals Ressource erstellen>Speicher>Speicherkonto aus.
Geben Sie im Bereich Speicherkonto erstellen einen Speicherkontonamen, den Standort und die Ressourcengruppe ein. Wählen Sie den gleichen Speicherort und die gleiche Ressourcengruppe wie für die von Ihnen erstellte IoT Hub-Instanz aus. Wählen Sie dann Überprüfen und Erstellen aus, um das Speicherkonto zu erstellen.
Wählen Sie auf der Seite Speicherkonto im linken Menü die Option Container und dann die Option + Container in der Befehlsleiste aus.
Geben Sie auf der Seite Neuer Container einen Namen für Ihren Container ein, belassen Sie die öffentliche Zugriffsstufe auf Privat (kein anonymer Zugriff), und wählen Sie OK aus.
Erstellen eines Stream Analytics-Projekts
Drücken Sie in Visual Studio Code STRG+UMSCHALT+P, und geben Sie ASA: Neues Projekt erstellen ein.
Geben Sie Ihren Projektnamen ein, z. B. myASAproj, und wählen Sie einen Ordner für Ihr Projekt aus.
Ihrem Arbeitsbereich wird ein ASA-Projekt hinzugefügt. Es besteht aus drei Ordnern: Inputs (Eingagen), Outputs (Ausgaben) und Functions (Funktionen). Es verfügt außerdem über das Abfrageskript (*.asaql) , eine JobConfig.json-Datei, und eine asaproj.json-Konfigurationsdatei.
Die asaproj.json-Datei enthält die Eingaben, Ausgaben und Auftragskonfigurationseinstellungen, die für die Übermittlung des Stream Analytics-Auftrags an Azure erforderlich sind.
Hinweis
Beim Hinzufügen von Eingaben und Ausgaben aus der Befehlspalette werden die entsprechenden Pfade automatisch asaproj.json hinzugefügt. Wenn Sie Eingaben oder Ausgaben direkt auf einem Datenträger hinzufügen oder entfernen, müssen Sie sie manuell zu asaproj.json hinzufügen bzw. aus ihr entfernen. Sie können sich auch entscheiden, die Eingaben und Ausgaben an einem Ort zu versammeln und dann in verschiedenen Aufträgen auf sie verweisen, indem Sie in jeder asaproj.json-Datei die Pfade angeben.
Definieren der Transformationsabfrage
Öffnen Sie die Datei myASAproj.asaql, und fügen Sie die folgende Abfrage hinzu:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Konfigurieren einer Auftragseingabe
Klicken Sie im Stream Analytics-Projekt mit der rechten Maustaste auf den Ordner Inputs. Wählen Sie anschließend ASA: Eingabe hinzufügen im Kontextmenü aus.
Oder drücken Sie alternativ STRG+UMSCHALT+P, um die Befehlspalette zu öffnen, und geben Sie ASA: Eingabe hinzufügen ein.
Wählen Sie als Eingabetyp IoT Hub aus.
Wählen Sie im Dropdownmenü die Option Aus Azure-Abonnements auswählen aus, und drücken Sie dann die EINGABETASTE.
Geben Sie Eingabe für den Namen ein, und drücken Sie dann die EINGABETASTE.
Unter dem Ordner Inputs (Eingaben) wird eine Datei IoTHub1.json erstellt.
Bestätigen in der JSON-Datei, dass Eingabe für Name angegeben ist.
Wählen Sie im JSON-Editor für Input.json die Option Aus Ihren Abonnements auswählen und dann Ihr Azure-Abonnement mit dem IoT-Hub aus.
Wählen Sie im JSON-Editor IoT Hub auswählen und dann den von Ihnen erstellten IoT-Hub aus.
Standardmäßig sollte
SharedAccessPolicyName
aufiothubowner
festgelegt sein. Wenn dies nicht der Fall ist, wählen Sie den Link Name einer SAS-Richtlinie auswählen aus, und wählen Sie dann Iothubowner aus der Dropdownliste aus.Der Wert
SharedAccessPolicyKey
sollte automatisch festgelegt werden.Wählen Sie Vorschau von Daten anzeigen aus, um festzustellen, ob die Eingabedaten für Ihren Auftrag erfolgreich konfiguriert wurden. Hierdurch wird ein Beispiel Ihres IoT Hubs abgerufen und im Vorschaufenster angezeigt.
Konfigurieren der Auftragsausgabe
- Klicken Sie im Explorer mit der rechten Maustaste auf Ausgaben, und wählen Sie ASA: Ausgabe hinzufügen aus.
- Wählen Sie Data Lake Storage Gen2/Blob Storage für den Senketyp in der Dropdownliste aus.
- Wählen Sie Aus Azure-Abonnements auswählen
- Geben Sie Ausgabe für den Namen des Alias ein, und drücken Sie die EINGABETASTE. Dieser Ausgabename wird für die INTO-Anweisung in der Abfrage verwendet.
- Wählen Sie im JSON-Editor fürOutput.json die Option Aus Ihren Abonnements auswählen und dann Ihr Azure-Abonnement mit dem Azure Storage-Konto aus
- Wenn Sie das automatisch ausgefüllte Speicherkonto ändern müssen, wählen Sie Speicherkonto auswählen und dann Ihr Azure Storage-Konto aus. Speicherkontonamen werden automatisch erkannt, wenn sie im gleichen Abonnement erstellt werden.
- Wenn Sie den Containernamen ändern müssen, wählen Sie Container auswählen und dann den von Ihnen erstellten Blob-Container aus.
Kompilieren des Skripts und Übermitteln an Azure
Die Skriptkompilierung überprüft die Syntax und generiert die Azure Resource Manager-Vorlagen für die automatische Bereitstellung.
Klicken Sie im Explorer-Fenster mit der rechten Maustaste auf die Skriptdatei, zeigen Sie auf ASA: Kompilierungsskript, und wählen Sie dann ASA: ARM-Vorlage V2 (empfohlen) aus.
Nach der Kompilierung wird unter Ihrem Projekt ein Ordner Deploy (Bereitstellen) mit zwei Azure Resource Manager-Vorlagen angezeigt. Diese zwei Dateien werden für die automatische Bereitstellung verwendet.
Wählen Sie im Abfrage-Editor An Azure übermitteln aus.
Führen Sie im Fenster Übermitteln die folgenden Schritte aus:
Wählen Sie Ihr Azure- Abonnementaus.
Wählen Sie eine Azure-Ressourcengruppe aus.
Wählen Sie die Region aus, in der Sie den Stream Analytics-Auftrag erstellen möchten.
Klicken Sie dann auf Senden.
Wählen Sie In Azure veröffentlichen aus, und schließen Sie den Vorgang ab. Warten Sie, bis eine neue Registerkarte Cloudauftragsansicht mit dem Status Ihres Auftrags geöffnet wird.
Starten des Stream Analytics-Auftrags und Überprüfen der Ausgabe
Wählen Sie auf der Registerkarte Cloudauftragsansicht die Option Starten aus, um Ihren Auftrag in der Cloud auszuführen.
Wählen Sie im Fenster Streamingauftrag starten die Option OK aus. Dieser Vorgang kann einige Minuten dauern.
Wenn Ihr Auftrag erfolgreich gestartet wird, wird der Auftragsstatus in Wird ausgeführt geändert. Sie sehen ein logisches Diagramm, das zeigt, wie Ihr ASA-Auftrag ausgeführt wird.
Um die Ausgabeergebnisse anzuzeigen, können Sie den Blobspeicher in der Visual Studio Code-Erweiterung oder im Azure-Portal öffnen.
Laden Sie die Datei herunter und öffnen Sie sie, um die Ausgabe anzuzeigen.
{"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}} {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}} {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}} {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}} {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}} {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}} {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}} {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}} {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}} {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}} {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
Bereinigen von Ressourcen
Löschen Sie die Ressourcengruppe, den Stream Analytics-Auftrag und alle dazugehörigen Ressourcen, wenn Sie sie nicht mehr benötigen. Durch das Löschen des Auftrags verhindern Sie, dass Kosten für die vom Auftrag verbrauchten Streamingeinheiten anfallen. Wenn Sie den Auftrag in Zukunft verwenden möchten, können Sie ihn beenden und später bei Bedarf neu starten. Wenn Sie diesen Auftrag nicht mehr verwenden möchten, löschen Sie alle Ressourcen, die im Rahmen dieser Schnellstartanleitung erstellt wurden:
Wählen Sie im Azure-Portal im Menü auf der linken Seite Ressourcengruppen und dann den Namen der erstellten Ressource aus.
Wählen Sie auf der Ressourcengruppenseite die Option Löschen aus. Geben Sie den Namen der zu löschenden Ressourcengruppe in das Textfeld ein, und wählen Sie dann Löschen aus.
Nächste Schritte
Weitere Informationen zur ASA-Tools-Erweiterung für Visual Studio Code finden Sie in den folgenden Artikeln: