Использование Dapr для разработки распределенных рабочих нагрузок приложений, которые разговаривают с Azure IoT MQ Preview
Внимание
Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время находится в предварительной версии. Не следует использовать это программное обеспечение предварительной версии в рабочих средах.
Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Чтобы использовать компоненты подключаемого модуля Dapr предварительной версии Azure IoT MQ, разверните компоненты pub/sub и хранилища состояний в развертывании приложения вместе с приложением Dapr. В этом руководстве показано, как развернуть приложение с помощью пакета SDK Dapr и подключаемых компонентов IoT MQ.
Необходимые компоненты
- Развернутые операции Интернета вещей Azure. Развертывание операций Интернета вещей Azure
- Развернутые компоненты Dapr для Интернета вещей MQ. Развертывание компонентов Dapr для Интернета вещей
Создание приложения Dapr
Построение приложения
Первым шагом является написание приложения, использующего пакет SDK Dapr для публикации и подписки или управления состояниями.
Создание пакета приложения
После завершения написания приложения Dapr создайте контейнер:
Чтобы упаковать приложение в контейнер, выполните следующую команду:
docker build . -t my-dapr-app
Отправьте его в выбранный реестр контейнеров, например:
Развертывание приложения Dapr
Следующее определение развертывания содержит тома, необходимые для развертывания приложения вместе с необходимыми контейнерами. В этом развертывании используется средство внедрения бокового автомобиля Dapr для автоматического добавления подключаемого модуля pod компонента.
Yaml содержит как ServiceAccount, так и для создания saTs для проверки подлинности с помощью IoT Mq и развертывания приложения Dapr.
Чтобы создать yaml-файл, используйте следующие определения:
Компонент Description volumes.mqtt-client-token
Маркер проверки подлинности системы, используемый для проверки подлинности подключаемых компонентов Dapr с помощью брокера MQ Интернета вещей volumes.aio-ca-trust-bundle
Цепочка доверия для проверки сертификата TLS брокера MQTT. По умолчанию тестовый сертификат, развернутый с помощью операций Интернета вещей Azure containers.mq-dapr-app
Контейнер приложения Dapr, который требуется развернуть
Сохраните следующий yaml в файл с именем
dapr-app.yaml
:apiVersion: v1 kind: ServiceAccount metadata: name: dapr-client namespace: azure-iot-operations annotations: aio-mq-broker-auth/group: dapr-workload --- apiVersion: apps/v1 kind: Deployment metadata: name: mq-dapr-app namespace: azure-iot-operations spec: replicas: 1 selector: matchLabels: app: mq-dapr-app template: metadata: labels: app: mq-dapr-app annotations: dapr.io/enabled: "true" dapr.io/inject-pluggable-components: "true" dapr.io/app-id: "mq-dapr-app" dapr.io/app-port: "6001" dapr.io/app-protocol: "grpc" spec: serviceAccountName: dapr-client volumes: # SAT token used to authenticate between Dapr and the MQTT broker - name: mqtt-client-token projected: sources: - serviceAccountToken: path: mqtt-client-token audience: aio-mq expirationSeconds: 86400 # Certificate chain for Dapr to validate the MQTT broker - name: aio-ca-trust-bundle configMap: name: aio-ca-trust-bundle-test-only containers: # Container for the Dapr application - name: mq-dapr-app image: <YOUR_DAPR_APPLICATION>
Разверните компонент, выполнив следующую команду:
kubectl apply -f dapr-app.yaml kubectl get pods -w
Модуль pod рабочей нагрузки должен сообщать обо всех модулях pod, выполняемых через короткий интервал, как показано в следующем примере выходных данных:
pod/dapr-workload created NAME READY STATUS RESTARTS AGE ... dapr-workload 3/3 Running 0 30s
Устранение неполадок
Если приложение не запускается или вы видите модули pod, CrashLoopBackoff
журналы для daprd
них наиболее полезны. Это daprd
контейнер, который автоматически развертывается с помощью приложения Dapr.
Выполните следующую команду, чтобы просмотреть журналы:
kubectl logs dapr-workload daprd
Следующие шаги
Теперь, когда вы знаете, как разрабатывать приложение Dapr, вы можете выполнить руководство по созданию приложения на основе событий с помощью Dapr.