Aracılığıyla paylaş


Öğretici: Azure IoT İşlemleri kümenize OPC UA varlıkları ekleme

Bu öğreticide, OPC UA varlıklarını Azure IoT İşlemleri kümenize el ile eklersiniz. Bu varlıklar, Azure IoT İşlemleri kümenizdeki MQTT aracısına ileti yayımlar. Ot kullanıcısı genellikle bu adımları tamamlar.

Varlık, bir cihazı, makineyi, sistemi veya işlemi temsil eden fiziksel bir cihaz veya mantıksal varlıktır. Örneğin, fiziksel varlık pompa, motor, tank veya üretim hattı olabilir. Tanımladığınız bir mantıksal varlık, özelliklere sahip olabilir, veri noktalarını iletebilir veya olaylar üretebilir.

OPC UA sunucuları , varlıklarla iletişim kuran yazılım uygulamalarıdır. OPC UA etiketleri , OPC UA sunucularının kullanıma sunmaları için veri noktalarıdır. OPC UA etiketleri varlıkların durumu, performansı, kalitesi veya durumu hakkında gerçek zamanlı veya geçmiş veriler sağlayabilir.

Bu öğreticide varlıklarınızı oluşturmak için işlem deneyimi web kullanıcı arabirimini kullanacaksınız. Bu görevlerden bazılarını tamamlamak için Azure CLI'yı da kullanabilirsiniz.

Önkoşullar

Kubernetes kümesinde dağıtılan güvenli ayarların etkinleştirildiği bir Azure IoT İşlemleri örneği. Örnek oluşturmak için aşağıdakilerden birini kullanarak Azure IoT İşlemlerini dağıtın:

Önemli

Hızlı Başlangıç: K3s ile GitHub Codespaces'ta Azure IoT İşlemlerini Çalıştırma makalesindeki adımları izlerseniz, oluşturduğunuz örnekte güvenli ayarları etkinleştirmek mümkün değildir.

Güvenli ayarları etkinleştirdikten sonra, Azure IoT İşlemleri örneğinizi içeren kaynak grubu da aşağıdaki kaynakları içerir:

  • Kubernetes kümesine senkronize edilmek üzere sırları depolamak için bir Azure Key Vault örneği.
  • Azure IoT İşlemleri'nin, Azure Key Vault örneğine erişmek için kullandığı, kullanıcı tarafından atanmış yönetilen bir kimlik.
  • Veri akışları gibi Azure IoT İşlemleri bileşenlerinin Azure Event Hubs gibi bulut uç noktalarına bağlanmak için kullanabileceği kullanıcı tarafından atanan yönetilen kimlik.
  • Varlıklarınızı ve cihazlarınızı depolamak için bir Azure Cihaz Kayıt Defteri ad alanı.

Güvenli ayarları yapılandırdığınızda kullanıcı hesabınıza Key Vault Gizli DiziLeri Yetkilisi rolüyle gizli dizileri yönetme izni verdiğinizden emin olun.

İşlem deneyimi web kullanıcı arabiriminde oturum açmak için Kubernetes - Azure Arc örneğinizi içeren kaynak grubu için en az katkıda bulunan izinlerine sahip bir Microsoft Entra ID hesabına ihtiyacınız vardır. Daha fazla bilgi edinmek için bkz . İşlem deneyimi web kullanıcı arabirimi.

Aksi belirtilmediği sürece, bu öğreticideki konsol komutlarını bash veya PowerShell ortamında çalıştırabilirsiniz.

Hangi sorunu çözeceğiz?

OPC UA sunucularının kullanıma sunma verileri karmaşık bir yapıya sahip olabilir ve anlaşılması zor olabilir. Azure IoT İşlemleri, OPC UA varlıklarını etiketler, olaylar ve özellikler olarak modellemek için bir yol sağlar. Bu modelleme, verilerin anlaşılmasını ve MQTT aracısı ve veri akışları gibi aşağı akış işlemlerinde kullanılmasını kolaylaştırır.

Öğreticide, sanal OPC UA sunucusunda kimlik doğrulaması yapmak için Azure Key Vault'ta depolanan kimlik bilgilerinin nasıl kullanılacağı da açıklanır.

OPC PLC simülatörünü dağıtma

Bu öğreticide örnek veriler oluşturmak için OPC PLC simülatörü kullanılmaktadır. OPC PLC simülatörünü dağıtmak için:

  1. GitHub deposundan opc-plc-tutorial-deployment.yaml dosyasını indirin. Komut satırını kullanarak indirmek için aşağıdaki komutu çalıştırın:

    wget https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/refs/heads/main/samples/quickstarts/opc-plc-tutorial-deployment.yaml -O opc-plc-tutorial-deployment.yaml
    
  2. opc-plc-tutorial-deployment.yaml İndirdiğiniz dosyayı bir metin düzenleyicisinde açın ve simülatörün parolasını değiştirin. Parola parametresi kullanılarak --defaultpassword ayarlanır. Parola değerini not alın, daha sonra ihtiyacınız olacak. Ardından değişikliklerinizi kaydedin.

  3. OPC PLC simülatörünü kümenize dağıtmak için aşağıdaki komutu çalıştırın:

    kubectl apply -f opc-plc-tutorial-deployment.yaml
    

Aşağıdaki kod parçacığı, uyguladığınız YAML dosyasını gösterir:

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:
          - "--plchostname=opcplc-000000"
          - "--portnum=50000"
          - "--certdnsnames=opcplc-000000"
          - "--unsecuretransport"
          - "--slownodes=5"
          - "--slowrate=10"
          - "--fastnodes=10"
          - "--fasttypelowerbound=212"
          - "--fasttypeupperbound=273"
          - "--fasttyperandomization=True"
          - "--veryfastrate=1000"
          - "--guidnodes=1"
          - "--appcertstoretype=FlatDirectory"
          - "--dontrejectunknownrevocationstatus"
          - "--disableanonymousauth"
          - "--defaultuser=contosouser"
          - "--defaultpassword=contosouserpassword"
        ports:
        - containerPort: 50000
        volumeMounts:
          - name: opc-plc-default-application-cert
            mountPath: /app/pki/own
          - name: opc-plc-trust-list
            mountPath: /app/pki/trusted
      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
      serviceAccountName: opcplc-000000-service-account
---
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: 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

Karşılıklı güven oluşturma

OPC PLC simülatörünün OPC UA için bağlayıcıya veri gönderebilmesi için önce aralarında karşılıklı güven oluşturmanız gerekir. Bu öğreticide, OPC PLC simülatörü ve OPC UA bağlayıcısı, OPC UA bağlayıcısıyla karşılıklı güven oluşturmak için otomatik olarak imzalanan sertifikalar kullanır:

  • Simülatörün uygulama örneği sertifikası Kubernetes gizli dizisinde opc-plc-default-application-cert depolanır.
  • OPC UA'nın uygulama örneği sertifikasının bağlayıcısı Kubernetes gizli dizisinde aio-opc-opcuabroker-default-application-cert depolanır.

Önemli

Üretim ortamında, karşılıklı güven oluşturmak için kurumsal sınıf uygulama örneği sertifikalarını kullanın. Daha fazla bilgi edinmek için bkz. Kurumsal sınıf uygulama örneği sertifikası yapılandırma.

Bağlayıcının sertifikasını simülatörün güven listesine ekleme

Her OPC UA sunucusunun güven listesini yönetmek için kendi mekanizması vardır. Bağlayıcının sertifikasını simülatörün güven listesine eklemek için aşağıdaki komutları çalıştırın:

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}"
$cert = kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | %{ [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)) }
$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}"

Simülatörün sertifikasını bağlayıcının güven listesine ekleme

Her OPC UA sunucu türünün, uygulama örneği sertifikasını yönetmek için kendi mekanizması vardır. Simülatörün sertifikasını adlı opcplc-000000.crtbir dosyaya indirmek için aşağıdaki komutu çalıştırın:

kubectl -n azure-iot-operations get secret opc-plc-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcplc-000000.crt
kubectl -n azure-iot-operations get secret opc-plc-default-application-cert -o jsonpath='{.data.tls\.crt}' | %{ [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($_)) } > opcplc-000000.crt

Simülatörün sertifikasını bağlayıcının güven listesine eklemek için:

  1. İşlem deneyimi web kullanıcı arabirimine gidin ve Microsoft Entra Id kimlik bilgilerinizle oturum açın.

  2. Sitenizi seçin. Yeni bir dağıtımla çalışıyorsanız henüz site yok demektir. Daha önce oluşturduğunuz kümeyi, Atanmamış örnekleri görüntüle'yi seçerek bulabilirsiniz. İşlem deneyiminde örnek, Azure IoT İşlemlerini dağıttığınız bir kümeyi temsil eder.

    İşlem deneyiminde atanmamış örnekler düğümünü gösteren ekran görüntüsü.

  3. Azure IoT İşlemlerini dağıttığınız örneği seçin:

    Azure IoT İşlemleri örnek listesinin ekran görüntüsü.

    İpucu

    Herhangi bir örnek görmüyorsanız doğru Microsoft Entra Id kiracısında olmayabilirsiniz. Kiracıyı işlem deneyiminde sağ üst menüden değiştirebilirsiniz.

  4. Cihazlar'ı ve ardından Sertifikaları ve gizli dizileri yönet'i seçin:

    İşlem deneyiminde sertifikaları yönetme sayfasının nasıl bulunduğunu gösteren ekran görüntüsü.

  5. Sertifikalar ve gizli diziler sayfasındaYeni sertifika ekle'yi seçin:

    İşletim deneyiminde güven listesine sertifika eklemeyi gösteren ekran görüntüsü.

  6. Sertifikayı karşıya yükle'yi seçin, sertifika deposu olarak OPC UA güven listesi'niopcplc-000000.crt seçin ve ardından daha önce indirdiğiniz dosyayı seçin. Ardından Karşıya Yükle'yi seçin:

    Başarılı bir sertifika yükleme işlemini gösteren ekran görüntüsü.

  7. seçin, sonra daUygula'yı seçin.

Simülatörün uygulama örneği sertifikası artık OPC UA'nın güven listesi için bağlayıcıdadır.

Cihaz ekleme

Bu adımda, OPC PLC simülatörüne bağlanmanızı sağlayan bir cihaz eklemek için işlem deneyimini kullanırsınız. Cihaz eklemek için:

  1. Cihazlar'ı ve ardından Yeni oluştur'u seçin:

    İşlem deneyimindeki cihazlar sayfasını gösteren ekran görüntüsü.

  2. Cihaz adı olarak girin opc-ua-connector ve Microsoft.OpcUa kutucuğunda Yeni'yi seçin:

    İşlem deneyiminde cihaz eklemeyi gösteren ekran görüntüsü.

  3. Aşağıdaki Microsoft.OpcUa gelen uç nokta bilgilerini girin:

    Alan Değer
    Uç nokta adı opc-ua-connector-0
    OPC UA sunucusu URL'si opc.tcp://opcplc-000000:50000
    Kullanıcı kimlik doğrulama modu Username password

Bu öğreticide, web arayüzünden işlemler ile Azure Key Vault örneğine yeni gizli bilgiler eklersiniz. Gizli bilgileriniz Kubernetes kümenizle otomatik olarak senkronize edilir.

  1. Kullanıcı adı başvurusu eklemek için Başvuru ekle'yi ve ardından Yeni oluştur'u seçin.

  2. Gizli ad olarak plcusername ve gizli değer olarak contosouser girin. Ardından Uygula'yı seçin.

  3. Parola başvurusu eklemek için Başvuru ekle'yi ve ardından Yeni oluştur'u seçin.

  4. Gizli ad olarak plcpassword ve gizli değer olarak opc-plc-deployment.yaml dosyasına eklediğiniz parolayı girin. Ardından Uygula'yı seçin.

  5. Cihaz ayrıntıları sayfasında İleri'yi seçerek Ek Bilgi sayfasına gidin.

  6. Özel özellik ekle sayfasında isteğe bağlı olarak cihaza özel özellikleri güncelleştirebilir veya ekleyebilirsiniz. İşiniz bittiğinde İleri'yi seçin.

  7. Cihaz tanımını Özet sayfasına kaydetmek için Oluştur'u seçin.

Bu yapılandırma, adlı yeni bir cihazı kümeye çağrılan opc-ua-connectoropc-ua-connector-0 uç noktayla dağıtır. Cihazı Azure portalında görüntüleyebilir veya Kubernetes kümenizdeki cihazları görüntülemek için kullanabilirsiniz kubectl :

kubectl get device -n azure-iot-operations

plcusername ve plcpassword sırlarını kaynak grubunuzdaki Azure Key Vault örneğinde görebilirsiniz. Sırlar, Kubernetes kümenize eşitlenir ve kubectl get secret -n azure-iot-operations komutunu kullanarak burada görebilirsiniz. Gizli bilgileri, senkronize edilen gizli bilgileri yönet sayfasında işlem deneyimlerinde de görebilirsiniz.

Varlıklarınızı yönetin

operasyon deneyiminde örneğinizi seçtikten sonra Varlıklar sayfasında kullanılabilir varlık listesini görürsünüz. Henüz varlık yoksa, bu liste boş olur:

Azure IoT İşlemleri boş varlık listesinin ekran görüntüsü.

Varlık oluşturma

Varlık oluşturmak için Varlık oluştur'u seçin. Ardından aşağıdaki varlık bilgilerini girin:

Alan Değer
Gelen uç nokta opc-ua-connector-0
Varlık adı thermostat
Açıklama A simulated thermostat asset

Mevcut Özel özellikleri kaldırın ve aşağıdaki özel özellikleri ekleyin. Sonraki bir öğreticide Power BI şablonu bunları sorgularken tam özellik adlarını kullanmaya dikkat edin:

Özellik adı Özellik ayrıntısı
toplu iş 102
müşteri Contoso
ekipman Kazan
isSpare doğru
konum Seattle

Azure IoT İşlemleri varlık ayrıntıları sayfasının ekran görüntüsü.

Veri kümeleri sayfasına gitmek için İleri'yi seçin.

Veri kümesi oluşturma

Veri kümesi oluşturmak için Veri kümesi oluştur'u seçin. Aşağıdaki tabloda gösterilen veri kümesi ayrıntılarını girin:

Alan Değer
Veri kümesi adı thermostat
Varış Yeri MQTT
Konu azure-iot-operations/data/thermostat

Oluştur'u seçin ve ardından veri kümesini kaydedin ve Veri noktaları sayfasına gidin.

İpucu

Her veri noktası için varsayılan örnekleme aralığını ve kuyruk boyutunu değiştirmek için Varsayılan ayarları yönet'i seçebilirsiniz.

OPC UA veri noktaları oluşturma

Veri noktaları sayfasına bir OPC UA veri noktası ekleyin. Veri noktası eklemek için Veri noktası ekle'yi seçin. Aşağıdaki tabloda gösterilen veri noktası ayrıntılarını girin:

Veri kaynağı Veri noktası adı
ns=3; s=SpikeData sıcaklık

Buradaki veri kaynağı değeri belirli bir OPC UA simülatörü düğümüdür. Düğüm, belirli bir aralıkta rastgele değerler oluşturur ve zaman zaman ani artışlar gösterir.

Kaydetseçeneğini seçin.

Azure IoT İşlemleri veri noktası ekleme sayfasının ekran görüntüsü.

İleri'yi seçerek Olay grupları sayfasına gidin, ardından İleri'yi seçerek Yönetim grupları sayfasına gidin ve ardından İleri'yi seçerek Gözden Geçir sayfasına gidin.

İnceleyin

Oluştur'u seçmeden önce varlığınızı ve etiket ayrıntılarınızı gözden geçirin ve ihtiyacınız olan ayarlamaları yapın:

Azure IoT İşlemleri varlık oluşturma gözden geçirme sayfasının ekran görüntüsü.

Bu yapılandırma, kümeye adlı thermostat yeni bir varlık dağıtır. Ayrıca, kümenizdeki varlıkları yerel olarak görüntülemek için de kullanabilirsiniz kubectl :

kubectl get assets.namespace -n azure-iot-operations

Azure portalında kaynakları görüntüleme

Azure portalında oluşturduğunuz cihazı ve varlığı görüntülemek için Azure Cihaz Kayıt Defteri'ne gidin:

Azure Cihaz Kayıt Defteri'ni gösteren Azure portalının ekran görüntüsü.

Portal, varlık ayrıntılarını görüntülemenizi sağlar. Diğer ayrıntılar için JSON Görünümü'nü seçin:

Azure portalında Azure IoT İşlemleri varlık ayrıntılarının ekran görüntüsü.

Verilerin aktığını doğrulama

mosquitto_sub aracını kullanarak verilerin MQTT aracısına aktığını doğrulayın. Bu örnekte Kubernetes kümenizin içinde mosquitto_sub aracını çalıştıracaksınız:

  1. Kümedeki MQTT aracısı ile etkileşime geçmek için yararlı olan mosquitto_pub ve mosquitto_sub araçlarını içeren bir pod dağıtmak için aşağıdaki komutu çalıştırın:

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

    Aşağıdaki kod parçacığı, uyguladığınız YAML dosyasını gösterir:

    # Important: do not use in production environments
    # Create a service account
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: mqtt-client
      namespace: azure-iot-operations
    ---
    # 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
    

    Dikkat

    Bu yapılandırma güvenli değildir. Bu yapılandırmayı üretim ortamında kullanmayın.

  2. mqtt-client pod çalışırken, oluşturduğunuz podda bir kabuk ortamı oluşturmak için aşağıdaki komutu çalıştırın:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. mqtt-client pod'unda Bash kabuğunda aşağıdaki komutu çalıştırarak mosquitto_sub aracını kullanarak MQTT aracısına bağlanın ve konu başlıklarına abone olmak için data/# joker karakter kullanın:

    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)
    

    Bu komut çalışmaya devam eder ve siz durdurmak için data/# tuşlarına basana kadar herhangi bir konuya ulaşana kadar iletileri görüntüler. Kabuk ortamından çıkmak için yazın exit.

Eklediğiniz termostat varlığının veri yayımladığını doğrulamak için konu başlığındaki azure-iot-operations/data/thermostat iletileri görüntüleyin:

Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (92 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:44.5030912Z","Value":48.17536741017152}}
Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (90 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:45.50333Z","Value":98.22872507286887}}
Client $server-generated/0000aaaa-11bb-cccc-dd22-eeeeee333333 received PUBLISH (d0, q0, r0, m0, 'azure-iot-operations/data/thermostat', ... (92 bytes))
azure-iot-operations/data/thermostat {"temperature":{"SourceTimestamp":"2025-02-14T11:27:46.503381Z","Value":12.533323356430426}}

Veri akışı yoksa podu aio-opc-opc.tcp-1 yeniden başlatın:

  1. Aşağıdaki komutu kullanarak podunuzun aio-opc-opc.tcp-1 adını bulun:

    kubectl get pods -n azure-iot-operations
    

    Podunuzun adı gibi aio-opc-opc.tcp-1-849dd78866-vhmz6görünür.

  2. Aşağıdaki örneğe aio-opc-opc.tcp-1 benzer bir komut kullanarak podu yeniden başlatın. Önceki adımdaki aio-opc-opc.tcp-1 pod adını kullanın:

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

Önceki öğreticide eklediğiniz örnek etiketler, varlığınızdan aşağıdaki örneğe benzer iletiler oluşturur:

{
    "temperature":{
        "Value":24.86898871648548,
        "SourceTimestamp":"2025-04-25T14:50:07.195274Z"
    }
}

Sorunu nasıl çözdük?

Bu öğreticide bir cihaz ekledikten sonra bir varlık ve etiketler tanımlamıştınız. Varlıklar ve etiketler, verilerin bir MQTT aracısı ve diğer aşağı akış işlemlerinde kullanımını kolaylaştırmak için OPC UA sunucusundan verileri modeller.

OPC UA sunucusunda kimlik doğrulaması yapmak için Azure Key Vault'ta depolanan kimlik bilgilerini kullandınız. Bu yaklaşım, varlık tanımınızda kimlik bilgilerini sabit kodlamaktan daha güvenlidir.

Sonraki öğreticide tanımladığınız termostat varlığını kullanacaksınız.

Kaynakları temizleme

Sonraki öğreticiye devam ediyorsanız tüm kaynaklarınızı koruyun.

Azure IoT İşlemleri dağıtımını kaldırmak ancak kümenizi korumak istiyorsanız az iot ops delete komutunu kullanın:

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

Bu hızlı başlangıç için oluşturduğunuz tüm kaynakları silmek istiyorsanız, Azure IoT İşlemlerini dağıttığınız Kubernetes kümesini silin ve ardından kümeyi içeren Azure kaynak grubunu kaldırın.

Bu hızlı başlangıçlar için Codespaces kullandıysanız Codespace'ınızı GitHub'dan silin.

Sonraki adım

Eğitim: Veri akışı kullanarak varlığınızdan buluta mesaj gönderme.