Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk menggunakan komponen dapr broker MQTT yang dapat dicolokkan, sebarkan komponen pub/sub dan penyimpanan status dalam penyebaran aplikasi Anda bersama dengan aplikasi Dapr Anda. Panduan ini menunjukkan kepada Anda cara menyebarkan aplikasi menggunakan komponen dapr SDK dan broker MQTT yang dapat dicolokkan.
Prasyarat
- Operasi Azure IoT disebarkan - Mulai Cepat: Menjalankan Operasi Azure IoT di GitHub Codespaces dengan K3s
- Komponen Dapr broker MQTT yang disebarkan - Menyebarkan Komponen Dapr broker MQTT
Membuat aplikasi Dapr
Membangun aplikasi
Langkah pertama adalah menulis aplikasi yang menggunakan Dapr SDK untuk menerbitkan/berlangganan atau melakukan manajemen status.
Kemasi aplikasi
Setelah Anda selesai menulis aplikasi Dapr, buat kontainer:
Kemas aplikasi ke dalam kontainer dengan perintah berikut:
docker build . -t my-dapr-appDorong ke Container Registry pilihan Anda, seperti:
Menyebarkan aplikasi Dapr
Definisi Penyebaran berikut berisi volume untuk autentikasi SAT dan rantai sertifikat TLS, dan menggunakan injeksi sidecar Dapr untuk secara otomatis menambahkan komponen yang dapat dicolokkan ke Pod.
Komponen definisi berikut mungkin memerlukan kustomisasi ke aplikasi spesifik Anda:
Komponen Deskripsi template:metadata:annotations:dapr.io/inject-pluggable-componentsMemungkinkan komponen IoT Operations yang dapat dicolokkan secara otomatis disuntikkan ke dalam pod template:metadata:annotations:dapr.io/app-portMemberi tahu Dapr port mana yang didengarkan aplikasi Anda. Jika aplikasi Anda tidak menggunakan fitur ini (seperti langganan pubsub), hapus baris ini volumes:mqtt-client-tokenToken Autentikasi Sistem yang digunakan untuk mengautentikasi komponen dapr yang dapat dicolokkan dengan broker MQTT volumes:aio-ca-trust-bundleRantai kepercayaan untuk memvalidasi sertifikasi TLS broker MQTT. Ini default ke sertifikat pengujian yang disebarkan dengan Operasi Azure IoT containers:nameNama yang diberikan ke kontainer aplikasi Anda containers:imageKontainer aplikasi yang ingin Anda sebarkan
Caution
Jika aplikasi Dapr Anda tidak mendengarkan lalu lintas dari sidecar Dapr, maka hapus dapr.io/app-port anotasi dan dapr.io/app-protocoljika tidak, sidecar Dapr akan gagal diinisialisasi.
Simpan yaml berikut ke file bernama
dapr-app.yaml:apiVersion: v1 kind: ServiceAccount metadata: name: dapr-client namespace: azure-iot-operations annotations: aio-broker-auth/group: dapr-workload --- apiVersion: apps/v1 kind: Deployment metadata: name: my-dapr-app namespace: azure-iot-operations spec: selector: matchLabels: app: my-dapr-app template: metadata: labels: app: my-dapr-app annotations: dapr.io/enabled: "true" dapr.io/inject-pluggable-components: "true" dapr.io/app-id: "my-dapr-app" dapr.io/app-port: "6001" dapr.io/app-protocol: "grpc" spec: serviceAccountName: dapr-client volumes: # SAT used to authenticate between Dapr and the MQTT broker - name: mqtt-client-token projected: sources: - serviceAccountToken: path: mqtt-client-token audience: aio-internal expirationSeconds: 86400 # Certificate chain for Dapr to validate the MQTT broker - name: aio-ca-trust-bundle configMap: name: azure-iot-operations-aio-ca-trust-bundle containers: # Container for the Dapr application - name: mq-dapr-app image: <YOUR_DAPR_APPLICATION>Sebarkan komponen dengan menjalankan perintah berikut:
kubectl apply -f dapr-app.yaml kubectl get pods -wPod harus melaporkan tiga kontainer yang berjalan setelah interval singkat, seperti yang ditunjukkan dalam contoh output berikut:
NAME READY STATUS RESTARTS AGE ... my-dapr-app 3/3 Running 0 30s
Penyelesaian Masalah
Jika aplikasi tidak dimulai atau Anda melihat kontainer dalam CrashLoopBackoff status, log untuk daprd kontainer sering berisi informasi yang berguna.
Jalankan perintah berikut untuk melihat log untuk komponen daprd:
kubectl logs -l app=my-dapr-app -c daprd
Langkah selanjutnya
Sekarang setelah Anda tahu cara mengembangkan aplikasi Dapr, Anda dapat menjalankan tutorial untuk Membangun aplikasi berbasis peristiwa dengan Dapr.