Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как развернуть приложение в Службе приложений 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 WebJobs. |
Функции | Ознакомьтесь с разделом Непрерывное развертывание для Функций 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
вместе с именем вашего приложения.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 CLI, выполните следующие действия.
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
.
Устранение неполадок с развертыванием
Вы можете увидеть следующие распространенные сообщения об ошибках при использовании Git для публикации в приложении App Service в 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. |
Вы пытались отправить на ветвь, отличную от main , на удалённый 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)