Freigeben über


Schnellstart: Konfigurieren Ihrer Cluster

Wichtig

Die von Azure Arc unterstützte Vorschauversion von „Azure IoT Einsatz“ befindet sich derzeit in der Vorschauphase. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Installation von Azure IoT Einsatz bereitstellen, sobald eine allgemein verfügbare Version verfügbar ist. Sie werden kein Upgrade für eine Preview-Installation durchführen können.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

In dieser Schnellstartanleitung konfigurieren Sie die folgenden Ressourcen in Ihrem Azure IoT Operations Preview-Cluster:

  • Ein Asset-Endpunkt, der eine Verbindung mit einem simulierten OPC PLC-Server definiert, der einen Ofen in einer Bäckerei simuliert.
  • Ein Asset, das den Ofen darstellt, und die Datenpunkte definiert, die der Ofen verfügbar macht.
  • Ein Datenfluss, der die Nachrichten aus dem simulierten Ofen bearbeitet.

Eine Ressource ist ein physisches Gerät oder eine logische Entität, die ein Gerät, einen Computer, ein System oder einen Prozess darstellt. Ein physisches Objekt könnte beispielsweise eine Pumpe, ein Motor, ein Tank oder eine Produktionslinie sein. Eine von Ihnen definierte logische Ressource kann Eigenschaften, Stream-Telemetrie oder Ereignisse generieren.

OPC UA-Server sind Softwareanwendungen, die mit Ressourcen kommunizieren. OPC UA-Tags sind Datenpunkte, die OPC UA-Server verfügbar machen. OPC UA-Tags können Echtzeit- oder Verlaufsdaten über den Status, die Leistung, die Qualität oder den Zustand von Ressourcen bereitstellen.

In dieser Schnellstartanleitung verwenden Sie eine Bicep-Datei, um Ihre Azure IoT Operations-Instanz zu konfigurieren.

Voraussetzungen

Sie haben eine Instanz von Azure IoT Operations Preview in einem Kubernetes-Cluster bereitgestellt. Das Dokument Schnellstart: Ausführen der Azure IoT Operations Preview in GitHub Codespaces mit K3s enthält einfache Anweisungen zum Bereitstellen einer Azure IoT Operations-Instanz, die Sie für die Schnellstarts verwenden können.

Sofern nicht anders angegeben, können Sie die Konsolenbefehle in dieser Schnellstartanleitung entweder in einer Bash- oder PowerShell-Umgebung ausführen.

Welches Problem werden wir lösen?

Die Daten, die OPC UA-Server verfügbar machen, können eine komplexe Struktur aufweisen und schwer zu verstehen sein. Azure IoT Operations bietet eine Möglichkeit, OPC UA-Ressourcen als Tags, Ereignisse und Eigenschaften zu modellieren. Diese Modellierung erleichtert das Verständnis der Daten und deren Verwendung in nachgelagerten Prozessen wie dem MQTT-Broker und in Dataflows. Mit Datenflüssen können Sie Daten bearbeiten und an Clouddienste wie Azure Event Hubs weiterleiten. In diesem Schnellstart ändert der Datenfluss die Namen einiger Felder in der Payload und fügt den Nachrichten eine Asset-ID hinzu.

Bereitstellen des OPC PLC-Simulators

Dieser Schnellstart verwendet den OPC PLC-Simulator, um Beispieldaten zu generieren. Um den OPC PLG-Simulator bereitzustellen, führen Sie den folgenden Befehl aus:

kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/opc-plc-deployment.yaml

Das folgende Codeschnipsel zeigt die YAML-Datei, die Sie angewendet haben:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: opc-plc-000000
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/component: opcplc-000000
  template:
    metadata:
      labels:
        app.kubernetes.io/component: opcplc-000000
    spec:
      containers:
      - name: opc-plc
        image: mcr.microsoft.com/iotedge/opc-plc:latest
        args:
          - "--ph=opcplc-000000"
          - "--cdn=opcplc-000000"
          - "--ut"
          - "--sn=25"
          - "--sr=10"
          - "--fn=2000"
          - "--veryfastrate=1000"
          - "--gn=5"
          - "--pn=50000"
          - "--maxsessioncount=100"
          - "--maxsubscriptioncount=100"
          - "--maxqueuedrequestcount=2000"
          - "--ses"
          - "--alm"
          - "--at=FlatDirectory"
          - "--drurs"
          - "--ll-debug"
          - "--nodesfile"
          - "/app/config/nodesfile.json"
        ports:
        - containerPort: 50000
        volumeMounts:
          - name: opc-plc-default-application-cert
            mountPath: /app/pki/own
          - name: opc-plc-trust-list
            mountPath: /app/pki/trusted
          - name: config-volume
            mountPath: /app/config
      volumes:
        - name: opc-plc-default-application-cert
          secret:
            secretName: opc-plc-default-application-cert
        - name: opc-plc-trust-list
          secret:
            secretName: opc-plc-trust-list
        - name: config-volume
          configMap:
            name: opc-plc-config
      serviceAccountName: opcplc-000000-service-account
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: opc-plc-config
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
data:
  nodesfile.json: |
    {
      "Folder": "MyTelemetry",
      "NodeList": [
        {
          "NodeId": "ns=3;s=FastUInt100",
          "Name": "Fryer Temperature",
          "DataType": "Double",
          "ValueRank": -1,
          "AccessLevel": "CurrentReadOrWrite",
          "Description": "Fryer Temperature with spikes",
          "Anomaly": "Spike",
          "MinValue": 150.0,
          "MaxValue": 200.0          
        }
      ]
    }
---
apiVersion: v1
kind: Service
metadata:
  name: opcplc-000000
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  type: ClusterIP
  selector:
    app.kubernetes.io/component: opcplc-000000
  ports:
    - port: 50000
      protocol: TCP
      targetPort: 50000
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: opc-plc-self-signed-issuer
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: opc-plc-default-application-cert
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  secretName: opc-plc-default-application-cert
  duration: 2160h # 90d
  renewBefore: 360h # 15d
  issuerRef:
    name: opc-plc-self-signed-issuer
    kind: Issuer
  commonName: OpcPlc
  dnsNames:
    - opcplc-000000
    - opcplc-000000.azure-iot-operations.svc.cluster.local
    - opcplc-000000.azure-iot-operations
  uris:
    - urn:OpcPlc:opcplc-000000
  usages:
    - digital signature
    - key encipherment
    - data encipherment
    - server auth
    - client auth
  privateKey:
    algorithm: RSA
    size: 2048
  encodeUsagesInRequest: true
  isCA: false
---
apiVersion: v1
kind: Secret
metadata:
  name: opc-plc-trust-list
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
data: {}
---
apiVersion: batch/v1
kind: Job
metadata:
  name: opcplc-000000-execute-mutual-trust
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
spec:
  backoffLimit: 1
  template:
    spec:
      containers:
      - name: kubectl
        image: mcr.microsoft.com/oss/kubernetes/kubectl:v1.27.1
        imagePullPolicy: Always
        command: ["/bin/sh"]
        args: ["/scripts/execute-commands.sh"]
        volumeMounts:
        - name: scripts
          mountPath: /scripts
          readOnly: true
      restartPolicy: Never
      serviceAccountName: opcplc-000000-service-account
      volumes:
      - name: scripts
        configMap:
          name: opcplc-000000-execute-commands-script
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: opcplc-000000-execute-commands-script
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
data:
  execute-commands.sh: |
    #!/bin/sh

    # wait 20 seconds for the resources to be created
    sleep 20

    # Extract the OPC UA connector application instance certificate and add it to the OPC PLC trust list
    cert=$(kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d)
    data=$(kubectl create secret generic temp --from-literal=opcuabroker.crt="$cert" --dry-run=client -o jsonpath='{.data}')
    kubectl patch secret opc-plc-trust-list -n azure-iot-operations -p "{\"data\": $data}"

    # Extract the OPC PLC application instance certificate and add it to the OPC UA connector trust list
    cert=$(kubectl -n azure-iot-operations get secret opc-plc-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d)
    data=$(kubectl create secret generic temp --from-literal=opcplc-000000.crt="$cert" --dry-run=client -o jsonpath='{.data}')
    kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{\"data\": $data}"
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: opcplc-000000-service-account
  namespace: azure-iot-operations
  labels:
    app.kubernetes.io/component: opcplc-000000
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: opc-plc-000000-secret-access-role
  namespace: azure-iot-operations
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: opc-plc-000000-secret-access-rolebinding
  namespace: azure-iot-operations
subjects:
- kind: ServiceAccount
  name: opcplc-000000-service-account
  namespace: azure-iot-operations
roleRef:
  kind: Role
  name: opc-plc-000000-secret-access-role
  apiGroup: rbac.authorization.k8s.io

Achtung

Diese Konfiguration verwendet ein selbstsigniertes Anwendungsinstanzzertifikat. Verwenden Sie diese Konfiguration nicht in einer Produktionsumgebung. Weitere Informationen finden Sie unter Konfigurieren der OPC UA-Zertifikatinfrastruktur für den Anschluss für OPC UA.


Festlegen Ihrer Umgebungsvariablen

Wenn Sie die Codespaces-Umgebung verwenden, sind die erforderlichen Umgebungsvariablen bereits festgelegt, und Sie können diesen Schritt überspringen. Legen Sie andernfalls die folgenden Umgebungsvariablen in Ihrer Shell fest:

# Your subscription ID
SUBSCRIPTION_ID=<subscription-id>

# The name of the resource group where your Kubernetes cluster is deployed
RESOURCE_GROUP=<resource-group-name>

# The name of your Kubernetes cluster
CLUSTER_NAME=<kubernetes-cluster-name>

Konfigurieren des Clusters

Führen Sie die folgenden Befehle aus, um die Bicep-Datei herunterzuladen und auszuführen, die Ihre Azure IoT Operations-Instanz konfiguriert. Die Bicep-Datei:

  • Fügt einen Asset-Endpunkt hinzu, der eine Verbindung mit dem OPC PLC-Simulator herstellt.
  • Fügt ein Asset hinzu, das den Ofen darstellt, und die Datenpunkte definiert, die der Ofen verfügbar macht.
  • Fügt einen Datenfluss hinzu, der die Nachrichten aus dem simulierten Ofen bearbeitet.
  • Erstellt eine Azure Event Hubs-Instanz, um die Daten zu empfangen.
wget https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/quickstart.bicep -O quickstart.bicep

AIO_EXTENSION_NAME=$(az k8s-extension list -g $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type connectedClusters --query "[?extensionType == 'microsoft.iotoperations'].id" -o tsv | awk -F'/' '{print $NF}')
AIO_INSTANCE_NAME=$(az iot ops list -g $RESOURCE_GROUP --query "[0].name" -o tsv)
CUSTOM_LOCATION_NAME=$(az iot ops list -g $RESOURCE_GROUP --query "[0].extendedLocation.name" -o tsv | awk -F'/' '{print $NF}')

az deployment group create --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --template-file quickstart.bicep --parameters clusterName=$CLUSTER_NAME customLocationName=$CUSTOM_LOCATION_NAME aioExtensionName=$AIO_EXTENSION_NAME aioInstanceName=$AIO_INSTANCE_NAME

Überprüfen der Konfiguration

Die Bicep-Datei konfiguriert die folgenden Ressourcen:

  • Ein Asset-Endpunkt, der eine Verbindung mit dem OPC PLC-Simulator herstellt.
  • Ein Asset, das den Ofen darstellt, und die Datenpunkte definiert, die der Ofen verfügbar macht.
  • Zwei Datenflüsse, die die Nachrichten aus dem simulierten Ofen verarbeiten.
  • Ein Azure Event Hubs-Namespace, der einen Zielhub für die Datenflüsse enthält.

Um den Asset-Endpunkt, das Asset und die Datenflüsse anzuzeigen, navigieren Sie in Ihrem Browser zur Benutzeroberfläche für die Betriebsabläufe und melden Sie sich mit Ihren Microsoft Entra ID-Anmeldeinformationen an. Da Sie mit einer neuen Bereitstellung arbeiten, gibt es noch keine Websites. Sie finden den Cluster, den Sie in der vorherigen Schnellstartanleitung erstellt haben, indem Sie Nicht zugewiesene Instanzen auswählen. In der Betriebserfahrung stellt eine Instanz einen Cluster dar, in dem Sie Azure IoT Einsatz bereitgestellt haben.

Screenshot in der Betriebsabläufe, der nicht zugewiesene Instanzen zeigt.

Der Asset-Endpunkt definiert die Verbindung mit dem OPC PLC-Simulator:

Screenshot der Betriebsabläufe, der eine Liste von Asset-Endpunkten zeigt.

Das Ofen-Asset definiert die Datenpunkte, die der Ofen verfügbar macht:

Screenshot der Betriebsabläufe, der eine Liste von Assets zeigt.

Die Datenflüsse definieren, wie die Nachrichten vom simulierten Ofen verarbeitet und an Event Hubs in der Cloud weitergeleitet werden:

Screenshot der Betriebsabläufe, der eine Liste von Datenflüssen zeigt.

Der folgende Screenshot zeigt, wie der Datenfluss für die Temperaturumrechnung konfiguriert ist:

Screenshot aus der Betriebserfahrung, der die Berechnung der Temperaturumwandlung zeigt.

Überprüfen, ob Daten an den MQTT-Broker fließen

Überprüfen Sie mit dem Tool mosquitto_sub, ob Daten an den MQTT-Broker fließen. In diesem Beispiel führen Sie das mosquitto_sub-Tool in Ihrem Kubernetes-Cluster aus:

  1. Führen Sie den folgenden Befehl aus, um einen Pod bereitzustellen, der die Tools mosquitto_pub und mosquitto_sub enthält, die für die Interaktion mit dem MQTT-Broker im Cluster nützlich sind:

    kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
    

    Das folgende Codeschnipsel zeigt die YAML-Datei, die Sie angewendet haben:

    # Important: do not use in production environments
    # Creates a pod with mosquitto-clients and mqttui utilities in your cluster
    apiVersion: v1
    kind: Pod
    metadata:
      name: mqtt-client
      # The namespace must match the IoT MQ BrokerListener's namespace
      # Otherwise use the long hostname: aio-broker.azure-iot-operations.svc.cluster.local
      namespace: azure-iot-operations
    spec:
      # Use the "mqtt-client" service account which comes with default deployment
      # Otherwise create it with `kubectl create serviceaccount mqtt-client -n azure-iot-operations`
      serviceAccountName: mqtt-client
      containers:
        # Install mosquitto and mqttui utilities on Alpine linux
      - image: alpine
        name: mqtt-client
        command: ["sh", "-c"]
        args: ["apk add mosquitto-clients mqttui && sleep infinity"]
        resources:
          limits:
            cpu: 500m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: broker-sat
          mountPath: /var/run/secrets/tokens
        - name: trust-bundle
          mountPath: /var/run/certs
      volumes:
      - name: broker-sat
        projected:
          sources:
          - serviceAccountToken:
              path: broker-sat
              audience: aio-internal # Must match audience in BrokerAuthentication
              expirationSeconds: 86400
      - name: trust-bundle
        configMap:
          name: azure-iot-operations-aio-ca-trust-bundle # Default root CA cert
    

    Achtung

    Diese Konfiguration ist nicht sicher. Verwenden Sie diese Konfiguration nicht in einer Produktionsumgebung.

  2. Wenn der mqtt-client-Pod ausgeführt wird, führen Sie den folgenden Befehl aus, um eine Shellumgebung im erstellten Pod zu erstellen:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. Führen Sie auf der Bash-Shell im mqtt-client-Pod den folgenden Befehl aus, um mithilfe des Tools mosquitto_sub, welches das data/thermostat-Thema abonniert hat, eine Verbindung mit dem MQTT-Broker herzustellen:

    mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" -v --debug --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
    

    Dieser Befehl wird weiterhin ausgeführt und zeigt Nachrichten an, sobald sie im data/thermostat-Thema eingehen, bis Sie STRG+C drücken, um ihn zu beenden. Um die Shell-Umgebung zu beenden, geben Sie „exit“ ein.

Um sicherzustellen, ob der von Ihnen hinzugefügte Ofen Daten veröffentlicht, sehen Sie sich die Telemetrie im Thema azure-iot-operations/data an:

Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/oven', ... (152 bytes))
{"temperature":{"SourceTimestamp":"2024-07-29T15:02:17.1858435Z","Value":4558},"Tag 10":{"SourceTimestamp":"2024-07-29T15:02:17.1858869Z","Value":4558}}
Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/oven', ... (152 bytes))
{"temperature":{"SourceTimestamp":"2024-07-29T15:02:18.1838125Z","Value":4559},"Tag 10":{"SourceTimestamp":"2024-07-29T15:02:18.1838523Z","Value":4559}}
Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/oven', ... (152 bytes))
{"temperature":{"SourceTimestamp":"2024-07-29T15:02:19.1834363Z","Value":4560},"Tag 10":{"SourceTimestamp":"2024-07-29T15:02:19.1834879Z","Value":4560}}
Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/oven', ... (152 bytes))
{"temperature":{"SourceTimestamp":"2024-07-29T15:02:20.1861251Z","Value":4561},"Tag 10":{"SourceTimestamp":"2024-07-29T15:02:20.1861709Z","Value":4561}}
Client $server-generated/05a22b94-c5a2-4666-9c62-837431ca6f7e received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/oven', ... (152 bytes))
{"temperature":{"SourceTimestamp":"2024-07-29T15:02:21.1856798Z","Value":4562},"Tag 10":{"SourceTimestamp":"2024-07-29T15:02:21.1857211Z","Value":4562}}

Wenn keine Daten fließen, starten Sie den aio-opc-opc.tcp-1-Pod neu.

  1. Um den Namen ihres aio-opc-opc.tcp-1-Pods zu finden, führen Sie den folgenden Befehl aus:

    kubectl get pods -n azure-iot-operations
    

    Der Name Ihres Pods sieht aus wie aio-opc-opc.tcp-1-849dd78866-vhmz6.

  2. Starten Sie den aio-opc-opc.tcp-1-Pod neu, indem Sie einen Befehl verwenden, der wie das folgende Beispiel aussieht. Verwenden Sie den aio-opc-opc.tcp-1-Pod aus dem vorherigen Schritt:

    kubectl delete pod aio-opc-opc.tcp-1-849dd78866-vhmz6 -n azure-iot-operations
    

Die Beispielressource, die Sie weiter oben in diesem Schnellstart hinzugefügt haben, generiert Nachrichten, die wie im folgenden Beispiel aussehen:

{
   "Temperature":{
      "SourceTimestamp":"2024-11-04T21:30:31.9454188Z",
      "Value":357
   },
   "FillWeight":{
      "SourceTimestamp":"2024-11-04T21:30:31.9455619Z",
      "Value":357
   },
   "EnergyUse":{
      "SourceTimestamp":"2024-11-04T21:30:31.9455641Z",
      "Value":357
   }
}

Überprüfen, ob Daten an Event Hubs fließen

Um zu überprüfen, ob Daten in die Cloud fließen, können Sie Ihre Event Hubs-Instanz im Azure-Portal anzeigen. Möglicherweise müssen Sie mehrere Minuten warten, bis der Datenfluss gestartet wird und Nachrichten an den Event Hub fließen.

Die zuvor von Ihnen angewendete Bicep-Konfiguration hat einen Event-Hubs-Namespace und einen Hub erstellt, die vom Datenfluss als Ziel verwendet werden. Um den Namespace und den Hub anzuzeigen, navigieren Sie im Azure-Portal zu der Ressourcengruppe, die Ihre IoT Operations-Instanz enthält, und wählen Sie dann den Event-Hubs-Namespace aus.

Wenn Nachrichten an die Instanz fließen, können Sie die Anzahl eingehender Nachrichten auf der Seite Übersicht der Instanz sehen:

Screenshot: Seite „Übersicht“ der Event Hubs-Instanz mit eingehenden Nachrichten.

Wenn Nachrichten fließen, können Sie den Daten-Explorer verwenden, um die Nachrichten anzuzeigen:

Screenshot: Seite **Daten-Explorer** der Event Hubs-Instanz.

Tipp

Möglicherweise müssen Sie sich die Rolle Azure Event Hubs-Datenempfänger für den Event Hubs-Namespace zuweisen, um die Nachrichten anzuzeigen.

Wie haben wir das Problem gelöst?

In dieser Schnellstartanleitung haben Sie eine Bizeps-Datei verwendet, um Ihre Azure IoT Operations-Instanz mit einem Asset-Endpunkt, einem Asset und einem Datenfluss zu konfigurieren. Die Konfiguration verarbeitet und leitet Daten von einem simulierten Ofen. Der Datenfluss in der Konfiguration leitet die Nachrichten an eine Azure Event Hubs-Instanz weiter.

Bereinigen von Ressourcen

Wenn Sie mit der nächsten Schnellstartanleitung fortfahren, sollten Sie alle Ihre Ressourcen beibehalten.

Wenn Sie die Azure IoT Einsatz-Bereitstellung entfernen, aber Ihren Cluster beibehalten möchten, verwenden Sie den Befehl az iot ops delete.

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Wenn Sie alle im Rahmen dieser Schnellstartanleitung erstellten Ressourcen löschen möchten, löschen Sie den Kubernetes-Cluster, in dem Sie Azure IoT Einsatz bereitgestellt haben, und entfernen Sie dann die Azure-Ressourcengruppe, in der das Cluster enthalten war.

Wenn Sie Codespaces für diese Schnellstarts verwendet haben, löschen Sie Ihren Codespace aus GitHub.

Nächster Schritt

Wenn Sie erfahren möchten, wie Sie ein Microsoft Fabric-Dashboard erstellen, um Erkenntnisse aus Ihren Ofen-Daten zu gewinnen, sehen Sie sich das Tutorial: Gewinnen von Erkenntnissen aus Ihren verarbeiteten Daten an.