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 загружают заданный компонент во время выполнения. |
Поддерживаемые API Dapr, компоненты и средства
Управляемые API
Azure Container Apps предлагает управляемые общедоступные API Dapr (стандартные блоки). Эти API полностью управляются и поддерживаются для использования в рабочих средах.
Дополнительные сведения об использовании API и функций альфа-dapr см. в разделе часто задаваемых вопросов о Dapr.
API | Состояние | Description |
---|---|---|
Вызов между службами | Общедоступная версия | Обнаружение служб и надежное выполнение прямых вызовов между ними с автоматическим использованием шифрования и проверки подлинности mTLS. Ознакомьтесь с известными ограничениями для вызова службы Dapr в приложениях контейнеров Azure. |
Управление данными о состоянии | Общедоступная версия | Предоставляет возможности управления состоянием для транзакций и операций CRUD. |
Публикация и подписка | Общедоступная версия | Позволяет контейнерным приложениям издателя и подписчика взаимодействовать через брокер сообщений. Вы также можете создать декларативные подписки в раздел с помощью JSON-файла внешнего компонента. Дополнительные сведения о декларативном API pub/sub. |
Bindings | Общедоступная версия | Активация приложений на основе событий |
Актеры | Общедоступная версия | Субъекты Dapr — это управляемые сообщениями однопоточные единицы работы, предназначенные для быстрого масштабирования. Например, в ситуациях с высокой нагрузкой. |
Наблюдаемость | Общедоступная версия | Отправка сведений о трассировке в серверную часть Application Insights. |
Секреты | Общедоступная версия | Доступ к секретам из кода приложения или ссылки на безопасные значения в компонентах Dapr. |
Конфигурация | Общедоступная версия | Получение и подписка на элементы конфигурации приложения для поддерживаемых хранилищ конфигураций. |
Совместимые пакеты SDK
Последние пакеты пакета SDK для клиента Dapr совместимы с приложениями контейнеров Azure. Вы можете использовать любой из поддерживаемых API Dapr с помощью следующих версий клиентского пакета SDK dapr:
Язык | Версия пакета SDK |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
Примечание.
В настоящее время расширения сервера Dapr, субъект и пакеты SDK рабочего процесса несовместимы с приложениями контейнеров Azure. Дополнительные сведения обо всех пакетах пакета SDK 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 не поддерживается для заданий.