Непрерывное развертывание в Службе приложений Azure
Примечание.
Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений останутся неизменными.
Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
Служба приложений Azure обеспечивает непрерывное развертывание из репозиториев GitHub, Bitbucket и Azure Repos, загружая последние обновления.
Подготовка репозитория
Чтобы получать автоматические сборки с сервера сборки Службы приложений Azure, убедитесь, что корень репозитория содержит нужные файлы проекта.
Параметры выполнения | Файлы в корневом каталоге |
---|---|
ASP.NET (только для Windows) | *.sln , *.csproj или default.aspx |
ASP.NET Core | *.sln или *.csproj |
PHP | index.php |
Ruby (только для Linux) | Gemfile |
Node.js | server.js , app.js или package.json с скриптом запуска |
Python | *.py , requirements.txt или runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html или iisstart.htm |
веб-задания; | <job_name>/run.<extension> в разделе App_Data/jobs/continuous для непрерывных веб-заданий или App_Data/jobs/triggered для триггерных веб-заданий. См. сведения в документации по веб-заданиям Kudu. |
Функции | Ознакомьтесь с разделом Непрерывное развертывание для Функций Azure. |
Чтобы настроить развертывание, добавьте в корень репозитория DEPLOYMENT-файл. См. сведения о настройке развертываний и настраиваемом скрипте развертывания.
Примечание.
Если вы используете Visual Studio, позвольте Visual Studio создать репозиторий для вас. Ваш проект будет немедленно готов к развертыванию через Git.
Настройка источника развертывания
На портале Azure перейдите на страницу управления для вашего приложения Службы приложений.
В области слева выберите Центр развертывания. Затем выберите Параметры.
В поле Источник выберите один из параметров CI/CD.
Чтобы продолжить, откройте вкладку, соответствующую поставщику сборки.
GitHub Actions является поставщиком сборки по умолчанию. Чтобы изменить поставщика, нажмите кнопку Change provider> Служба приложений Build Service>OK.
При первом развертывании из GitHub выберите Авторизовать и следуйте запросам авторизации. Если требуется выполнить развертывание из другого пользовательского репозитория, выберите Изменить учетную запись.
После авторизации учетной записи Azure с помощью GitHub выберите нужную организацию, репозиторий и ветвь .
Если вам не удается найти организацию или репозиторий, возможно, необходимо включить дополнительные разрешения в GitHub. Дополнительные сведения см. в статье Управление доступом к репозиториям организации.
В разделе " Тип проверки подлинности" выберите назначаемое пользователем удостоверение для повышения безопасности. Дополнительные сведения см. в часто задаваемых вопросах.
Примечание.
Если у вашей учетной записи Azure есть необходимые разрешения для параметра удостоверения , назначаемого пользователем, Azure создает управляемое удостоверение , назначаемое пользователем. Если вы этого не сделали, обратитесь к администратору Azure, чтобы создать удостоверение с требуемой ролью в приложении, а затем выберите ее здесь в раскрывающемся списке.
(Необязательно) Чтобы просмотреть файл перед сохранением изменений, выберите файл предварительного просмотра. Служба приложений выбирает шаблон рабочего процесса на основе параметра стека языка приложения и фиксирует его в выбранном репозитории GitHub.
Выберите Сохранить.
Новые фиксации в выбранном репозитории в приложении Службы приложений будут непрерывно развертываться. Фиксации и развертывания можно отслеживать на вкладке Журналы.
Отключение непрерывного развертывания
На портале Azure перейдите на страницу управления для вашего приложения Службы приложений.
В области слева выберите Центр развертывания. Выберите Параметры>отключить:
По умолчанию файл рабочего процесса GitHub Actions сохраняется в репозитории, но он продолжает запускать развертывание в приложении. Чтобы удалить его из репозитория, выберите Удалить файл рабочего процесса.
Нажмите ОК.
Что такое поставщики сборок?
В зависимости от источника развертывания в Центре развертывания может появиться несколько вариантов выбора поставщиков сборок. Поставщики сборок помогают создавать решение CI/CD с помощью службы приложение Azure путем автоматизации сборки, тестирования и развертывания.
Вы не ограничены параметрами поставщика сборки, найденными в Центре развертывания, но Служба приложений позволяет быстро настроить их и предлагает некоторые интегрированные возможности ведения журнала развертывания.
Поставщик сборки GitHub Actions доступен только для развертывания GitHub. При настройке в Центре развертывания приложения эти действия выполняются для настройки CI/CD:
- Помещает файл рабочего процесса GitHub Actions в репозиторий GitHub для обработки задач сборки и развертывания в Службе приложений.
- Для базовой проверки подлинности добавляет профиль публикации для приложения в качестве секрета GitHub. Файл рабочего процесса использует этот секрет для проверки подлинности в Службе приложений.
- Сведения о назначаемом пользователем удостоверении см. в разделе "Что делает параметр удостоверения, назначаемого пользователем" для GitHub Actions?
- Записывает сведения из журналов выполнения рабочего процесса и отображает его на вкладке "Журналы" в Центре развертывания.
Вы можете настроить поставщик сборки GitHub Actions следующими способами:
- Настройте файл рабочего процесса после его создания в репозитории GitHub. Дополнительные сведения см. в статье о синтаксисе рабочего процесса для GitHub Actions. Просто убедитесь, что рабочий процесс развертывается в Службе приложений с помощью действия azure/webapps-deploy.
- Если выбранная ветвь защищена, вы по-прежнему можете просмотреть файл рабочего процесса без сохранения конфигурации, а затем вручную добавить его в репозиторий. Этот способ не обеспечивает интеграцию журналов с порталом Azure.
- Вместо использования базовой проверки подлинности или удостоверения, назначаемого пользователем, можно также развернуть с помощью субъекта-службы в идентификаторе Microsoft Entra. Это невозможно настроить на портале.
Что происходит с моим приложением во время развертывания?
Все официально поддерживаемые методы развертывания вносят изменения в файлы в папке /home/site/wwwroot вашего приложения. Эти файлы используются для запуска приложения. Поэтому, возможно, не удастся выполнить развертывание из-за заблокированных файлов. Кроме того, из-за неодновременного обновления всех файлов приложение может вести себя непредсказуемо во время развертывания. Такое поведение нежелательно для приложения, с которым работают клиенты. Избежать этих проблем можно несколькими указанными ниже способами.
- Запустите приложение непосредственно из ZIP-архива, не распаковывая его.
- На время развертывания остановите приложение или включите для него автономный режим. Дополнительные сведения см. в разделе Устранение проблем из-за заблокированных файлов при развертывании.
- Выполняйте развертывание в промежуточном слоте с включенной автоматической подкачкой.
Часто задаваемые вопросы
- Работает ли поставщик сборок GitHub Actions с базовой проверкой подлинности, если обычная проверка подлинности отключена?
- Что делает параметр удостоверения, назначаемого пользователем, для GitHub Actions?
- Почему отображается сообщение об ошибке: "Это удостоверение не имеет разрешений на запись в этом приложении. Выберите другое удостоверение или обратитесь к администратору, чтобы предоставить роль участника веб-сайта вашему удостоверению в этом приложении"?
- Почему отображается сообщение об ошибке: "Это удостоверение не имеет разрешений на запись в этом приложении. Выберите другое удостоверение или обратитесь к администратору, чтобы предоставить роль участника веб-сайта вашему удостоверению в этом приложении"?
Работает ли поставщик сборок GitHub Actions с базовой проверкой подлинности, если обычная проверка подлинности отключена?
№ Попробуйте использовать GitHub Actions с параметром удостоверения, назначаемого пользователем.
Дополнительные сведения см. в статье "Развертывание без базовой проверки подлинности".
Что делает параметр удостоверения, назначаемого пользователем, для GitHub Actions?
При выборе удостоверения, назначаемого пользователем в источнике GitHub Actions, Служба приложений настраивает все необходимые ресурсы в Azure и GitHub, чтобы включить рекомендуемую проверку подлинности OpenID Connect с помощью GitHub Actions.
В частности, Служба приложений выполняет следующие операции:
- Создает федеративные учетные данные между управляемым удостоверением, назначенным пользователем, в Azure и выбранным репозиторием и ветвью в GitHub.
- Создает секреты
AZURE_CLIENT_ID
иAZURE_TENANT_ID
AZURE_SUBSCRIPTION_ID
из федеративных учетных данных в выбранном репозитории GitHub. - Назначает удостоверение приложению.
В рабочем процессе GitHub Actions в репозитории GitHub можно использовать действие azure/login для проверки подлинности в приложении с помощью OpenID Connect. Примеры см. в статье "Добавление файла рабочего процесса в репозиторий GitHub".
Если у вашей учетной записи Azure есть необходимые разрешения, Служба приложений создает управляемое удостоверение, назначаемое пользователем, и настраивает его для вас. Это удостоверение не отображается на странице удостоверений приложения. Если у вашей учетной записи Azure нет необходимых разрешений, необходимо выбрать существующее удостоверение с требуемой ролью.
Почему отображается сообщение об ошибке "У вас нет достаточных разрешений для этого приложения для назначения доступа на основе ролей управляемому удостоверению и настройке федеративных учетных данных"?
Сообщение указывает, что у вашей учетной записи Azure нет необходимых разрешений для создания управляемого удостоверения, назначаемого пользователем, для GitHub Actions. Необходимые разрешения (область действия приложения) :
Microsoft.Authorization/roleAssignments/write
Microsoft.ManagedIdentity/userAssignedIdentities/write
По умолчанию роль администратора доступа пользователей и роль владельца уже имеют эти разрешения, но роль участника не выполняется. Если у вас нет необходимых разрешений, обратитесь к администратору Azure, чтобы создать управляемое удостоверение, назначаемое пользователем, с ролью участника веб-сайта. В Центре развертывания можно выбрать удостоверение в раскрывающемся списке GitHub>Identity.
Дополнительные сведения об альтернативных шагах см. в статье "Развертывание в Служба приложений с помощью GitHub Actions".
Почему отображается сообщение об ошибке: "Это удостоверение не имеет разрешений на запись в этом приложении. Выберите другое удостоверение или обратитесь к администратору, чтобы предоставить роль участника веб-сайта вашему удостоверению в этом приложении"?
Сообщение указывает, что выбранное управляемое удостоверение, назначаемое пользователем, не имеет требуемой роли для включения OpenID Connect между репозиторием GitHub и приложением Служба приложений. Удостоверение должно иметь одну из следующих ролей в приложении: владелец, участник, участник веб-сайтов. Наименее привилегированная роль, требуемая удостоверением, является участником веб-сайтов.