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

    Снимок экрана: выбор источника развертывания.

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

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

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

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

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

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

    Примечание.

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

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

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

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

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

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

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

    Снимок экрана: отключение синхронизации облачных папок с приложением Службы приложений на портале Azure.

  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 и приложением Служба приложений. Удостоверение должно иметь одну из следующих ролей в приложении: владелец, участник, участник веб-сайтов. Наименее привилегированная роль, требуемая удостоверением, является участником веб-сайтов.

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