Freigeben über


Schnellstart: Erstellen eines Stream Analytics-Auftrags mithilfe von Visual Studio Code

In dieser Schnellstartanleitung erstellen, ausführen und übermitteln Sie einen Azure Stream Analytics (ASA)-Auftrag mithilfe der ASA Tools-Erweiterung für Visual Studio Code auf Ihrem lokalen Computer. 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 Ost, China Nord, Deutschland Mittel und 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 Erweiterung ASA Tools meldet Sie automatisch an, wenn Sie VS Code öffnen. Wenn Ihr Konto über eine zweistufige Authentifizierung verfügt, verwenden Sie die Telefonauthentifizierung, anstatt eine PIN zu verwenden. Um sich bei Ihrem Azure-Konto abzumelden, drücken Sie Ctrl + Shift + P, und geben Sie Azure: Sign Out ein.

Vorbereiten der Eingabedaten

Bereiten Sie vor dem Definieren des Stream Analytics-Auftrags die Eingabedaten vor. Die Lösung erfasst die Echtzeitsensordaten in IoT Hub, die Sie später als Auftragseingabe konfigurieren. 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" aus. Auf der Seite Ressource erstellen wählen Sie Internet der Dinge>IoT Hub aus.

    Screenshot: IoT Hub-Menü auf der Seite „Ressource erstellen“

  3. Führen Sie auf der Seite IoT Hub die folgenden Schritte aus:

    1. Wählen Sie für Abonnement Ihr Azure-Abonnement aus.
    2. Wählen Sie für Ressourcengruppe eine bestehende Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe.
    3. Geben Sie für IoT Hub-Name einen Namen für Ihren IoT Hub ein.
    4. Wählen Sie für Region die Region aus, die Ihnen am nächsten liegt.
    5. Wählen Sie für StufeKostenlos aus, wenn es weiterhin in Ihrem Abonnement verfügbar ist. Weitere Informationen finden Sie unter IoT Hub – Preise.
    6. Behalten Sie für Tägliches Nachrichtenlimit den Standardwert bei.
    7. Wählen Sie "Weiter" aus: Netzwerk am unteren Rand der Seite.

    Screenshot der Seite des IoT-Hubs zur Erstellung.

  4. Klicken Sie auf Überprüfen + erstellen. Überprüfen Sie Ihre IoT Hub-Informationen, und wählen Sie "Erstellen" aus. Es kann einige Minuten dauern, bis Ihr IoT Hub erstellt wird. Sie können den Fortschritt im Bereich "Benachrichtigungen" überwachen.

  5. Nachdem die Ressource (IoT Hub) erstellt wurde, wählen Sie "Zur Ressource wechseln " aus, um zur IoT Hub-Seite zu wechseln.

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

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

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

    Screenshot der Seite

  8. Nachdem Sie das Gerät erstellt haben, wird das Gerät in der IoT-Geräteliste angezeigt. Wählen Sie die Schaltfläche Aktualisieren auf der Seite aus, wenn Sie es nicht sehen.

    Screenshot: Liste der Geräte

  9. Wählen Sie in der Liste Ihr Gerät aus.

  10. Wählen Sie auf der Geräteseite die Schaltfläche „Kopieren“ neben Primäre Verbindungszeichenfolge aus, und speichern Sie die Kopie in einem Editor, um sie später zu verwenden.

    Screenshot: Schaltfläche „Kopieren“ neben der Geräteverbindungszeichenfolge

Ausführen des IoT-Simulators

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

  2. Ersetzen Sie den Platzhalter in Zeile 15 durch die Azure IoT Hub-Geräteverbindungszeichenfolge, die Sie in einem vorherigen Abschnitt gespeichert haben.

  3. Klicken Sie auf Ausführen. Die Ausgabe zeigt die Sensordaten und Nachrichten, die an Ihren IoT Hub gesendet werden.

    Screenshot: Seite „Raspberry Pi-Azure IoT-Onlinesimulator“ mit der Beispielabfrage

    Wichtig

    Wählen Sie nach ein paar Minuten Zurücksetzen aus, um die Verbindungszeichenfolge zurückzusetzen.

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 der Container-Seite.

  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. Wählen Sie in Visual Studio Code "Befehlspalette anzeigen>" aus, 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. Visual Studio Code fügt Ihrem Arbeitsbereich ein ASA-Projekt hinzu. 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

    Wenn Sie Eingaben und Ausgaben aus der Befehlspalette hinzufügen, werden die entsprechenden Pfade automatisch zu 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 die Eingaben und Ausgaben an einer zentralen Stelle platzieren und dann in verschiedenen Aufträgen referenzieren, indem Sie die Pfade in jeder asaproj.json Datei 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 zeigt die 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ü die Option Aus Azure-Abonnements auswählen aus, und drücken Sie dann die EINGABETASTE.

  4. Geben Sie Eingabe für den Namen ein, und drücken Sie dann die EINGABETASTE.

  5. Unter dem Ordner "Eingaben " wird eine Input.json Datei erstellt.

  6. Bestätigen in der JSON-Datei, dass Eingabe als Name angegeben ist.

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

    Screenshot des JSON-Editors mit dem Link „Auswahl aus Ihren Abonnements“.

  8. Wählen Sie im JSON-Editor IoT Hub auswählen und dann den von Ihnen erstellten IoT-Hub aus.

    Screenshot des JSON-Editors mit dem Link „IoT Hub auswählen“.

  9. Standardmäßig sollte SharedAccessPolicyName auf iothubowner festgelegt sein. Wenn dies nicht der Fall ist, wählen Sie den Link Gemeinsamen Zugriffsrichtliniennamen auswählen aus, und wählen Sie dann iothubowner aus der Dropdown-Liste aus.

  10. Der Wert SharedAccessPolicyKey sollte automatisch festgelegt werden.

  11. 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 Sie die Auftragsausgabe

  1. Klicken Sie im Explorer mit der rechten Maustaste auf Ausgaben, und wählen Sie ASA: Ausgabe hinzufügen aus.
  2. Wählen Sie Data Lake Storage Gen2/Blob Storage für den Sink-Typ in der Drop-Down-Liste.
  3. Wählen Sie "Aus Azure-Abonnements auswählen" aus.
  4. Geben Sie Ausgabe als Aliasname ein und drücken Sie die Eingabetaste. Dieser Ausgabename wird für die INTO-Anweisung in der Abfrage verwendet.
  5. Wählen Sie im JSON-Editor für Output.jsondie Option "Aus Ihren Abonnements auswählen" und dann Ihr Azure-Abonnement mit dem Azure Storage-Konto aus.
  6. 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.
  7. Wenn Sie den Containernamen ändern müssen, wählen Sie Container auswählen und dann den von Ihnen erstellten Blob-Container aus.

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

Kompilieren des Skripts und Übermitteln des Skripts an Azure

Die Skriptkompilierung überprüft die Syntax und generiert die Azure Resource Manager-Vorlagen für die automatische Bereitstellung.

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

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

  2. Nach der Kompilierung wird ein Ordner Deploy mit zwei Azure Resource Manager-Vorlagen unter Ihrem Projekt angezeigt. Diese zwei Dateien werden für die automatische Bereitstellung verwendet.

    Screenshot der generierten Bereitstellungsvorlagen im Projektordner.

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

    Screenshot der Schaltfläche

  4. Führen Sie im Fenster Übermitteln die folgenden Schritte aus:

    1. Wählen Sie Ihr Azure- Abonnementaus.

    2. Wählen Sie eine Azure-Ressourcengruppe aus.

    3. Wählen Sie die Region aus, in der Sie den Stream Analytics-Auftrag erstellen möchten.

    4. Klicken Sie dann auf Senden.

      Screenshot der Übermittlungsoptionen.

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

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.

    Screenshot der Schaltfläche

  2. Wählen Sie im Fenster Streamingauftrag starten die Option OK aus. Dieser Vorgang kann einige Minuten dauern.

    Screenshot des Fensters

  3. Wenn Ihr Auftrag erfolgreich gestartet wird, ändert sich der Auftragsstatus in " Ausführen". Sie sehen ein logisches Diagramm, das zeigt, wie Ihr ASA-Auftrag ausgeführt wird.

    Screenshot des Laufstatus des Jobs in VS Code.

  4. Um die Ausgabeergebnisse anzuzeigen, öffnen Sie den BLOB-Speicher in der Visual Studio Code-Erweiterung oder im Azure-Portal.

    Screenshot der Ausgabedatei im Blob-Container.

    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

Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe, den Stream Analytics-Auftrag und alle zugehörigen Ressourcen. Durch das Löschen des Auftrags wird die Rechnungsstellung für die Streaming-Einheiten gestoppt, die der Auftrag verbraucht. Wenn Sie beabsichtigen, den Auftrag in Zukunft zu verwenden, 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: