четверг, 30 июля 2026 г.

Start, AppHost

Start, AppHost

https://chat.deepseek.com/share/ytqllzdymhe27olnt4

🟢 Работа с Dapr в PowerShell: что нужно знать

Ваш стартовый набор правильный — dapr init выполняется один раз для подготовки локального окружения. Дальше всё зависит от того, как вы запускаете приложения.

1. Первый запуск: инициализация

powershell
dapr init
  • Устанавливает контейнеры Docker: dapr_redis (state store/pubsub), dapr_zipkin (трассировка), dapr_placement (сервис actor).

  • После этого dapr готов к работе.

Если Docker не нужен, можно использовать облегчённый режим:
dapr init --slim — без контейнеров, только бинарники sidecar.

2. Проверка статуса

powershell
dapr status

Показывает, запущены ли placement, Redis, Zipkin и общее состояние среды.

3. Запуск приложений (без Aspire)

Если вы запускаете приложение вручную:

powershell
dapr run --app-id myapp --app-port 5000 --dapr-http-port 3500 -- dotnet run

Но в вашем Aspire-проекте это не требуется — сайдкары запускаются и останавливаются автоматически через .WithDaprSidecar().

4. Сборка и остановка

  • Остановка сайдкаров вручную (если запускали через dapr run):
    dapr stop <app-id>

  • Остановка всей среды Dapr (удаление контейнеров, если вы инициализировали через dapr init):
    dapr uninstall
    после этого нужно будет снова сделать dapr init, если Dapr ещё нужен.

  • При работе с Aspire достаточно закрыть AppHost (Ctrl+C) — все сайдкары завершатся автоматически.

5. Просмотр логов сайдкара

powershell
dapr logs <app-id>

Удобно, если нужно проверить, как обрабатываются pub/sub или state-запросы.

6. Панель мониторинга (Dashboard)

  • Раньше была dapr dashboard, сейчас рекомендуется использовать Zipkin для трейсинга (он запускается при dapr init). Zipkin доступен по умолчанию на http://localhost:9411.

  • В Aspire вы получаете полную приборную панель, поэтому отдельная Dapr Dashboard не нужна.

7. Ручное тестирование Pub/Sub

Можно публиковать события прямо из консоли, не запуская приложение-отправитель:

powershell
dapr publish --pubsub pubsub --topic forecast-generated --data '{"ForecastCount":5, "AverageTempC":10}'

8. Компоненты (компоненты Dapr)

  • Файлы конфигурации (state store, pubsub, bindings) по умолчанию лежат в %USERPROFILE%\.dapr\components.

  • При использовании Aspire с интеграцией Dapr можно размещать компоненты рядом с проектом, а в AppHost указывать через .WithDaprSidecar("apiservice", dapr => dapr.WithResourcesPath("../components")) — это удобнее.

9. Важный нюанс для вашего проекта

Вы используете CommunityToolkit.Aspire.Hosting.Dapr. Когда раскомментируете builder.AddDapr() и .WithDaprSidecar(), ни в коем случае не запускайте дополнительно dapr run — Aspire сам поднимет и настроит сайдкары для каждого сервиса. Двойной запуск приведёт к конфликтам портов.

10. Чего точно не надо делать каждый раз

  • Повторно выполнять dapr init — только если вы удаляли окружение (dapr uninstall).

  • Вручную поднимать dapr run для проектов, которыми управляет Aspire.

Если всё работает через AppHost — вы на правильном пути. Dapr CLI вам понадобится в основном для dapr status, просмотра логов и отладки.


Комментариев нет:

Отправить комментарий