Непрерывное развертывание в Службе приложений Azure

Служба приложений 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.

Настройка источника развертывания

  1. На портале Azure перейдите на страницу управления для вашего приложения Службы приложений.

  2. В области слева выберите Центр развертывания. Затем выберите Параметры.

  3. В поле Источник выберите один из параметров CI/CD.

    Screenshot that shows how to choose the deployment source.

Чтобы продолжить, откройте вкладку, соответствующую поставщику сборки.

  1. GitHub Actions является поставщиком сборки по умолчанию. Чтобы изменить поставщика, нажмите кнопку Change provider> Служба приложений Build Service>OK.

  2. При первом развертывании из GitHub выберите Авторизовать и следуйте запросам авторизации. Если требуется выполнить развертывание из другого пользовательского репозитория, выберите Изменить учетную запись.

  3. После авторизации учетной записи Azure с помощью GitHub выберите нужную организацию, репозиторий и ветвь .

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

  4. В разделе " Тип проверки подлинности" выберите назначаемое пользователем удостоверение для повышения безопасности. Дополнительные сведения см. в часто задаваемых вопросах.

    Примечание.

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

  5. (Необязательно) Чтобы просмотреть файл перед сохранением изменений, выберите файл предварительного просмотра. Служба приложений выбирает шаблон рабочего процесса на основе параметра стека языка приложения и фиксирует его в выбранном репозитории GitHub.

  6. Выберите Сохранить.

    Новые фиксации в выбранном репозитории в приложении Службы приложений будут непрерывно развертываться. Фиксации и развертывания можно отслеживать на вкладке Журналы.

Отключение непрерывного развертывания

  1. На портале Azure перейдите на страницу управления для вашего приложения Службы приложений.

  2. В области слева выберите Центр развертывания. Выберите Параметры>отключить:

    Screenshot that shows how to disconnect your cloud folder sync with your App Service app in the Azure portal.

  3. По умолчанию файл рабочего процесса GitHub Actions сохраняется в репозитории, но он продолжает запускать развертывание в приложении. Чтобы удалить его из репозитория, выберите Удалить файл рабочего процесса.

  4. Нажмите ОК.

Что такое поставщики сборок?

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

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

Поставщик сборки GitHub Actions доступен только для развертывания GitHub. При настройке в Центре развертывания приложения эти действия выполняются для настройки CI/CD:

Вы можете настроить поставщик сборки GitHub Actions следующими способами:

  • Настройте файл рабочего процесса после его создания в репозитории GitHub. Дополнительные сведения см. в статье о синтаксисе рабочего процесса для GitHub Actions. Просто убедитесь, что рабочий процесс развертывается в Службе приложений с помощью действия azure/webapps-deploy.
  • Если выбранная ветвь защищена, вы по-прежнему можете просмотреть файл рабочего процесса без сохранения конфигурации, а затем вручную добавить его в репозиторий. Этот способ не обеспечивает интеграцию журналов с порталом Azure.
  • Вместо использования базовой проверки подлинности или удостоверения, назначаемого пользователем, можно также развернуть с помощью субъекта-службы в идентификаторе Microsoft Entra. Это невозможно настроить на портале.

Что происходит с моим приложением во время развертывания?

Все официально поддерживаемые методы развертывания вносят изменения в файлы в папке /home/site/wwwroot вашего приложения. Эти файлы используются для запуска приложения. Поэтому, возможно, не удастся выполнить развертывание из-за заблокированных файлов. Кроме того, из-за неодновременного обновления всех файлов приложение может вести себя непредсказуемо во время развертывания. Такое поведение нежелательно для приложения, с которым работают клиенты. Избежать этих проблем можно несколькими указанными ниже способами.

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

Работает ли поставщик сборок GitHub Actions с базовой проверкой подлинности, если обычная проверка подлинности отключена?

№ Попробуйте использовать GitHub Actions с параметром удостоверения, назначаемого пользователем.

Дополнительные сведения см. в статье "Развертывание без базовой проверки подлинности".

Что делает параметр удостоверения, назначаемого пользователем, для GitHub Actions?

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

В частности, Служба приложений выполняет следующие операции:

  • Создает федеративные учетные данные между управляемым удостоверением, назначенным пользователем, в Azure и выбранным репозиторием и ветвью в GitHub.
  • Создает секреты AZURE_CLIENT_IDи AZURE_TENANT_IDAZURE_SUBSCRIPTION_ID из федеративных учетных данных в выбранном репозитории GitHub.
  • Назначает удостоверение приложению.

В рабочем процессе GitHub Actions в репозитории GitHub можно использовать действие azure/login для проверки подлинности с помощью OpenID Подключение. Примеры см. в статье "Добавление файла рабочего процесса в репозиторий GitHub".

Если у вашей учетной записи Azure есть необходимые разрешения, Служба приложений создает управляемое удостоверение, назначаемое пользователем, и настраивает его для вас. Это удостоверение не отображается на странице удостоверений приложения. Если у вашей учетной записи Azure нет необходимых разрешений, необходимо выбрать существующее удостоверение с требуемой ролью.

Почему отображается сообщение об ошибке "У вас нет достаточных разрешений для этого приложения для назначения доступа на основе ролей управляемому удостоверению и настройке федеративных учетных данных"?

Сообщение указывает, что у вашей учетной записи Azure нет необходимых разрешений для создания управляемого удостоверения, назначаемого пользователем, для GitHub Actions. Необходимые разрешения (область в приложении):

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

По умолчанию роль пользователя Администратор istrator и роль владельца уже имеют эти разрешения, но роль участника не выполняется. Если у вас нет необходимых разрешений, обратитесь к администратору Azure, чтобы создать управляемое удостоверение, назначаемое пользователем, с ролью участника веб-сайта. В Центре развертывания можно выбрать удостоверение в раскрывающемся списке GitHub>Identity.

Дополнительные сведения об альтернативных шагах см. в статье "Развертывание в Служба приложений с помощью GitHub Actions".

Почему отображается сообщение об ошибке: "Это удостоверение не имеет разрешений на запись в этом приложении. Выберите другое удостоверение или обратитесь к администратору, чтобы предоставить роль участника веб-сайта вашему удостоверению в этом приложении"?

Сообщение указывает, что выбранное управляемое удостоверение, назначаемое пользователем, не имеет необходимой роли для включения Подключение OpenID между репозиторием GitHub и приложением Служба приложений. Удостоверение должно иметь одну из следующих ролей в приложении: владелец, участник, участник веб-сайтов. Наименее привилегированная роль, требуемая удостоверением, является участником веб-сайтов.

Дополнительные ресурсы