Краткое руководство: Развертывание приложения Aspire App в Azure App Service

Из этого краткого руководства вы узнаете, как создать и развернуть первое приложение Aspire в Службе приложений Azure. Служба приложений Azure предоставляет полностью управляемую платформу для размещения веб-приложений с встроенным обслуживанием инфраструктуры, исправлением безопасности и масштабированием.

Вы можете пройти этот быстрый старт в браузере, используя GitHub Codespaces, который предоставляет предварительно настроенную среду разработки с уже установленными .NET 10 и Azure Developer CLI. К концу у вас есть запущенное приложение Aspire, развернутое в Службе приложений Azure.

Замечание

Хотя в этом кратком руководстве основное внимание уделяется проектам .NET, Aspire также поддерживает приложения Python, начиная с Aspire 1.3. Приложения Python Aspire также можно развернуть в Службе приложений Azure с помощью той же интеграции.

Предпосылки

Создание начального приложения Aspire в пространстве кода GitHub

  1. Перейдите к github.com/codespaces.

  2. Для шаблона .NET выберите "Использовать этот шаблон".

    В вашем браузере откроется новое пространство кода с Visual Studio Code, работающим в браузере. Среда включает в себя .NET 10 и предустановленный интерфейс командной строки разработчика Azure (Azure Developer CLI).

  3. В терминале кодового пространства установите Aspire CLI глобально.

    dotnet tool install -g Aspire.Cli
    
  4. В терминале создайте новое приложение Aspire. При появлении запроса примите значения по умолчанию.

    aspire new aspire-starter --name aspire-starter
    

    Команда создает новый каталог aspire-starter с полным решением Aspire, в том числе:

    • Проект AppHost для оркестрации
    • Проект ServiceDefaults для общих конфигураций
    • Примеры API и проектов веб-интерфейсов
  5. Перейдите в каталог проекта:

    cd aspire-starter
    

Добавьте интеграцию службы приложений Azure

Настройте приложение Aspire для развертывания в Службе приложений Azure.

  1. Добавьте пакет интеграции службы приложений Azure:

    aspire add azure-appservice
    

    Команда aspire add автоматически обнаруживает проект AppHost и добавляет в него пакет Aspire.Hosting.Azure.AppService .

  2. Откройте aspire-starter/aspire-starter.AppHost/AppHost.cs.

  3. Добавьте среду Службы приложений Azure после CreateBuilder строки:

    builder.AddAzureAppServiceEnvironment("app-service-env");
    

    Дополнительные сведения см. в статье " Требуется ли среда службы приложений для запуска приложений Aspire?".

  4. Добавьте .WithExternalHttpEndpoints() в проект apiservice. Полный apiservice код должен выглядеть следующим образом:

    var apiService = builder.AddProject<Projects.aspire_starter_ApiService>("apiservice")
        .WithExternalHttpEndpoints()
        .WithHttpHealthCheck("/health");
    

    Замечание

    Для apiservice требуются .WithExternalHttpEndpoints(), так как Aspire с помощью службы App Service в настоящее время не может управлять трафиком между приложениями через внутренние конечные точки. apiservice должно быть доступно через внешние конечные точки HTTP для обеспечения межсервисного взаимодействия.

Развертывание в Azure

  1. Непосредственно из приложения aspire-starter инициализируйте azd в текущем каталоге:

    azd init
    

    При появлении запроса

    • Выберите "Сканировать текущий каталог".
    • Выберите "Подтвердить" и продолжить инициализацию приложения.
    • Введите уникальное имя среды:, введите желаемое aspire-quickstartимя.

    Команда создает необходимые файлы конфигурации для развертывания, которые по умолчанию — это просто файл azure.yaml , указывающий на проект AppHost. Эта конфигурация позволяет azd up работать, посредством идентификации проекта AppHost. Значение host: containerapp не определяет целевой объект развертывания, так как azd использует инфраструктуру, определенную в файле AppHost.cs (в данном случае среда службы приложений, с которой вы добавили AddAzureAppServiceEnvironment).

  2. Войдите в Azure с помощью azd auth login. Откроется интерактивная страница входа. Войдите, используя свои учетные данные Azure.

    azd auth login
    
  3. Разверните приложение:

    azd up
    

    Когда появится запрос:

    • Подписка. Выберите подписку Azure.
    • Расположение: выберите регион рядом с вами (например, ( Европа) Западная Европа (westeurope))

    Команда azd up выполняет следующие действия на основе кода AppHost.cs :

    • Создает новую группу ресурсов
    • Создание плана службы приложений Azure
    • Создает Реестр контейнеров Azure
    • Создает два веб-приложения службы приложений (один для API, один для внешнего интерфейса)
    • Создание ресурса управляемой панели мониторинга Aspire
    • Сборка и контейнеризация ваших приложений
    • Передача контейнеров в реестр контейнеров Azure
    • Развёртывает контейнеры в Службе приложений

    Этот процесс занимает несколько минут.

  4. После завершения развертывания azd отображает URL-адреса конечных точек для развернутых служб.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service apiservice
      - Endpoint: https://apiservice-xxxxxx.azurewebsites.net/ 
    
      (✓) Done: Deploying service webfrontend
      - Endpoint: https://webfrontend-xxxxxx.azurewebsites.net/ 
    
      Aspire Dashboard: https://app-service-env-aspiredashboard-xxxxxx.azurewebsites.net
    
    SUCCESS: Your up workflow to provision and deploy to Azure completed in 1 minute 49 seconds.
    

Просмотрите приложение Aspire

  1. В выходных данных развертывания найдите URL-адрес службы webfrontend . Похоже на следующее:

    webfrontend: https://webfrontend-xxxxx.azurewebsites.net
    
  2. Скопируйте URL-адрес и откройте его на новой вкладке браузера.

    В службе приложений Azure запущено начальное приложение Aspire. Веб-интерфейс взаимодействует со службой API, демонстрируя распределенную архитектуру.

  3. Попробуйте перейти по приложению, чтобы убедиться, что он работает правильно.

  4. Чтобы просмотреть панель мониторинга Aspire, найдите URL-адрес панели мониторинга Aspire в выходных данных развертывания и откройте ее на новой вкладке браузера.

    Снимок экрана: панель мониторинга Aspire приложения, работающего в Службе приложений Azure.

Просмотр сведений о развертывании на портале Azure

  1. Перейдите на портал Azure.

  2. В строке поиска введите группы ресурсов и выберите группы ресурсов.

  3. Найдите и выберите группу ресурсов, созданную azd (она начинается с rg- имени среды).

    Скриншот вида группы ресурсов приложения Aspire, развернутого с помощью AZD.

    Вы должны увидеть следующие ресурсы:

    • План службы приложений: инфраструктура размещения
    • Службы приложений: ваши веб-фронтенды и приложения API
    • Панель мониторинга Aspire: управляемый ресурс Azure, защищенный с помощью управления доступом с поддержкой ресурсов (RBAC).
    • Реестр контейнеров: хранит образы контейнеров
    • Назначенное пользователем удостоверение: обеспечивает безопасный доступ между службами

Очистите ресурсы

Если ресурсы Azure больше не нужны, удалите их, чтобы избежать расходов.

  1. В терминале кодового пространства выполните команду:

    azd down
    
  2. При появлении запроса подтвердите удаление ресурсов.

  3. Выберите "Да" , чтобы окончательно удалить группу ресурсов и все ресурсы.

Команда удаляет все Azure ресурсы, созданные во время этого краткого запуска.

Часто задаваемые вопросы

Требуется ли среда службы приложений для запуска приложений Aspire?

Нет, вам не нужна среда службы приложений для запуска приложений Aspire в Службе приложений Azure. Метод AddAzureAppServiceEnvironment создает концепцию среды Aspire, представляющую инфраструктуру размещения для приложения, которая в данном случае будет службой приложений. Несмотря на его имя, он не относится к средам службы приложений.

При вызове AddAzureAppServiceEnvironment происходит создание ресурсов:

  • План службы приложений Azure (уровень "Премиум P0V3" в Linux по умолчанию)
  • Реестр контейнеров Azure для хранения образов контейнеров
  • Назначаемая пользователем управляемая идентичность для безопасного доступа между службами

Эта концепция среды Aspire объединяет ресурсы и предоставляет инфраструктуру, необходимую для развертывания приложений Aspire в Службе приложений Azure.

Как настроить развертывание службы приложений?

Развертывание Службы приложений можно настроить, изменив конфигурацию AppHost.cs. Интеграция Службы приложений Azure Aspire предоставляет несколько способов настройки развертывания:

  • Настройка плана службы приложений: настройка SKU, уровня и масштабирования
  • Настройка параметров службы приложений: добавление переменных среды, строк подключения и параметров приложения
  • Настройка инфраструктуры: изменение сети, проверки подлинности и других ресурсов Azure
  • Использование существующих ресурсов. Подключение к существующим планам службы приложений или другим ресурсам Azure

Дополнительные сведения см. в статье "Настройка приложения Aspire для службы приложений Azure".

Дальнейшие шаги

Вы успешно развернули приложение Aspire в Службе приложений Azure! Ниже приведены некоторые дальнейшие действия по изучению:

Изучение функций Службы приложений Azure