Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dağıtılmış Uygulama Çalışma Zamanı (Dapr), dağıtılmış uygulamalar oluşturma işlemini basitleştiren taşınabilir, sunucusuz, olay odaklı bir çalışma zamanıdır. Dapr, yapı taşları nasıl çalışır diye endişelenmeden durum bilgisi olan veya durum bilgisi olmayan uygulamalar oluşturmanıza olanak tanır. Dapr çeşitli yapı taşları sağlar: pub/sub, state management, service invocation, actors ve daha fazlası.
Azure IoT İşlemleri, MQTT aracısı tarafından desteklenen bu yapı yapılarından ikisini destekler:
- Yayımlama ve abone olma
- Durum yönetimi
Dapr takılabilir bileşenlerini kullanmak için API'lerin her biri için bileşen belirtimini tanımlayın ve kümeye kaydolun. Dapr bileşenleri, paylaşılan birime yerleştirilen unix etki alanı yuvasını dinler. Dapr çalışma zamanı her yuvaya bağlanır ve bileşenin uyguladığı belirli bir yapı taşı API'sinden tüm hizmetleri bulur.
Dapr çalışma zamanını yükleme
Dapr çalışma zamanını yüklemek için aşağıdaki Helm komutunu kullanın:
Uyarı
Sağlanan Azure IoT İşlemleri hızlı başlangıcını tamamladıysanız, Dapr çalışma zamanını zaten yüklemişsinizdir ve aşağıdaki adımlar gerekli değildir.
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm upgrade --install dapr dapr/dapr --version=1.14 --namespace dapr-system --create-namespace --wait
MQTT aracısı takılabilir bileşenlerini kaydetme
Pub/sub ve state management eklenebilir bileşenlerini kaydetmek için yaml bileşen bildirimini oluşturun ve kümenize uygulayın.
Yaml dosyasını oluşturmak için aşağıdaki bileşen tanımlarını kullanın:
| Bileşen | Açıklama |
|---|---|
metadata:name |
Bileşen adı önemlidir ve Dapr uygulamasının bileşene nasıl başvurmuş olduğudur. |
metadata:annotations:dapr.io/component-container |
Dapr sepet enjektör tarafından kullanılan bileşen ek açıklamaları, görüntü konumunu tanımlama, birim bağlamaları ve günlüğe kaydetme yapılandırması |
spec:type |
Tam olarak gösterildiği gibi bildirilmesi gereken bileşenin türü |
spec:metadata:keyPrefix |
Statestore arka ucuyla iletişim kurarken kullanılan anahtar ön ekini tanımlar. Daha fazla bilgi için bkz. Dapr belgeleri |
spec:metadata:hostname |
MQTT aracısı ana bilgisayar adı. Varsayılan değer: aio-broker |
spec:metadata:tcpPort |
MQTT aracısı bağlantı noktası numarası. Varsayılan değer: 18883 |
spec:metadata:useTls |
TLS'nin MQTT aracısı tarafından kullanılıp kullanılmadığına bakın. Varsayılan değer: true |
spec:metadata:caFile |
MQTT aracısını doğrulamak için sertifika zinciri yolu. ise useTls gereklidir true. Bu dosya belirtilen birim adıyla pod'a bağlanmalıdır |
spec:metadata:satAuthFile |
Hizmet Hesabı Belirteci (SAT) dosyası, MQTT aracısı ile Dapr bileşenlerinin kimliğini doğrulamak için kullanılır. Bu dosya belirtilen birim adıyla pod'a bağlanmalıdır |
Azure IoT İşlemleri bileşen tanımlarını içeren aşağıdaki yaml dosyasını adlı
components.yamlbir dosyaya kaydedin:apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: iotoperations-pubsub namespace: azure-iot-operations annotations: dapr.io/component-container: > { "name": "iot-operations-dapr-components", "image": "ghcr.io/azure/iot-operations-dapr-components:latest", "volumeMounts": [ { "name": "mqtt-client-token", "mountPath": "/var/run/secrets/tokens" }, { "name": "aio-ca-trust-bundle", "mountPath": "/var/run/certs/aio-internal-ca-cert" } ], "env": [ { "name": "pubSubLogLevel", "value": "Information" }, { "name": "stateStoreLogLevel", "value": "Information" }, { "name": "defaultLogLevel", "value": "Warning" } ] } spec: type: pubsub.azure.iotoperations version: v1 metadata: - name: hostname value: aio-broker - name: tcpPort value: 18883 - name: useTls value: true - name: caFile value: /var/run/certs/aio-internal-ca-cert/ca.crt - name: satAuthFile value: /var/run/secrets/tokens/mqtt-client-token --- apiVersion: dapr.io/v1alpha1 kind: Component metadata: name: iotoperations-statestore namespace: azure-iot-operations spec: type: state.azure.iotoperations version: v1 metadata: - name: hostname value: aio-broker - name: tcpPort value: 18883 - name: useTls value: true - name: caFile value: /var/run/certs/aio-internal-ca-cert/ca.crt - name: satAuthFile value: /var/run/secrets/tokens/mqtt-client-tokenAşağıdaki komutu çalıştırarak Bileşeni kümenize uygulayın:
kubectl apply -f components.yamlAşağıdaki çıkışı doğrulayın:
component.dapr.io/iotoperations-pubsub created component.dapr.io/iotoperations-statestore created
MQTT aracısı için yetkilendirme ilkesi oluşturma
Yetkilendirme ilkelerini MQTT aracısına yapılandırmak için önce bir BrokerAuthorization kaynağı oluşturursunuz.
Uyarı
Bu kümede Aracı Yetkilendirmesi etkinleştirilmediyse, uygulamaların MQTT aracısı State Store'a erişmek için gerekenler de dahil olmak üzere tüm MQTT konularına erişimi olacağı için bu bölümü atlayabilirsiniz.
BrokerAuthorization tanımını içeren aşağıdaki yaml dosyasını adlı
aio-dapr-authz.yamlbir dosyaya kaydedin:apiVersion: mqttbroker.iotoperations.azure.com/v1 kind: BrokerAuthorization metadata: name: my-dapr-authz-policies namespace: azure-iot-operations spec: listenerRef: - my-listener # change to match your listener name as needed authorizationPolicies: enableCache: false rules: - principals: attributes: - group: dapr-workload # match to the attribute annotated to the service account brokerResources: - method: Connect - method: Publish topics: - "$services/statestore/#" - method: Subscribe topics: - "clients/{principal.clientId}/services/statestore/#"BrokerAuthorization tanımını kümeye uygulayın:
kubectl apply -f aio-dapr-authz.yaml
Sonraki Adımlar
Dapr bileşenleri kümeye dağıtıldığına göre, dağıtılmış uygulamalar geliştirmek için Dapr kullanabilirsiniz.