Bagikan melalui


Tutorial: Menambahkan aset OPC UA ke kluster Operasi Azure IoT Anda

Dalam tutorial ini, Anda menambahkan aset OPC UA secara manual ke kluster Operasi Azure IoT Anda. Aset ini menerbitkan pesan ke broker MQTT di kluster Azure IoT Operations Anda. Biasanya, pengguna OT menyelesaikan langkah-langkah ini.

Aset adalah perangkat fisik atau entitas logis yang mewakili perangkat, mesin, sistem, atau proses. Misalnya, aset fisik bisa berupa pompa, motor, tangki, atau lini produksi. Aset logis yang Anda tentukan dapat memiliki properti, mengalirkan titik data, atau menghasilkan peristiwa.

Server OPC UA adalah aplikasi perangkat lunak yang berkomunikasi dengan aset. Tag OPC UA adalah titik data yang diekspos server OPC UA. Tag OPC UA dapat menyediakan data real-time atau historis tentang status, performa, kualitas, atau kondisi aset.

Dalam tutorial ini, Anda menggunakan antarmuka pengguna web pengalaman operasi untuk membuat aset Anda. Anda juga dapat menggunakan Azure CLI untuk menyelesaikan beberapa tugas ini.

Prasyarat

Instans Operasi Azure IoT dengan pengaturan keamanan yang diaktifkan yang disebarkan pada kluster Kubernetes. Untuk membuat instans, gunakan salah satu dari yang berikut untuk menyebarkan Azure IoT Operations.

Penting

Tidak dimungkinkan untuk mengaktifkan pengaturan aman pada instans yang Anda buat jika Anda mengikuti langkah-langkah dalam artikel Mulai Cepat: Jalankan Operasi Azure IoT di GitHub Codespaces dengan K3s .

Setelah Anda mengaktifkan pengaturan aman, grup sumber daya yang berisi instans Azure IoT Operations Anda juga berisi sumber daya berikut:

  • Instans Azure Key Vault untuk menyimpan rahasia untuk disinkronkan ke kluster Kubernetes Anda.
  • Identitas terkelola yang ditetapkan pengguna yang digunakan Azure IoT Operations untuk mengakses instans Azure Key Vault.
  • Identitas terkelola yang ditetapkan pengguna yang dapat digunakan komponen Operasi Azure IoT seperti aliran data untuk digunakan untuk menyambungkan ke titik akhir cloud seperti Azure Event Hubs.
  • Namespace Azure Device Registry untuk menyimpan aset dan perangkat Anda.

Pastikan bahwa saat mengonfigurasi pengaturan aman, Anda memberikan izin akun pengguna untuk mengelola rahasia dengan peran Petugas Rahasia Key Vault .

Untuk masuk ke antarmuka pengguna web pengalaman operasi, Anda memerlukan akun ID Microsoft Entra dengan setidaknya izin kontributor untuk grup sumber daya yang berisi Kubernetes - instans Azure Arc . Untuk mempelajari lebih lanjut, lihat Antarmuka pengguna web pengalaman operasi.

Kecuali dinyatakan lain, Anda dapat menjalankan perintah konsol dalam tutorial ini di lingkungan Bash atau PowerShell.

Masalah apa yang akan kita pecahkan?

Data yang diekspos server OPC UA dapat memiliki struktur yang kompleks dan dapat sulit dipahami. Operasi Azure IoT menyediakan cara untuk memodelkan aset OPC UA sebagai tag, peristiwa, dan properti. Pemodelan ini memudahkan untuk memahami data dan menggunakannya dalam proses hilir seperti broker MQTT dan aliran data.

Tutorial ini juga menjelaskan cara menggunakan kredensial yang disimpan di Azure Key Vault untuk mengautentikasi ke server OPC UA yang disimulasikan.

Menyebarkan simulator OPC PLC

Tutorial ini menggunakan simulator OPC PLC untuk menghasilkan data sampel. Untuk menyebarkan simulator OPC PLC:

  1. Unduh file opc-plc-tutorial-deployment.yaml dari repositori GitHub. Untuk mengunduh menggunakan baris perintah, jalankan perintah berikut:

    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. Buka file yang opc-plc-tutorial-deployment.yaml Anda unduh di editor teks dan ubah kata sandi untuk simulator. Kata sandi diatur menggunakan --defaultpassword parameter . Catat nilai kata sandi, Anda membutuhkannya nanti. Kemudian, simpan perubahan Anda.

  3. Untuk menyebarkan simulator PLC OPC ke kluster Anda, jalankan perintah berikut:

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

Cuplikan berikut menunjukkan file YAML yang Anda terapkan:

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

Membangun kepercayaan bersama

Sebelum simulator PLC OPC dapat mengirim data ke konektor untuk OPC UA, Anda perlu membangun kepercayaan bersama di antara mereka. Dalam tutorial ini, simulator OPC PLC dan konektor untuk OPC UA menggunakan sertifikat yang ditandatangani sendiri untuk membangun kepercayaan bersama dengan konektor untuk OPC UA:

  • Sertifikat instans aplikasi simulator disimpan dalam opc-plc-default-application-cert rahasia Kubernetes.
  • Konektor untuk sertifikat instans aplikasi OPC UA disimpan dalam aio-opc-opcuabroker-default-application-cert rahasia Kubernetes.

Penting

Di lingkungan produksi, gunakan sertifikat instans aplikasi tingkat perusahaan untuk membangun kepercayaan bersama. Untuk mempelajari selengkapnya, lihat Mengonfigurasi sertifikat instans aplikasi tingkat perusahaan.

Menambahkan sertifikat konektor ke daftar kepercayaan simulator

Setiap server OPC UA memiliki mekanismenya sendiri untuk mengelola daftar kepercayaan. Untuk menambahkan sertifikat konektor ke daftar kepercayaan simulator, jalankan perintah berikut:

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}"

Menambahkan sertifikat simulator ke daftar kepercayaan konektor

Setiap jenis server OPC UA memiliki mekanisme sendiri untuk mengelola sertifikat instans aplikasinya. Untuk mengunduh sertifikat simulator ke file yang disebut opcplc-000000.crt, jalankan perintah berikut:

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

Untuk menambahkan sertifikat simulator ke daftar kepercayaan konektor:

  1. Buka antarmuka pengguna web pengalaman operasi dan masuk dengan kredensial ID Microsoft Entra Anda.

  2. Pilih situs Anda. Jika Anda bekerja dengan implementasi baru, belum ada situs yang tersedia. Anda dapat menemukan kluster yang Anda buat di sebelumnya dengan memilih Tampilkan instans yang tidak ditetapkan. Dalam pengalaman operasi, instans mewakili kluster tempat Anda menyebarkan Operasi Azure IoT.

    Cuplikan layar yang memperlihatkan simpul instans yang tidak ditetapkan dalam pengalaman operasi.

  3. Pilih instans tempat Anda menyebarkan Operasi Azure IoT:

    Cuplikan layar daftar instans Azure IoT Operations.

    Petunjuk / Saran

    Jika Anda tidak melihat instans apa pun, Anda mungkin tidak berada di penyewa ID Microsoft Entra yang tepat. Anda dapat mengubah penyewa dari menu kanan atas dalam pengalaman operasi.

  4. Pilih Perangkat lalu Kelola sertifikat dan rahasia:

    Cuplikan layar yang memperlihatkan cara menemukan halaman kelola sertifikat dalam pengalaman operasi.

  5. Pada halaman Sertifikat dan rahasia, pilih Tambahkan sertifikat baru:

    Cuplikan layar yang memperlihatkan cara menambahkan sertifikat ke daftar kepercayaan dalam pengalaman operasi.

  6. Pilih Unggah sertifikat, pilih daftar kepercayaan OPC UA sebagai penyimpanan sertifikat, lalu pilih file yang opcplc-000000.crt Anda unduh sebelumnya. Lalu pilih Unggah:

    Cuplikan layar yang memperlihatkan unggahan sertifikat yang berhasil.

  7. Pilih Terapkan.

Sertifikat instans aplikasi simulator sekarang berada di konektor untuk daftar kepercayaan OPC UA.

Menambahkan perangkat

Dalam langkah ini, Anda menggunakan pengalaman operasi untuk menambahkan perangkat yang memungkinkan Anda terhubung ke simulator PLC OPC. Untuk menambahkan perangkat:

  1. Pilih Perangkat lalu Buat baru:

    Cuplikan layar yang memperlihatkan halaman perangkat dalam pengalaman operasi.

  2. Masukkan opc-ua-connector sebagai nama perangkat dan pilih Baru pada petak peta Microsoft.OpcUa :

    Cuplikan layar yang memperlihatkan cara menambahkan perangkat dalam pengalaman operasi.

  3. Masukkan informasi titik akhir masuk Microsoft.OpcUa berikut ini:

    Bidang Nilai
    Nama titik akhir opc-ua-connector-0
    OPC UA server URL opc.tcp://opcplc-000000:50000
    Mode autentikasi pengguna Username password

Dalam tutorial ini, Anda menambahkan rahasia baru ke instans Azure Key Vault Anda dari antarmuka pengguna web pengalaman operasi. Rahasia secara otomatis disinkronkan ke kluster Kubernetes Anda:

  1. Untuk menambahkan referensi nama pengguna, pilih Tambahkan referensi, lalu Buat baru.

  2. Masukkan plcusername sebagai nama rahasia dan contosouser sebagai nilai rahasia. Lalu, pilih Terapkan.

  3. Untuk menambahkan referensi kata sandi, pilih Tambahkan referensi, lalu Buat baru.

  4. Masukkan plcpassword sebagai nama rahasia dan kata sandi yang Anda tambahkan ke file opc-plc-deployment.yaml sebagai nilai rahasia. Lalu, pilih Terapkan.

  5. Pada halaman Detail perangkat , pilih Berikutnya untuk masuk ke halaman Info Tambahan .

  6. Pada halaman Tambahkan properti kustom , Anda dapat memperbarui atau menambahkan properti kustom secara opsional ke perangkat. Pilih Berikutnya saat Anda selesai.

  7. Untuk menyimpan definisi perangkat pada halaman Ringkasan , pilih Buat.

Konfigurasi ini menyebarkan perangkat baru yang disebut opc-ua-connector dengan titik akhir yang dipanggil opc-ua-connector-0 ke kluster. Anda dapat melihat perangkat di portal Microsoft Azure atau dapat digunakan kubectl untuk melihat perangkat di kluster Kubernetes Anda:

kubectl get device -n azure-iot-operations

Anda dapat melihat plcusername dan plcpassword rahasia di instans Azure Key Vault di grup sumber daya Anda. Rahasia disinkronkan ke kluster Kubernetes tempat Anda dapat melihatnya dengan menggunakan perintah kubectl get secret -n azure-iot-operations. Anda juga dapat melihat rahasia dalam pengalaman operasi di halaman Kelola rahasia yang disinkronkan .

Mengelola aset Anda

Setelah Memilih instans dalam pengalaman operasi, Anda akan melihat daftar aset yang tersedia di halaman Aset . Jika belum ada aset, daftar ini kosong:

Cuplikan layar daftar aset kosong Operasi Azure IoT.

Buat Aset

Untuk membuat aset, pilih Buat aset. Kemudian masukkan informasi aset berikut:

Bidang Nilai
Titik akhir masuk opc-ua-connector-0
Nama aset thermostat
Deskripsi A simulated thermostat asset

Hapus properti Kustom yang ada dan tambahkan properti kustom berikut ini. Berhati-hatilah untuk menggunakan nama properti yang tepat, sebagai templat Power BI dalam kueri tutorial selanjutnya untuk mereka:

Nama properti Detail properti
batch 102
pelanggan Contoso
peralatan Ketel
isSpare TRUE
lokasi Seattle

Cuplikan layar halaman detail aset Operasi Azure IoT.

Pilih Berikutnya untuk masuk ke halaman Himpunan Data .

Buat himpunan data

Untuk membuat himpunan data, pilih Buat himpunan data. Masukkan detail himpunan data yang diperlihatkan dalam tabel berikut ini:

Bidang Nilai
Nama himpunan data thermostat
Tujuan MQTT
Topik azure-iot-operations/data/thermostat

Pilih Buat dan selanjutnya untuk menyimpan set data dan ke halaman Titik data.

Petunjuk / Saran

Anda dapat memilih Kelola pengaturan default untuk mengubah interval pengambilan sampel default dan ukuran antrean untuk setiap titik data.

Membuat titik data OPC UA

Tambahkan titik data OPC UA di halaman titik data. Untuk menambahkan titik data, pilih Tambahkan titik data. Masukkan detail titik data yang diperlihatkan dalam tabel berikut ini:

Sumber data Nama titik data
ns=3; s=SpikeData suhu

Nilai sumber data di sini adalah simpul simulator OPC UA tertentu. Simpul menghasilkan nilai acak dalam rentang tertentu dan juga memiliki lonjakan terputus-putus.

Pilih Simpan.

Cuplikan layar operasi Azure IoT menambahkan halaman titik data.

Pilih Berikutnya untuk masuk ke halaman Grup peristiwa , lalu pilih Berikutnya untuk masuk ke halaman Grup manajemen , lalu Berikutnya untuk masuk ke halaman Tinjau .

Tinjauan

Tinjau detail aset dan tag Anda dan buat penyesuaian apa pun yang Anda butuhkan sebelum memilih Buat:

Cuplikan layar halaman tinjauan pembuatan aset di Azure IoT Operations.

Konfigurasi ini menyebarkan aset baru yang dipanggil thermostat ke kluster. Anda juga dapat menggunakan kubectl untuk melihat aset secara lokal di kluster Anda:

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

Menampilkan sumber daya di portal Azure

Untuk melihat perangkat dan aset yang Anda buat di portal Microsoft Azure, buka Azure Device Registry:

Cuplikan layar portal Microsoft Azure memperlihatkan Azure Device Registry.

Portal memungkinkan Anda melihat detail aset. Pilih Tampilan JSON untuk detail selengkapnya:

Cuplikan layar detail aset Azure IoT Operations di portal Microsoft Azure.

Memverifikasi bahwa data mengalir

Verifikasi bahwa data mengalir ke broker MQTT dengan menggunakan alat mosquitto_sub . Dalam contoh ini, Anda menjalankan alat mosquitto_sub di dalam kluster Kubernetes:

  1. Jalankan perintah berikut untuk menyebarkan pod yang mencakup alat mosquitto_pub dan mosquitto_sub yang berguna untuk berinteraksi dengan broker MQTT di kluster:

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

    Cuplikan berikut menunjukkan file YAML yang Anda terapkan:

    # 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
    

    Perhatian

    Konfigurasi ini tidak aman. Jangan gunakan konfigurasi ini di lingkungan produksi.

  2. Saat pod mqtt-client berjalan, jalankan perintah berikut untuk membuat lingkungan shell di pod yang Anda buat:

    kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
    
  3. Pada shell Bash di pod mqtt-client , jalankan perintah berikut untuk terhubung ke broker MQTT menggunakan alat mosquitto_sub dan gunakan wildcard untuk berlangganan data/# topik:

    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)
    

    Perintah ini terus berjalan dan menampilkan pesan saat pesan tiba pada topik apa pun data/# hingga Anda menekan Ctrl+C untuk menghentikannya. Untuk keluar dari lingkungan shell, ketik exit.

Untuk memverifikasi bahwa aset termostat yang Anda tambahkan menerbitkan data, lihat pesan dalam azure-iot-operations/data/thermostat topik:

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

Jika tidak ada data yang mengalir, mulai ulang aio-opc-opc.tcp-1 pod:

  1. Temukan nama pod Anda aio-opc-opc.tcp-1 dengan menggunakan perintah berikut:

    kubectl get pods -n azure-iot-operations
    

    Nama pod Anda terlihat seperti aio-opc-opc.tcp-1-849dd78866-vhmz6.

  2. aio-opc-opc.tcp-1 Mulai ulang pod dengan menggunakan perintah yang terlihat seperti contoh berikut. aio-opc-opc.tcp-1 Gunakan nama pod dari langkah sebelumnya:

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

Contoh tag yang Anda tambahkan dalam tutorial sebelumnya menghasilkan pesan dari aset Anda yang terlihat seperti contoh berikut:

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

Bagaimana kita memecahkan masalah?

Dalam tutorial ini, Anda menambahkan perangkat lalu menentukan aset dan tag. Data model aset dan tag dari server OPC UA untuk membuat data lebih mudah digunakan dalam broker MQTT dan proses hilir lainnya.

Anda menggunakan kredensial yang disimpan di Azure Key Vault untuk mengautentikasi ke server OPC UA. Pendekatan ini lebih aman daripada kredensial hardcoding dalam definisi aset Anda.

Anda menggunakan aset termostat yang Anda tentukan dalam tutorial berikutnya.

Membersihkan sumber daya

Jika Anda melanjutkan ke tutorial berikutnya, simpan semua sumber daya Anda.

Jika Anda ingin menghapus penyebaran Operasi Azure IoT tetapi mempertahankan kluster Anda, gunakan perintah az iot ops delete :

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

Jika Anda ingin menghapus semua sumber daya yang Anda buat untuk mulai cepat ini, hapus kluster Kubernetes tempat Anda menyebarkan Operasi Azure IoT lalu hapus grup sumber daya Azure yang berisi kluster.

Jika Anda menggunakan Codespace untuk mulai cepat ini, hapus Codespace Anda dari GitHub.

Langkah selanjutnya

Tutorial: Mengirim pesan dari aset Anda ke cloud menggunakan aliran data.