распределенной среде выполнения приложений (Dapr) предлагает API-интерфейсы разработчика, которые служат каналом для взаимодействия с другими службами и зависимостями, а также абстрагируют приложение от конкретных служб и зависимостей.
Dapr и .NET Aspire могут работать вместе, чтобы улучшить локальный опыт разработки. Используя Dapr с .NET Aspire, вы можете сосредоточиться на написании и реализации распределенных приложений на основе .NETвместо локального подключения.
В этом руководстве вы узнаете, как воспользоваться преимуществами абстракции Daprи авторской конфигурации .NET Aspireоблачных технологий для создания простых, переносимых, устойчивых и защищенных микрослужб в большом масштабе.
Сравнение .NET Aspire и Dapr
На первый взгляд Dapr и .NET Aspire могут выглядеть так, будто их функции пересекаются — и это действительно так. Однако они принимают различные подходы.
.NET
.NET Aspire считает, как создавать распределенные приложения на облачной платформе и сосредоточиться на улучшении локального опыта разработки.
Dapr — это среда выполнения, которая абстрагирует общие сложности базовой облачной платформы как во время разработки, так и в рабочей среде. Он полагается на боковики для предоставления абстракций для таких вещей, как конфигурация, управление секретами и обмен сообщениями. Базовая технология может легко переключаться через файлы конфигурации, при этом ваш код не требует изменения.
Аспект
.NET Aspire
Dapr
Цель
Предназначен для упрощения разработки облачных решений на локальных компьютерах разработки.
Разработан, чтобы упростить разработку и запуск распределенных приложений с общими API, которые можно легко переключить.
API
Разработчики должны вызывать API ресурсов с помощью определенных пакетов SDK
Разработчики обращаются к API в контейнере Dapr, который перенаправляет вызов к нужному API. Можно легко заменить API ресурсов, не изменяя код в микрослужбах.
Языки
Вы пишете микросервисы на языках .NET, Go, Python, Javascript и других.
Вы можете вызывать функции сайдкара Dapr на любом языке, поддерживающем интерфейсы HTTP/gRPC.
Политики безопасности
Не включает политики безопасности, но может безопасно настраивать подключения между межзависимыми ресурсами.
Включает настраиваемые политики безопасности, которые управляют доступом микрослужб к другим службам или ресурсам.
Развёртывание
Существуют инструменты для развертывания для Azure и Kubernetes.
Не включает средства развертывания. Приложения обычно развертываются с системами непрерывной интеграции и непрерывной разработки (CI/CD).
Панель управления
Предоставляет комплексное представление ресурсов и их телеметрии и поддерживает прослушивание любого поддерживаемого ресурса OTEL.
Ограничено только Dapr ресурсами.
.NET Aspire упрощает настройку и отладку приложений Dapr, предоставляя простой API для настройки сайдкаров и отображая сайдкары как ресурсы на панели мониторинга.
Изучение компонентов Dapr с помощью .NET Aspire
предоставляет множество встроенных компонентов, а при использовании с можно легко изучить и настроить эти компоненты. Не путайте эти компоненты с интеграциями .NET.NET Aspire. Например, рассмотрим следующее:
Dapr— компоненты: вызов AddDaprComponent для добавления настроенной интеграции в проект .NET.NET Aspire.
Установить Dapr
Для этой интеграции требуется Dapr версии 1.13 или более поздней. Чтобы установить Dapr, см. раздел Установка Dapr CLI. После установки интерфейса командной строки Dapr запустите dapr init, как указано в Инициализация Dapr в вашей локальной среде.
Важно!
Если вы попытаетесь запустить решение .NET Aspire без интерфейса командной строки Dapr, вы получите следующую ошибку:
Unable to locate the Dapr CLI.
Интеграция хостинга
В решении .NET Aspire для интеграции Dapr и доступа к его типам и API добавьте пакет NuGet 📦Aspire.Hosting.Dapr в проект хоста приложения .
Dapr использует шаблон сайдкара.
Dapr сайдкар функционирует совместно с вашим приложением как облегчённый, переносимый и бессерверный HTTP-сервер, который прослушивает входящие HTTP-запросы от вашего приложения.
Чтобы добавить сайдкар к ресурсу .NET.NET Aspire, вызовите метод WithDaprSidecar на нем. Параметр appId является уникальным идентификатором для приложения Dapr, но это необязательно. Если вы не предоставляете appId, вместо этого используется родительское имя ресурса.
using Aspire.Hosting.Dapr;
var builder = DistributedApplication.CreateBuilder(args);
var apiService = builder
.AddProject<Projects.Dapr_ApiService>("apiservice")
.WithDaprSidecar();
Настройте Dapr сайдкары
Метод WithDaprSidecar предлагает перегрузки для настройки параметров вспомогательных модулей Dapr, таких как AppId и различные порты. В следующем примере контейнер sidecar Dapr настроен с конкретными портами для GRPC, HTTP, метрик и идентификатора приложения.
При запуске решения .NET Aspire панель мониторинга отображает в качестве ресурса сайдкар Dapr с его статусом и логами.
панель управления
Использование Dapr боковой кареты в использовании проектов .NET Aspire
Чтобы использовать API Dapr из ресурсов .NET Aspire, вы можете использовать пакет NuGet 📦Dapr.AspNetCore/. Пакет SDK Dapr предоставляет набор API-интерфейсов для взаимодействия с Dapr сайдкарами.
Примечание
Используйте библиотеку Dapr.AspNetCore для интеграции Dapr с ASP.NET (интеграция DI, регистрация подписок и т. д.). Приложения, отличные отASP.NET (например — консольные приложения), могут просто использовать 📦Dapr.Client, чтобы делать вызовы через боковик Dapr.
При использовании SDK Dapr сайдкар Dapr вызывается по HTTP. Затем Dapr сайдкар перенаправляет запрос в целевую службу. Хотя целевая служба выполняется в отдельном процессе от боковой тележки, интеграция, связанная со службой, осуществляется в боковой тележке Dapr и отвечает за обнаружение службы и маршрутизацию запросов к целевой службе.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET Aspire
.NET Aspire — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.