Поделиться через


Руководство. Развертывание проекта .NET Aspire с помощью Azure Developer CLI

Azure Developer CLI (azd) позволяет развертывать проекты .NET Aspire с помощью операций GitHub или конвейеров DevOps Azure, автоматически настраивая необходимые параметры среды и проверки подлинности. В этой статье описывается процесс создания и развертывания проекта .NET Aspire на Azure Container Apps с помощью azd. Вы узнаете о следующих понятиях:

  • Узнайте, как работает интеграция azd с проектами .NET.NET Aspire
  • Создание и настройка репозитория GitHub или Azure DevOps для проекта .NET Aspire с помощью azd
  • Следите за рабочим процессом GitHub Actions и изучайте исполнение конвейера DevOps Azure, а также развертывания Azure.

Необходимые условия

Для работы с .NET.NET Aspireу вас должно быть установлено следующее:

Дополнительные сведения см. в разделе .NET.NET Aspire программы установки и инструментови .NET.NET Aspire пакета SDK.

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

Кроме того, необходимо установить Azure Developer CLIлокально (версия 1.5.1 или новее). Ниже приведены распространенные параметры установки:

winget install microsoft.azd

Создайте решение .NET.NET Aspire

В качестве отправной точки в этой статье предполагается, что вы создали решение .NET.NET Aspire из шаблона .NET.NET Aspire начального приложения. Для получения дополнительной информации см. краткое руководство по : создание первого приложения .NET.NET Aspire.

Инициализация шаблона

  1. Откройте новое окно терминала и выполните cd в каталоге с вашим решением .NET.NET Aspire.

  2. Выполните команду azd init, чтобы инициализировать проект с помощью azd, которая будет проверять структуру локального каталога и определять тип приложения.

    azd init
    

    Дополнительные сведения о команде azd init см. в azd init.

  3. При появлении запроса на три варианта инициализации приложения выберите "Использовать код в текущем каталогеazd".

    ? How do you want to initialize your app?  [Use arrows to move, type to filter]
    > Use code in the current directory
      Select a template
      Create a minimal project
    
  4. После сканирования каталога azd предложит убедиться, что он нашел правильный проект .NET.NET AspireAppHost. Выберите параметр Подтвердить и продолжить инициализацию моего приложения.

    Detected services:
    
      .NET (Aspire)
      Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
    
    azd will generate the files necessary to host your app on Azure using Azure Container Apps.
    
    ? Select an option  [Use arrows to move, type to filter]
    > Confirm and continue initializing my app
      Cancel and exit
    
  5. Введите имя среды, которое будет использоваться для именования подготовленных ресурсов в Azure и управления различными средами, такими как dev и prod.

    Generating files to run your app on Azure:
    
      (✓) Done: Generating ./azure.yaml
      (✓) Done: Generating ./next-steps.md
    
    SUCCESS: Your app is ready for the cloud!
    You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
    

azd создает ряд файлов и помещает их в рабочий каталог. Эти файлы:

  • azure.yaml: описывает службы приложения, такие как проект AppHost .NET Aspire, и сопоставляет их с Azure ресурсами.
  • .azure/config.json: файл конфигурации, который сообщает azd, что такое текущая активная среда.
  • .azure/aspireazddev/.env: содержит специфичные для среды переопределения.

Создание репозитория и конвейера GitHub

Azure Developer CLI позволяет автоматически создавать конвейеры CI/CD с правильными конфигурациями и разрешениями для подготовки и развертывания ресурсов в Azure. azd также может создать репозиторий GitHub для приложения, если он еще не существует.

  1. Выполните команду azd pipeline config, чтобы настроить конвейер развертывания и безопасно подключить его к Azure:

    azd pipeline config
    
  2. Выберите подписку для сопровождения и развертывания ресурсов для приложения.

  3. Выберите местоположение Azure для использования ресурсов.

  4. При появлении запроса на создание нового репозитория Git в каталоге введите y и нажмите клавишу ВВОД.

    Заметка

    Для создания репозитория GitHub требуется войти в GitHub. Существует несколько вариантов, которые зависят от ваших предпочтений. После входа вам будет предложено создать новый репозиторий в текущем каталоге.

  5. Выберите Создать новый частный репозиторий GitHub, чтобы настроить удаленный git.

  6. Введите выбранное вами имя для нового репозитория GitHub или нажмите клавишу ВВОД, чтобы использовать имя по умолчанию. azd создает новый репозиторий в GitHub и настраивает его с необходимыми секретами, необходимыми для проверки подлинности в Azure.

    Снимок экрана: шаги по настройке конвейера.

  7. Введите и, чтобы продолжить, когда azd предложит зафиксировать и отправить локальные изменения, чтобы запустить настроенный пайплайн.

Исследуйте рабочий процесс и развертывание действий GitHub

  1. Перейдите к новому репозиторию GitHub по ссылке, созданной командой azd.

  2. Перейдите на вкладку действий, чтобы просмотреть рабочие процессы репозитория. Вы увидите новый рабочий процесс, запущенный или уже завершенный. Выберите рабочий процесс, чтобы просмотреть шаги задания и сведения в журналах выполнения. Например, можно развернуть шаги, такие как установка .NET.NET Aspire рабочей нагрузки или развертывание приложения, чтобы увидеть подробности выполненного действия.

    Снимок экрана с этапами процесса выполнения GitHub Действий.

  3. Выберите Развернуть приложение, чтобы развернуть отображение журналов для этого шага. Вы увидите два URL-адреса конечных точек, отображаемые для apiservice и webfrontend. Выберите одну из этих ссылок, чтобы открыть их на другой вкладке браузера и изучить развернутое приложение.

    Снимок экрана, показывающий ссылки развернутого приложения.

Поздравляю! Вы успешно развернули проект .NET Aspire с помощью Azure Developer CLI и действий GitHub.

Создание репозитория и конвейера Azure DevOps

Важный

Как упоминалось в предварительных требованиях, необходимо создать Azure организацию DevOps или выбрать существующую организацию, чтобы выполнить последующие шаги. Вам также потребуется создать личный токен доступа (PAT) с разрешениями, перечисленными в предварительных требованиях.

Azure Developer CLI позволяет автоматически создавать конвейеры с правильными конфигурациями и разрешениями для подготовки и развертывания ресурсов в Azure. azd также может создать репозиторий Azure Pipelines для приложения, если он еще не существует.

  1. Выполните команду azd pipeline config, чтобы настроить конвейер развертывания и безопасно подключить его к Azure. Включите параметр --provider azdo, чтобы использовать Azure Pipelines вместо конфигурации GitHub Actions по умолчанию.

    azd pipeline config --provider azdo
    

    Важный

    Перед выполнением azd pipeline config, убедитесь, что вы успешно выполнили azd init для инициализации вашего проекта. Если во время выполнения конвейера возникают ошибки, такие как "нет проекта", см. раздел устранения неполадок для решений.

  2. Выберите подписку для сопровождения и развертывания ресурсов для приложения.

  3. Выберите местоположение Azure для использования ресурсов.

  4. Вставьте созданный ранее личный маркер доступа.

  5. Введите имя созданной или выбранной организации DevOps Azure.

  6. При появлении запроса на создание репозитория в текущем каталоге введите y и нажмите Enter.

  7. При появлении запроса на настройку удаленного репозитория git выберите Создать новый Azure Проект DevOps.

  8. Введите уникальное имя для нового репозитория, например aspireazd. azd создает новый репозиторий в репозитории Azure и настраивает его с необходимыми секретами, необходимыми для проверки подлинности в Azure.

    Снимок экрана: шаги по настройке конвейера.

  9. Введите и, чтобы продолжить, когда azd предложит зафиксировать и отправить локальные изменения, чтобы запустить настроенный пайплайн.

Исследуйте конвейер и развернутое приложение

  1. Перейдите к новому конвейеру Azure, используя ссылку на статус, предоставленную azd.

    Снимок экрана с успешным запуском конвейеров Azure.

  2. Выберите завершенный запуск пакетной обработки, чтобы просмотреть сводку.

    Снимок экрана, демонстрирующий сводное представление выполнения Azure Pipelines.

  3. Выберите ссылку задания в нижней части представления, чтобы перейти к сведениям о задании.

    Скриншот, на котором показано подробное представление выполнения Azure Pipelines.

  4. На странице сведений о задании отображается состояние всех отдельных этапов. Выберите Provision Infrastructure, чтобы просмотреть журналы для этого этапа, которые подробно описывают все шаги подготовки, выполненные azd. В нижней части журналов запишите окончательное сообщение о состоянии и ссылку на выделенную группу ресурсов Azure.

  5. Выберите ссылку в нижней части журналов вывода процесса, чтобы перейти на новую группу ресурсов Azure.

    Снимок экрана: развернутые Azure ресурсы.

    Заметка

    Вы также можете перейти непосредственно в новую группу ресурсов, найдя её через портал Azure. Название вашей группы ресурсов будет именем среды, которое вы указали в azd, с префиксом rg-.

  6. Выберите приложение контейнера веб-интерфейса, в котором размещена общедоступная часть вашего сайта.

  7. На странице сведений о веб-, нажмите на ссылку URL-адрес приложения, чтобы открыть сайт в браузере.

Важный

Если при просмотре вашего сайта в браузере возникла ошибка 403 Forbidden, убедитесь, что настройки доступа настроены правильно. На странице приложения веб-интерфейса на портале перейдите к Ingress в области навигации слева. Убедитесь, что входящий трафик настроен на Прием трафика из любого места и сохраните изменения.

Поздравляю! Вы успешно развернули проект .NET Aspire с помощью конвейеров Azure Developer CLI и Azure.

Устранение неполадок Azure развертывания конвейера DevOps

В этом разделе рассматриваются распространенные проблемы, которые могут возникнуть при развертывании .NET Aspire проектов с помощью Azure конвейеров DevOps.

ОШИБКА: проект не существует; чтобы создать проект, выполните команду azd init

Проблема. На этапе подготовки конвейера Azure DevOps возникает сообщение об ошибке:

ERROR: no project exists; to create a new project, run azd init

Причина. Эта ошибка возникает, так как azd init команда создает файлы (azure.yaml и .azure папку), которые обычно не фиксируются в репозитории. Если конвейер выполняется в чистой среде, эти файлы не существуют, что приводит к отказу команд azd.

Решение. Существует несколько подходов для решения этой проблемы:

Вставьте шаг azd init в ваш DevOps-конвейер Azure перед этапом подготовки. Вы можете использовать --from-code и --no-prompt флаги для выполнения команды, не в интерактивном режиме:

- task: AzureCLI@2
  displayName: 'Initialize Azure Developer CLI'
  inputs:
    azureSubscription: '$(AZURE_SERVICE_CONNECTION)'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      azd init --from-code --no-prompt
      azd env new $(AZURE_ENV_NAME) --location $(AZURE_LOCATION) --subscription $(AZURE_SUBSCRIPTION_ID)

Заметка

Если запросы возникают даже с --no-prompt, попробуйте выполнить azd init и azd env new как отдельные шаги или использовать переменные среды для предоставления ответов на все запросы. Флаг --from-code сообщает azd использовать существующий код в текущем каталоге, а не создавать проект из шаблона.

Обязательно определите следующие переменные в конвейере:

  • AZURE_ENV_NAME: имя среды (например, dev или prod)
  • AZURE_LOCATION: ваш Azure регион (например, eastus2)
  • AZURE_SUBSCRIPTION_ID: идентификатор Azure подписки

Вариант 2. Фиксация необходимых файлов в репозитории

Если вы предпочитаете зафиксировать созданные файлы в репозитории:

  1. Запустите azd init локально в каталоге проекта.
  2. Добавьте созданный azure.yaml файл в репозиторий.
  3. При необходимости добавьте папку в репозиторий .azure , если вы хотите сохранить параметры конкретной среды.

Заметка

Папка .azure содержит конфигурацию для конкретной среды, которая может включать конфиденциальную информацию. Внимательно просмотрите содержимое перед фиксацией в репозитории.

Вариант 3. Использование azd pipeline config с правильной инициализацией

Убедитесь, что вы запускаете azd pipeline config --provider azdo после успешного выполнения azd init локально. Эта команда должна настроить конвейер с правильной конфигурацией, которая обрабатывает инициализацию автоматически.

Если вы продолжаете сталкиваться с проблемами, убедитесь, что:

  • Структура вашего проекта соответствует тому, что azd ожидает для .NET.NET Aspire проектов.
  • Вы выполняете команды из правильного каталога (как правило, где находится ваш файл .sln)
  • Подключение Azure службы DevOps имеет необходимые разрешения для подготовки ресурсов

Очистка ресурсов

Выполните следующую команду Azure CLI, чтобы удалить группу ресурсов, если вам больше не нужны созданные ресурсы Azure. При удалении группы ресурсов также удаляются ресурсы, содержащиеся в нем.

az group delete --name <your-resource-group-name>

Дополнительные сведения см. в разделе Очистка ресурсов в Azure.