API микрослужбы, управляемые Dapr
Приложения контейнеров Azure предоставляют API, управляемые распределенной средой выполнения приложений (Dapr), которые помогают создавать и реализовывать простые, переносимые, устойчивые и защищенные микрослужбы. Dapr работает вместе с приложениями контейнеров Azure в качестве уровня абстракции, чтобы обеспечить низкое обслуживание и масштабируемую платформу. Приложения контейнеров Azure предлагают выбор полностью управляемых API-интерфейсов Dapr, компонентов и функций, предназначенных специально для сценариев микрослужб. Просто включите и настройте Dapr как обычно в среде приложения контейнера.
Как API микрослужб работают с приложением контейнера
Настройте API микрослужб для среды приложений контейнеров с поддержкой Dapr, компонента Dapr, настроенного для вашего решения, и бокового автомобиля Dapr, вызывающего обмен данными между ними. На следующей схеме показаны основные понятия, используя API pub/sub в качестве примера.
Этикетка | Параметры Dapr | Description |
---|---|---|
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 включают:
- Префикс семантического управления версиями, например
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 блока
API стандартных блоков | Состояние | Description |
---|---|---|
Вызов между службами | Общедоступная версия | Обнаружение служб и надежное выполнение прямых вызовов между ними с автоматическим использованием шифрования и проверки подлинности mTLS. Ознакомьтесь с известными ограничениями для вызова службы Dapr в приложениях контейнеров Azure. |
Управление данными о состоянии | Общедоступная версия | Предоставляет возможности управления состоянием для транзакций и операций CRUD. |
Публикация и подписка | Общедоступная версия | Позволяет контейнерным приложениям издателя и подписчика взаимодействовать через брокер сообщений. Вы также можете создать декларативные подписки в раздел с помощью JSON-файла внешнего компонента. Дополнительные сведения о декларативном API pub/sub. |
Bindings | Общедоступная версия | Активация приложений на основе событий |
Актеры | Общедоступная версия | Субъекты Dapr — это управляемые сообщениями однопоточные единицы работы, предназначенные для быстрого масштабирования. Например, в ситуациях с высокой нагрузкой. |
Секреты | Общедоступная версия | Доступ к секретам из кода приложения или ссылки на безопасные значения в компонентах Dapr. |
Конфигурация | Общедоступная версия | Получение и подписка на элементы конфигурации приложения для поддерживаемых хранилищ конфигураций. |
Операционные API
Операционный API | Состояние | Description |
---|---|---|
Здоровье | Общедоступная версия | Пробы проверки работоспособности, которые отслеживают готовность или работоспособность Dapr и готовность к инициализации пакетов SDK. API работоспособности доступен только для HTTP. |
Метаданные | Общедоступная версия | Возвращает сведения о боковой плате, что позволяет обнаруживать время выполнения. |
Совместимые пакеты SDK
Последние пакеты пакета SDK для клиента Dapr совместимы с приложениями контейнеров Azure. Пакеты SDK dapr можно использовать с любым из поддерживаемых API среды выполнения DAPR версии 1.12.
Примечание.
В настоящее время расширения сервера Dapr, субъект и пакеты SDK рабочего процесса несовместимы с приложениями контейнеров Azure. Дополнительные сведения обо всех пакетах пакета SDK Dapr.
Компоненты Dapr
Компоненты уровня 1 и уровня 2
Поддерживается подмножество компонентов Dapr. В этом подмножестве компоненты Dapr разбиваются на две категории поддержки: уровень 1 или уровень 2.
- Компоненты уровня 1: стабильные компоненты, которые получают немедленное исследование в критических сценариях (безопасности или серьезной регрессии). В противном случае корпорация Майкрософт сотрудничает с открытый код для обращения к исправлению или следующему регулярному выпуску.
- Компоненты уровня 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 Redis |
state.postgresql state.mysql state.redis |
Публикация и подписка | Apache Kafka Redis: потоки |
pubsub.kafka pubsub.redis |
Привязка | Сетку событий Azure Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Настройка | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Средства
Приложения контейнеров Azure обеспечивают совместимость с средствами Dapr открытый код, такими как пакеты SDK и CLI.
Ограничения
- Спецификация конфигурации Dapr: любые возможности, которые требуют использования спецификации конфигурации Dapr.
- Любые заметки на стороне Dapr, не перечисленные в руководстве по включению Dapr
- Поддержка API и компонентов: в приложениях контейнеров Azure поддерживаются только API-интерфейсы и компоненты Dapr, перечисленные как ga, tier 1 или Tier 2.
- Напоминания актера: требуется minReplicas 1+ для обеспечения того, чтобы напоминания всегда были активными и срабатывает правильно.
- Задания: Dapr не поддерживается для заданий.
Следующие шаги
- Развертывание Dapr с помощью:
- Включите Dapr в существующем приложении контейнера.