Schnellstart: Erstellen eines Stream Analytics-Auftrags mit Visual Studio Code

In dieser Schnellstartanleitung wird gezeigt, wie Sie mithilfe der ASA-Tools-Erweiterung für Visual Studio Code auf Ihrem lokalen Computer einen Azure Stream Analytics (ASA)-Auftrag erstellen, ausführen und übermitteln. 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

Installieren der Azure Stream Analytics-Tools-Erweiterung

  1. Öffnen Sie Visual Studio Code (VS Code).

  2. Suchen Sie im linken Bereich unter Erweiterungen nach Stream Analytics, und wählen Sie in der Azure Stream Analytics-Tools-Erweiterung Installieren aus.

    Screenshot: Seite „Erweiterungen“ von Visual Studio Code mit einer Option zur Installation der Stream Analytics-Erweiterung

  3. Wählen Sie nach der Installation das Azure-Symbol auf der Aktivitätsleiste aus, und melden Sie sich bei Azure an.

    Screenshot: Anmelden bei Azure

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

Vorbereiten der Eingabedaten

Vor dem Definieren des Stream Analytics-Auftrags sollten Sie die Eingabedaten vorbereiten. Die Echtzeit-Sensordaten werden an IoT-Hub übertragen; IoT-Hub wird später als Auftragseingabe konfiguriert. Führen Sie die folgenden Schritte aus, um die für den Auftrag erforderlichen Eingabedaten vorzubereiten:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie Ressource erstellen > Internet der Dinge > IoT Hub aus.

    Screenshot: Seite „Ressource erstellen“ für IoT Hub

  3. Geben Sie auf der Seite IoT Hub die folgenden Informationen ein:

    • Abonnement: Wählen Sie Ihr Azure-Abonnement aus.
    • Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe.
    • IoT Hub-Name: Geben Sie einen Namen für Ihren IoT Hub ein.
    • Region: Wählen Sie die Region aus, die Ihnen am nächsten liegt.

    Screenshot: Seite „IoT Hub“ für die Erstellung

  4. Wechseln Sie zur Seite Verwaltung für Tarif und Skalierung, und wählen Sie F1: Free-Tarif aus, wenn dieser in Ihrem Abonnement noch verfügbar ist. Weitere Informationen finden Sie unter Azure IoT Hub – Preise.

    Screenshot der IoT Hub-Verwaltungsseite.

  5. Klicken Sie auf Überprüfen + erstellen. Überprüfen Sie die Informationen zu IoT Hub, und wählen Sie Erstellen aus. Der Prozess der Bereitstellung Ihres IoT Hubs kann einige Minuten dauern.

  6. Nachdem Ihr IoT Hub erstellt wurde, wählen Sie Zu Ressource wechseln aus, um zur Seite IoT Hub zu navigieren. '

  7. Wählen Sie auf der Seite IoT Hub im linken Menü Geräte und dann + Gerät hinzufügen aus.

    Screenshot: Schaltfläche „Gerät hinzufügen“ auf der Seite „Geräte“

  8. Geben Sie eine Geräte-ID ein, und wählen Sie Speichern aus.

    Screenshot: Seite „Gerät hinzufügen“

  9. Sobald das Gerät erstellt ist, sollten Sie das Gerät in der Liste IoT-Geräte sehen. Wählen Sie die Schaltfläche Aktualisieren auf der Seite aus, wenn Sie es nicht sehen.

    Screenshot: Auswahl des Geräts auf der Seite „Geräte“

  10. Wählen Sie in der Liste Ihr Gerät aus. Kopieren Sie die Primäre Verbindungszeichenfolge, und speichern Sie sie zur späteren Verwendung in einem Editor.

    Screenshot: Primäre Verbindungszeichenfolge des von Ihnen erstellten Geräts

Ausführen des IoT-Simulators

  1. Öffnen Sie den Raspberry Pi-Azure IoT-Onlinesimulator auf einer neuen Browserregisterkarte.

  2. Ersetzen Sie den Platzhalter in Zeile 15 durch die Verbindungszeichenfolge für das IoT Hub-Gerät, die Sie zuvor gespeichert haben.

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

    Screenshot: Raspberry Pi-Azure IoT-Onlinesimulator mit Ausgabe

Erstellen eines Blobspeichers

  1. Wählen Sie in der linken oberen Ecke des Azure-Portals Ressource erstellen>Speicher>Speicherkonto aus.

    Screenshot: Menü „Speicherkonto erstellen“

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

    Screenshot: Seite „Speicherkonto erstellen“

  3. Wählen Sie auf der Seite Speicherkonto im linken Menü die Option Container und dann die Option + Container in der Befehlsleiste aus.

    Screenshot: Seite „Container“

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

    Screenshot: Erstellung einer Blobcontainerseite

Erstellen eines Stream Analytics-Projekts

  1. Drücken Sie in Visual Studio Code STRG+UMSCHALT+P, und geben Sie ASA: Neues Projekt erstellen ein.

    Screenshot: Auswahl von ASA: „Neues Projekt erstellen“ in der Befehlspalette

  2. Geben Sie Ihren Projektnamen ein, z. B. myASAproj, und wählen Sie einen Ordner für Ihr Projekt aus.

    Screenshot: Eingabe eines ASA-Projektnamens

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

    Screenshot: Stream Analytics-Projektdateien in Visual Studio Code

    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

  1. Öffnen Sie die Datei myASAproj.asaql, und fügen Sie die folgende Abfrage hinzu:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Screenshot: Transformationsabfrage

Konfigurieren einer Auftragseingabe

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

    Screenshot: Menü „ASA: Eingabe hinzufügen“ in Visual Studio Code

    Oder drücken Sie alternativ STRG+UMSCHALT+P, um die Befehlspalette zu öffnen, und geben Sie ASA: Eingabe hinzufügen ein.

  2. Wählen Sie als Eingabetyp IoT Hub aus.

    Screenshot: Auswahl Ihres IoT Hubs in der VS Code-Befehlspalette

  3. Wählen Sie im Dropdownmenü ein ASA-Skript *.asaql und Azure-Abonnements aus, und drücken Sie dann die EINGABETASTE.

  4. Unter dem Ordner Inputs (Eingaben) wird eine Datei IoTHub1.json erstellt. Ersetzen Sie Einstellungen durch die folgenden vorgeschlagenen Werte, und behalten Sie die Standardwerte für Felder bei, die hier nicht erwähnt werden.

    Einstellung Empfohlener Wert BESCHREIBUNG
    Name Input (Eingabe) Dieser Eingabename wird für die FROM-Anweisung in der Abfrage verwendet.
    IotHubNamespace spiothub Der Name Ihres IoT-Hubs. Die IoT Hub-Namen werden automatisch erkannt, wenn Sie Aus Ihrem Abonnement auswählen.
    SharedAccessPolicyName iothubowner

    Screenshot der IoT Hub-Konfiguration in VS Code.

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

    Screenshot: Vorschau der Eingabedaten in Ihrem IoT Hub

Konfigurieren der Auftragsausgabe

  1. Drücken Sie STRG+UMSCHALT+P, um die Befehlspalette zu öffnen, und geben Sie ASA: Ausgabe hinzufügen ein.

  2. Wählen Sie Data Lake Storage Gen2/Blob Storage für den Senkentyp aus.

  3. Wählen Sie das Abfrageskript aus, das diese Ausgabe verwendet.

  4. Geben Sie BlobStorage1 als Ausgabedateinamen ein.

  5. Bearbeiten Sie die Einstellungen unter Verwendung der folgenden Werte. Behalten Sie die Standardwerte für Felder bei, die hier nicht aufgeführt sind.

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Name Ausgabe Dieser Ausgabename wird für die INTO-Anweisung in der Abfrage verwendet.
    Speicherkonto spstorageaccount0901 Wählen Sie den Namen Ihres Speicherkontos aus, oder geben Sie ihn ein. Speicherkontonamen werden automatisch erkannt, wenn sie im gleichen Abonnement erstellt werden.
    Container spcontainer Wählen Sie den vorhandenen Container aus, den Sie in Ihrem Speicherkonto erstellt haben.

Screenshot: Konfiguration der Ausgabe für den Stream Analytics-Auftrag

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.

  1. Klicken Sie mit der rechten Maustaste auf das Skript, und wählen Sie ASA: Compile Script ein.

    Screenshot: Kompilierung der Skriptoption aus dem Stream Analytics-Explorer in VS Code

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

    Screenshot: Generierten Vorlagen für die Bereitstellung im Projektordner

  3. Wählen Sie im Abfrage-Editor An Azure übermitteln aus.

    Screenshot der Schaltfläche „Auftrag übermitteln“, um den Stream Analytics-Auftrag an Azure zu übermitteln.

    Befolgen Sie dann die Anweisungen zum Abschließen des Vorgangs: Abonnement auswählen> Auftrag auswählen > Neuen Auftrag erstellen > Auftragsnamen eingeben > Ressourcengruppe und Region auswählen.

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

    Screenshot der Schaltfläche „In Azure veröffentlichen“ in VS Code.

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

  1. Wählen Sie auf der Registerkarte Cloudauftragsansicht die Option Starten aus, um Ihren Auftrag in der Cloud auszuführen. Dieser Vorgang kann einige Minuten dauern.

    Screenshot: Schaltfläche „Auftrag starten“ auf der Seite „Cloudansicht“

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

    Screenshot des Auftragsausführungsstatus in VS Code.

  3. Um die Ausgabeergebnisse anzuzeigen, können Sie den Blobspeicher in der Visual Studio Code-Erweiterung oder im Azure-Portal öffnen.

    Screenshot: Ausgabedatei im Blobcontainer

    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:

  1. Wählen Sie im Azure-Portal im Menü auf der linken Seite Ressourcengruppen und dann den Namen der erstellten Ressource aus.

  2. 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: