Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как настроить непрерывное развертывание (CD) в Службе приложений 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 с начальным скриптом. |
Питон |
*.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 может создать репозиторий для вас. С помощью этого метода проект сразу же готов к развертыванию с помощью Git.
Включение непрерывного развертывания
На портале Azure перейдите на страницу приложения службы приложений и выберите Центр развертывания в меню навигации слева.
На вкладке "Параметры" в разделе "Источник" выберите тип репозитория системы управления версиями.
Следуйте инструкциям для типа источника, чтобы настроить развертывание.
Все перечисленные источники могут создаваться с помощью службы сборки приложений. Некоторые источники также могут создаваться с помощью GitHub Actions или Azure Pipelines. Дополнительные сведения см. в разделе "Поставщики сборки".
GitHub Actions — это поставщик сборки GitHub по умолчанию. Чтобы изменить поставщика, выберите "Изменить поставщика", выберите "Служба сборки службы приложений " или Azure Pipelines и нажмите кнопку "ОК".
При необходимости выберите "Авторизовать " и следуйте запросам авторизации для GitHub. Чтобы развернуть из репозитория другого пользователя, выберите "Изменить учетную запись".
Выберите соответствующую организацию, репозиторий и ветвь GitHub.
Если вы не можете найти организацию или репозиторий, возможно, потребуется включить дополнительные разрешения на GitHub. Дополнительные сведения см. в статье Управление доступом к репозиториям организации.
В разделе " Тип проверки подлинности" выберите назначаемое пользователем удостоверение для повышения безопасности.
Если у вашей учетной записи Azure есть необходимые разрешения, служба приложений создает управляемое удостоверение, назначаемое пользователем , или вы можете выбрать существующее управляемое удостоверение. Если у вас нет необходимых разрешений, обратитесь к администратору Azure, чтобы создать удостоверение с требуемой ролью в приложении, а затем выберите его в раскрывающемся списке.
Служба приложений выбирает шаблон рабочего процесса на основе параметра стека языка приложения и фиксирует его в выбранном репозитории GitHub. Вы можете выбрать предварительный просмотр файла , чтобы просмотреть файл рабочего процесса перед сохранением изменений.
Выберите Сохранить.
Новые коммиты в выбранном репозитории и ветке теперь непрерывно разворачиваются в вашем приложении службы приложений. Фиксации и развертывания можно отслеживать на вкладке Журналы.
Отключение непрерывного развертывания
Чтобы отключить непрерывное развертывание для подключенного источника:
На портале Azure перейдите на страницу приложения службы приложений и выберите Центр развертывания в меню навигации слева.
На вкладке "Параметры" выберите "Отключить".
Нажмите ОК.
Для GitHub файл рабочего процесса остается в репозитории по умолчанию, но вы больше не увидите интегрированный ход выполнения на вкладке "Журналы " центра развертывания.
Что такое поставщики сборок?
Поставщики сборок помогают создавать решение непрерывной интеграции и непрерывной доставки (CI/CD) с помощью Службы приложений Azure путем автоматизации сборки, тестирования и развертывания. Некоторые источники для развертывания предлагают несколько вариантов поставщика услуг сборки. Все перечисленные источники могут создаваться с помощью службы сборки приложений.
Вы не ограничены перечисленными параметрами поставщика сборки, но служба приложений помогает быстро настроить перечисленные параметры и начать интегрированное ведение журнала развертывания.
Действия GitHub
Поставщик сборки GitHub Actions доступен только для источника GitHub и используется по умолчанию для развертываний GitHub. Поставщик сборки настраивает CI/CD, помещая файл рабочего процесса GitHub Actions в ваш репозиторий GitHub, который обрабатывает задачи сборки и развертывания App Service.
Для базовой проверки подлинности поставщик сборки GitHub Actions добавляет профиль публикации для приложения в качестве секрета GitHub. Файл рабочего процесса использует этот секрет для проверки подлинности в Службе приложений.
Для удостоверения, назначаемого пользователем, служба приложений включает рекомендуемую проверку подлинности Microsoft OpenID Connect и настраивает необходимые ресурсы в Azure и GitHub. Для получения дополнительной информации см. раздел «Что делает параметр удостоверения, назначаемого пользователем, для GitHub Actions?»
Поставщик сборки GitHub Actions записывает сведения из журналов выполнения рабочего процесса и отображает его на вкладке "Журналы " в центре развертывания приложения.
Поставщик сборки GitHub Actions можно настроить несколькими способами:
- Настройте файл рабочего процесса после его создания в репозитории GitHub. Дополнительные сведения см. в статье о синтаксисе рабочего процесса для GitHub Actions. Разверните настраиваемый рабочий процесс в Службе приложений
azure/webapps-deploy
с помощью действия. - Если выбранная ветвь защищена, просмотрите файл рабочего процесса без сохранения конфигурации. Настройте файл, а затем вручную добавьте его в репозиторий. Этот способ не обеспечивает интеграцию журналов с порталом Azure.
- Разверните с помощью служебного принципала Microsoft Entra ID вместо базовой проверки подлинности или назначаемого пользователем удостоверения. Этот метод нельзя настроить на портале.
Служба сборки службы приложений
Служба сборки службы приложений — это собственный модуль развертывания и сборки службы приложений. При выборе этого параметра App Service добавляет веб-хук в авторизованный вами репозиторий. Любое изменение кода, загруженное в репозиторий, активирует веб-перехватчик, и служба приложений получает эти изменения и выполняет задачи по развертыванию. Дополнительные сведения см. в статье "Развертывание из GitHub (Kudu)".
Служба сборки App Service требует базовую аутентификацию системы управления версиями (SCM) для работы веб-перехватчика. Обычная проверка подлинности менее безопасна, чем другие методы проверки подлинности. Дополнительные сведения можно найти здесь
- Проект Kudu
- Изучение распространенных проблем с непрерывным развертыванием
- Развертывание без базовой проверки подлинности
Azure Pipelines (система конвейеров Azure)
Azure Pipelines — это компонент сборки Azure DevOps. Конвейер можно настроить для сборки, тестирования и развертывания приложения в Службу приложений из любого поддерживаемого исходного репозитория.
Чтобы использовать Azure Pipelines в качестве поставщика сборки, выберите параметр Azure Pipelines в Центре развертывания службы приложений, а затем перейдите непосредственно в Azure DevOps , чтобы настроить конвейер. Дополнительные сведения см. в разделе Развертывание в Службе приложений с помощью Azure Pipelines.
Часто задаваемые вопросы
- Как поставщик сборки GitHub Actions работает, если обычная проверка подлинности отключена?
- Что происходит с приложением во время развертывания, которое может вызвать сбой или непредсказуемое поведение?
- Что делает опция идентификации, назначаемая пользователем, для GitHub Actions?
- Почему отображается сообщение об ошибке "У вас нет достаточных разрешений для назначения доступа на основе ролей управляемому удостоверению и настройке федеративных учетных данных"?
- Почему отображается сообщение об ошибке "Эта учетная запись не имеет разрешений на запись в этом приложении." Пожалуйста, выберите другую учетную запись или работайте с вашим администратором, чтобы назначить вашей учетной записи роль Участника веб-сайта в этом приложении.
Как поставщик сборки GitHub Actions работает, если обычная проверка подлинности отключена?
Поставщик сборки GitHub Actions не работает с базовой проверкой подлинности, если обычная проверка подлинности отключена. Попробуйте использовать GitHub Actions с опцией назначения идентификатора пользователем. Дополнительные сведения см. в разделе "Развертывание без базовой проверки подлинности".
Что происходит с приложением во время развертывания, которое может вызвать сбой или непредсказуемое поведение?
Официально поддерживаемые методы развертывания вносят изменения в файлы в папку /home/site/wwwroot , которая используется для запуска приложения. Развертывание может завершиться ошибкой из-за заблокированных файлов. Приложение также может вести себя непредсказуемо во время развертывания, если файлы не обновляются одновременно, что нежелательно для клиентского приложения.
Существует несколько способов избежать этих проблем.
- Запустите приложение непосредственно из ZIP-пакета без распаковки.
- На время развертывания остановите приложение или переведите его в автономный режим. Дополнительные сведения см. в разделе Устранение проблем из-за заблокированных файлов при развертывании.
- Выполняйте развертывание в промежуточном слоте с включенной автоматической подкачкой.
Какие функции выполняет опция назначенного пользователем удостоверения для GitHub Actions?
При выборе пользовательского удостоверения для источника GitHub служба App Service настраивает все необходимые ресурсы в Azure и GitHub. Служба приложений включает рекомендуемую проверку подлинности Microsoft OpenID Connect с помощью GitHub Actions.
В частности, Служба приложений выполняет следующие операции:
- Создает федеративные учетные данные между управляемым удостоверением, назначенным пользователем, в Azure и выбранным репозиторием и ветвью в GitHub.
- Создает секреты
AZURE_CLIENT_ID
иAZURE_TENANT_ID
AZURE_SUBSCRIPTION_ID
из федеративных учетных данных в выбранном репозитории GitHub. - Присваивает идентификатор вашему приложению.
Затем вы можете использовать действие Azure/login
в рабочем процессе GitHub Actions вашего репозитория GitHub, чтобы аутентифицироваться в вашем приложении с помощью OpenID Connect. Примеры см. в статье "Добавление файла рабочего процесса в репозиторий GitHub".
Если у вашей учетной записи Azure есть необходимые разрешения, Служба приложений создает управляемое удостоверение, назначаемое пользователем, и настраивает его для вас. Эта идентификация не отображается на странице Identity вашего приложения. Если у вашей учетной записи Azure нет необходимых разрешений, необходимо выбрать существующее удостоверение с требуемой ролью.
Почему отображается сообщение об ошибке "У вас нет достаточных разрешений для назначения доступа на основе ролей управляемому удостоверению и настройке федеративных учетных данных"?
Сообщение указывает, что ваша учетная запись Azure не имеет необходимых разрешений для создания пользовательского управляемого удостоверения для GitHub Actions. Для вашего приложения требуются следующие разрешения, ограниченные его контекстом.
Microsoft.Authorization/roleAssignments/write
Microsoft.ManagedIdentity/userAssignedIdentities/write
По умолчанию роли администратор доступа и владелец Azure имеют эти разрешения, но роль участник их не имеет. Если у вас нет необходимых разрешений, обратитесь к администратору Azure, чтобы создать пользовательскую управляемую идентичность с ролью Websites Contributor. Затем вы можете выбрать этот идентификатор в раскрывающемся списке Identity для источника GitHub в Центре развертывания App Service.
Дополнительные сведения об использовании альтернативных шагов см. в статье "Развертывание в службе приложений" с помощью GitHub Actions.
Почему отображается сообщение об ошибке "Эта учетная запись не имеет разрешений на запись в этом приложении." Пожалуйста, выберите другую учетную запись или работайте с вашим администратором, чтобы назначить вашей учетной записи роль Участника веб-сайта в этом приложении.
Сообщение указывает, что выбранная управляемая идентичность, назначенная пользователем, не имеет необходимой роли для [включения OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) между репозиторием GitHub и приложением App Service. Удостоверение должно иметь роль "Владелец", "Участник" или " Участник веб-сайтов " в приложении. Наименее привилегированная роль, необходимая для удостоверения, это редактор веб-сайтов.