Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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 8.0 или .NET 9.0
- OCI-совместимая среда выполнения контейнеров, например:
- Docker рабочий стол или Podman. Дополнительные сведения см. в исполняемая среда контейнера.
- Интегрированная среда разработки (IDE) или редактор кода, например:
- Visual Studio 2022 версия 17.9 или выше (необязательно)
-
Visual Studio Code (необязательно)
- C# Dev Kit: расширение (необязательно)
- JetBrains Rider с плагином .NET.NET Aspire (необязательно)
Дополнительные сведения см. в разделе .NET.NET Aspire программы установки и инструментови .NET.NET Aspire пакета SDK.
- Azure организацию DevOps или выберите существующую организацию
-
Создайте Azure токен личного доступа DevOps и сохраните его для последующего использования. Настройте токен со следующими разрешениями:
- Пулы агентов (чтение, управление)
- Сборка (чтение и выполнение)
- Код (полный)
- Проект и команда (чтение, запись и управление)
- Разрешение (чтение, запись, выполнение и управление)
- Подключения к сервису (чтение, запрос и управление)
Кроме того, необходимо установить Azure Developer CLIлокально (версия 1.5.1 или новее). Ниже приведены распространенные параметры установки:
Создайте решение .NET.NET Aspire
В качестве отправной точки в этой статье предполагается, что вы создали решение .NET.NET Aspire из шаблона .NET.NET Aspire начального приложения. Для получения дополнительной информации см. краткое руководство по : создание первого приложения .NET.NET Aspire.
Инициализация шаблона
Откройте новое окно терминала и выполните
cd
в каталоге с вашим решением .NET.NET Aspire.Выполните команду
azd init
, чтобы инициализировать проект с помощьюazd
, которая будет проверять структуру локального каталога и определять тип приложения.azd init
Дополнительные сведения о команде
azd init
см. в azd init.При появлении запроса на три варианта инициализации приложения выберите "Использовать код в текущем каталоге
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
После сканирования каталога
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
Введите имя среды, которое будет использоваться для именования подготовленных ресурсов в 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 для приложения, если он еще не существует.
Выполните команду
azd pipeline config
, чтобы настроить конвейер развертывания и безопасно подключить его к Azure:azd pipeline config
Выберите подписку для сопровождения и развертывания ресурсов для приложения.
Выберите местоположение Azure для использования ресурсов.
При появлении запроса на создание нового репозитория Git в каталоге введите y и нажмите клавишу ВВОД.
Заметка
Для создания репозитория GitHub требуется войти в GitHub. Существует несколько вариантов, которые зависят от ваших предпочтений. После входа вам будет предложено создать новый репозиторий в текущем каталоге.
Выберите Создать новый частный репозиторий GitHub, чтобы настроить удаленный git.
Введите выбранное вами имя для нового репозитория GitHub или нажмите клавишу ВВОД, чтобы использовать имя по умолчанию.
azd
создает новый репозиторий в GitHub и настраивает его с необходимыми секретами, необходимыми для проверки подлинности в Azure.Введите и, чтобы продолжить, когда
azd
предложит зафиксировать и отправить локальные изменения, чтобы запустить настроенный пайплайн.
Исследуйте рабочий процесс и развертывание действий GitHub
Перейдите к новому репозиторию GitHub по ссылке, созданной командой
azd
.Перейдите на вкладку действий, чтобы просмотреть рабочие процессы репозитория. Вы увидите новый рабочий процесс, запущенный или уже завершенный. Выберите рабочий процесс, чтобы просмотреть шаги задания и сведения в журналах выполнения. Например, можно развернуть шаги, такие как установка .NET.NET Aspire рабочей нагрузки или развертывание приложения, чтобы увидеть подробности выполненного действия.
Выберите Развернуть приложение, чтобы развернуть отображение журналов для этого шага. Вы увидите два URL-адреса конечных точек, отображаемые для
apiservice
иwebfrontend
. Выберите одну из этих ссылок, чтобы открыть их на другой вкладке браузера и изучить развернутое приложение.
Поздравляю! Вы успешно развернули проект .NET Aspire с помощью Azure Developer CLI и действий GitHub.
Создание репозитория и конвейера Azure DevOps
Важный
Как упоминалось в предварительных требованиях, необходимо создать Azure организацию DevOps или выбрать существующую организацию, чтобы выполнить последующие шаги. Вам также потребуется создать личный токен доступа (PAT) с разрешениями, перечисленными в предварительных требованиях.
Azure Developer CLI позволяет автоматически создавать конвейеры с правильными конфигурациями и разрешениями для подготовки и развертывания ресурсов в Azure.
azd
также может создать репозиторий Azure Pipelines для приложения, если он еще не существует.
Выполните команду
azd pipeline config
, чтобы настроить конвейер развертывания и безопасно подключить его к Azure. Включите параметр--provider azdo
, чтобы использовать Azure Pipelines вместо конфигурации GitHub Actions по умолчанию.azd pipeline config --provider azdo
Важный
Перед выполнением
azd pipeline config
, убедитесь, что вы успешно выполнилиazd init
для инициализации вашего проекта. Если во время выполнения конвейера возникают ошибки, такие как "нет проекта", см. раздел устранения неполадок для решений.Выберите подписку для сопровождения и развертывания ресурсов для приложения.
Выберите местоположение Azure для использования ресурсов.
Вставьте созданный ранее личный маркер доступа.
Введите имя созданной или выбранной организации DevOps Azure.
При появлении запроса на создание репозитория в текущем каталоге введите y и нажмите Enter.
При появлении запроса на настройку удаленного репозитория git выберите Создать новый Azure Проект DevOps.
Введите уникальное имя для нового репозитория, например
aspireazd
.azd
создает новый репозиторий в репозитории Azure и настраивает его с необходимыми секретами, необходимыми для проверки подлинности в Azure.Введите и, чтобы продолжить, когда
azd
предложит зафиксировать и отправить локальные изменения, чтобы запустить настроенный пайплайн.
Исследуйте конвейер и развернутое приложение
Перейдите к новому конвейеру Azure, используя ссылку на статус, предоставленную
azd
.Выберите завершенный запуск пакетной обработки, чтобы просмотреть сводку.
Выберите ссылку задания в нижней части представления, чтобы перейти к сведениям о задании.
На странице сведений о задании отображается состояние всех отдельных этапов. Выберите Provision Infrastructure, чтобы просмотреть журналы для этого этапа, которые подробно описывают все шаги подготовки, выполненные
azd
. В нижней части журналов запишите окончательное сообщение о состоянии и ссылку на выделенную группу ресурсов Azure.Выберите ссылку в нижней части журналов вывода процесса, чтобы перейти на новую группу ресурсов Azure.
Заметка
Вы также можете перейти непосредственно в новую группу ресурсов, найдя её через портал Azure. Название вашей группы ресурсов будет именем среды, которое вы указали в
azd
, с префиксомrg-
.Выберите приложение контейнера веб-интерфейса, в котором размещена общедоступная часть вашего сайта.
На странице сведений о веб-, нажмите на ссылку 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
.
Решение. Существует несколько подходов для решения этой проблемы:
Вариант 1. Запуск azd init в конвейере (рекомендуется)
Вставьте шаг 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. Фиксация необходимых файлов в репозитории
Если вы предпочитаете зафиксировать созданные файлы в репозитории:
- Запустите
azd init
локально в каталоге проекта. - Добавьте созданный
azure.yaml
файл в репозиторий. - При необходимости добавьте папку в репозиторий
.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.
.NET Aspire