API микросервисов на базе Dapr

Приложения контейнеров Azure предоставляют API, управляемые распределенной средой выполнения приложений (Dapr), которые помогают создавать и реализовывать простые, переносимые, устойчивые и защищенные микрослужбы. Dapr работает вместе с приложениями контейнеров Azure в качестве уровня абстракции, чтобы обеспечить платформу с минимальными усилиями по поддержке и высокой масштабируемостью.

Приложения контейнеров Azure предлагают выбор полностью управляемых API-интерфейсов Dapr, компонентов и функций, предназначенных специально для сценариев микрослужб. Просто включите и настройте Dapr как обычно в среде приложения контейнера.

Примечание.

Найдите информацию об обновлениях и объявлениях о выпуске для Dapr в контейнерных приложениях Azure в GitHub.

Как API микрослужб работают с приложением контейнера

Настройте API микрослужб для среды приложений контейнеров с приложением в контейнере, поддерживающим Dapr, компонентом Dapr, настроенным для вашего решения, и сайдкар-процессом Dapr, вызывающим обмен данными между ними. На следующей схеме показаны основные понятия, используя API pub/sub в качестве примера.

Схема, демонстрирующая механизм публикации-подписки Dapr и как он работает в контейнерных приложениях.

Этикетка Параметры Dapr Описание
1 Приложений в контейнерах с включенной поддержкой Dapr Dapr включен на уровне приложения контейнера, настроив набор аргументов Dapr. Эти значения применяются ко всем редакциям заданного приложения-контейнера при выполнении в режиме нескольких редакций.
2 Dapr Полностью управляемые API Dapr предоставляются каждому контейнерному приложению через сайдкар Dapr. API Dapr можно вызывать из приложения контейнера через HTTP или gRPC. Сайдкар Dapr работает на HTTP порте 3500 и gRPC порте 50001.
3 Конфигурация компонента Dapr Dapr использует модульную конструкцию, в которой функциональные возможности предоставляются в качестве компонента. Компоненты Dapr можно совместно использовать для нескольких контейнерных приложений. Идентификаторы приложений Dapr, предоставленные в массиве областей, определяют, какие приложения контейнеров с поддержкой dapr загружают заданный компонент во время выполнения.

Управление версиями

Вместо того чтобы следовать фиксированному расписанию выпуска, Dapr в Azure Container Apps выпускает новые функции и функциональные возможности на основе приоритетов и стабильности двоичных файлов Dapr. Дополнительные сведения о выпусках Dapr в приложениях контейнеров Azure см. в статье "Как часто выпускаются версии Dapr".

Версии Dapr в приложениях контейнеров Azure включают:

  • Префикс семантического управления версиями, например 1.13.6, который обозначает совместимость с соответствующими API-интерфейсами среды выполнения DAPR OSS и связанными инструментами, такими как пакеты SDK и CLI.
  • Суффикс -msft.<number> , который обозначает включение настроек, относящихся к Azure, для повышения безопасности и готовности к рабочей среде.

Полный формат версии dapr в приложениях контейнеров Azure может выглядеть примерно так 1.13.6-msft.1.

Примечание.

Суффикс <number> может не всегда увеличиваться последовательно. Например, версия 1.13.6-msft.3 может пропустить 1.13.6-msft.2.

Поддерживаемые API Dapr, компоненты и инструменты

Управляемые API

Azure Container Apps предлагает управляемые API Dapr, общедоступные в целом (API строительных блоков и операционные API). Эти API полностью управляются и поддерживаются для использования в рабочих средах.

Чтобы узнать больше об использовании API и функций альфа-версии Dapr, см. раздел часто задаваемых вопросов о Dapr.

Схема, на которую показаны API Dapr.

Базовые API

API базовых компонентов Состояние Описание
Взаимодействие между службами Общедоступная версия Обнаружение служб и надежное выполнение прямых вызовов между ними с автоматическим использованием шифрования и проверки подлинности mTLS. Ознакомьтесь с известными ограничениями для вызова службы Dapr в приложениях контейнеров Azure.
Управление состоянием Общедоступная версия Предоставляет возможности управления состоянием для транзакций и операций CRUD.
Публикация и подписка Общедоступная версия Позволяет контейнерным приложениям издателя и подписчика взаимодействовать через брокер сообщений. Вы также можете создать декларативные подписки в раздел с помощью JSON-файла внешнего компонента. Дополнительные сведения о декларативном API pub/sub.
Привязки Общедоступная версия Активируйте приложения на основе событий.
Актеры Общедоступная версия (GA) Субъекты Dapr — это управляемые сообщениями однопоточные единицы работы, предназначенные для быстрого масштабирования. Например, в ситуациях с нагрузками, характеризующимися резкими всплесками.
Секреты Общедоступная версия Получите доступ к секретным данным из кода вашего приложения или используйте безопасные значения в компонентах Dapr.
Конфигурация Общедоступная версия Получение и подписка на элементы конфигурации приложения для поддерживаемых конфигурационных хранилищ.

Операционные API

Операционный API Состояние Описание
Здоровье Общедоступная версия Пробы проверки работоспособности, которые отслеживают готовность или работоспособность Dapr и готовность к инициализации пакетов SDK. API состояния доступен только через HTTP.
Проверки работоспособности sidecar Dapr автоматически настраиваются при включении Dapr в контейнерном приложении.
Метаданные Общедоступная версия Возвращает информацию о sidecar, что позволяет обнаруживать его во время выполнения.

Совместимые пакеты SDK

Последние пакеты пакета SDK для клиента Dapr совместимы с приложениями контейнеров Azure. Пакеты SDK dapr можно использовать с любым из поддерживаемых API среды выполнения DAPR версии 1.12.

Примечание.

В настоящее время расширения сервера Dapr, актер и SDK-решения для рабочих процессов несовместимы с контейнерными приложениями Azure. Дополнительные сведения обо всех пакетах Dapr SDK см. в разделе SDKs.

Компоненты Dapr

Компоненты уровня 1 и уровня 2

Поддерживается лишь подмножество компонентов Dapr. В этом подмножестве компоненты Dapr разбиваются на две категории поддержки: уровень 1 или уровень 2.

  • Компоненты уровня 1: стабильные компоненты, которые получают немедленное исследование в критических сценариях (безопасности или серьезной регрессии). В противном случае Microsoft сотрудничает с сообществом открытого исходного кода для решения проблем в виде срочного исправления или в следующем регулярном выпуске.
  • Компоненты уровня 2. Компоненты, которые исследуются по меньшему приоритету, так как они не находятся в стабильном состоянии или находятся в стороннем поставщике.
Компоненты уровня 1
API (Интерфейс программирования приложений) Компонент Тип
Управление состоянием Azure Cosmos DB (облачная база данных)
Хранилище BLOB-объектов Azure версии 1
Хранилище таблиц Azure
Microsoft SQL Server
state.azure.cosmosdb
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
Публикация и подписка Очереди шины обслуживания Azure
Разделы служебной шины Azure
Центры событий Azure
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
Привязка Очереди службы хранилища Azure
Очереди Сервисной Шины Azure
Хранилище BLOB-объектов Azure
Центры событий Azure
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
Управление секретами Azure Key Vault secretstores.azure.keyvault
Компоненты уровня 2
API (Интерфейс программирования приложений) Компонент Тип
Управление состоянием PostgreSQL
MySQL и MariaDB
Редис
state.postgresql
state.mysql
state.redis
Публикация и подписка Apache Kafka
Redis Streams
pubsub.kafka
pubsub.redis
Привязка Сетку событий Azure
Azure Cosmos DB (облачная база данных)
Apache Kafka
PostgreSQL
Редис
Крон
bindings.azure.eventgrid
bindings.azure.cosmosdb
bindings.kafka
bindings.postgresql
bindings.redis
bindings.cron
Настройка PostgreSQL
Редис
configuration.postgresql
configuration.redis

Дополнительные сведения об использовании поддерживаемых компонентов Dapr см. в разделе " Компоненты Dapr" в приложениях контейнеров Azure.

Инструменты

Azure Container Apps обеспечивают совместимость с инструментами с открытым исходным кодом Dapr, такими как SDK и CLI.

Ограничения

  • Спецификация конфигурации Dapr: любые возможности, которые требуют использования спецификации конфигурации Dapr.
  • Любые аннотации sidecar Dapr, не перечисленные в руководстве по активации Dapr.
  • API и компоненты поддерживаются: В Azure Container Apps поддерживаются только API Dapr и компоненты, перечисленные как GA, уровень 1 или уровень 2.
  • Напоминания актера: требуется minReplicas 1+ для обеспечения того, чтобы напоминания всегда были активными и срабатывает правильно.
  • Задания: Dapr не поддерживается для заданий.