Развертывание локального репозитория Git в Службе приложений Azure
В этом руководстве показано, как развернуть в службе приложений Azure собственное приложение из репозитория Git на локальном компьютере.
Примечание.
Если обычная проверка подлинности SCM отключена, развертывание Локальной Git не работает, и вы не можете настроить локальное развертывание Git в Центре развертывания приложения.
Необходимые компоненты
Выполните следующие шаги для изучения данного руководства.
-
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Обеспечьте локальный репозиторий Git кодом, который вы хотите развернуть. Чтобы скачать пример репозитория, выполните следующую команду в локальном окне терминала.
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Подготовка репозитория
Чтобы получать автоматические сборки с сервера сборки Службы приложений 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. Можно использовать либо учетные данные области пользователя, либо учетные данные области приложения.
Создание приложения с поддержкой Git
Если у вас уже есть приложение Службы приложений и вы хотите настроить для него локальное развертывание на Git, см. раздел Настройка существующего приложения.
Запустите az webapp create
с --deployment-local-git
параметром. Например:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
Выходные данные содержат URL-адрес следующего вида: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Используйте этот URL-адрес для развертывания приложения на следующем шаге.
Настройка существующего приложения
Если у вас еще нет приложения, см. статью "Создание приложения с поддержкой Git".
Запустите az webapp deployment source config-local-git
. Например:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
Выходные данные содержат URL-адрес следующего вида: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Используйте этот URL-адрес для развертывания приложения на следующем шаге.
Совет
Этот URL-адрес содержит имя пользователя для развертывания области пользователя. При желании вместо этого можно использовать учетные данные области приложения .
Развертывание веб-приложения
В локальном окне терминала измените каталог на корень репозитория Git и добавьте удаленный Git с помощью URL-адреса, полученного из приложения. Если выбранный метод не предоставляет URL-адрес, используйте
https://<app-name>.scm.azurewebsites.net/<app-name>.git
с именем приложения в<app-name>
.git remote add azure <url>
Примечание.
Если вы создали приложение с поддержкой Git в PowerShell с помощью New-AzWebApp, удаленный объект уже создан.
Выполните принудительную отправку в удаленный объект Azure
git push azure master
(см. раздел Изменение ветви развертывания).В окне диспетчера учетных данных Git введите учетные данные области пользователя или приложения, а не учетные данные для входа в Azure.
Если удаленный URL-адрес Git уже содержит имя пользователя и пароль, вы не будете перенаправлены.
Просмотрите выходные данные. Вы можете увидеть автоматизацию, зависят от среды выполнения, например MSBuild для ASP.NET,
npm install
для Node.js иpip install
для Python.Перейдите к своему приложению на портале Azure, чтобы убедиться, что содержимое развернуто.
Изменение ветви развертывания
Когда вы отправляете фиксации в репозиторий Службы приложений, Служба приложений по умолчанию развертывает файлы в ветви master
. Так как многие репозитории Git перемещаются из master
в main
, необходимо убедиться в том, что вы выполняете отправку в правильную ветвь репозитория Службы приложений. Это можно сделать двумя способами.
Явно выполнить развертывание в
master
с помощью команды, аналогичной следующей:git push azure main:master
Изменить ветвь развертывания, задав параметр приложения
DEPLOYMENT_BRANCH
, а затем отправить фиксации в пользовательскую ветвь. Чтобы сделать это с помощью интерфейса командной строки Azure:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Вы также можете изменить
DEPLOYMENT_BRANCH
параметр приложения в портал Azure, выбрав переменные среды в разделе "Параметры" и добавив новый параметр приложения с именемDEPLOYMENT_BRANCH
и значениемmain
.
Устранение неполадок с развертыванием
При публикации в приложении Служба приложений в Azure могут появиться следующие распространенные сообщения об ошибках:
Сообщение | Причина | Решение |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
Приложение не работает и не запущено. | запуск приложения на портале Azure. Развертывание Git недоступно, когда веб-приложение остановлено. |
Couldn't resolve host 'hostname' |
Неверные сведения об адресе удаленного azure . |
используйте команду git remote -v , чтобы вывести список всех удаленных репозиториев с соответствующими URL-адресами. Убедитесь, что URL-адрес для удаленного удаленного azure адреса указан правильно. При необходимости удалите и повторно создайте этот удаленный репозиторий, используя правильный URL-адрес. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Вы не указали ветвь в процессе git push или не задали push.default значение в .gitconfig . |
Выполните команду git push еще раз, указав главную ветвь:git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Вы отправляете локальную ветвь, в которую не соответствует ветвь azure развертывания приложений. |
Убедитесь, что текущая ветвь — master . Чтобы изменить ветвь по умолчанию, используйте параметр приложения DEPLOYMENT_BRANCH (см. раздел Изменение ветви развертывания). |
src refspec [branchname] does not match any. |
Вы попытались отправить в ветвь, отличной от главного на удаленном azure устройстве. |
Выполните команду git push еще раз, указав главную ветвь:git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
эта ошибка может возникнуть при попытке отправить большой репозиторий Git по протоколу HTTPS. | Измените конфигурацию Git на локальном компьютере, чтобы увеличить postBuffer . Например: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Вы развернули приложение Node.js, содержащее файл package.json, в котором указаны дополнительные необходимые модули. | Проверьте npm ERR! сообщения об ошибках, предшествовавшие этой ошибке, для получения дополнительных сведений о сбое. Ниже перечислены известные причины этой ошибки и соответствующие npm ERR! сообщения.Неправильно сформированный пакет файлов json: npm ERR! Couldn't read dependencies. Собственный модуль, не имеющий двоичного дистрибутива для Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 или npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |
Дополнительные ресурсы
- Сервер сборки службы приложений (документация по проекту Kudu)
- Непрерывное развертывание в Службе приложений Azure
- Пример. Создание веб-приложения и развертывание кода из локального репозитория Git (Azure CLI)
- Пример. Создание веб-приложения и развертывание кода из локального репозитория Git (PowerShell)