Поделиться через


Развертывание локального репозитория Git в Службе приложений Azure

В этом руководстве показано, как развернуть в службе приложений Azure собственное приложение из репозитория Git на локальном компьютере.

Примечание.

Для этого метода развертывания требуется обычная проверка подлинности SCM, которая менее безопасна, чем другие методы развертывания. Если локальное развертывание Git не работает, и вы не можете настроить развертывание Local Git в Центре развертывания приложения.

Необходимые компоненты

Выполните следующие шаги для изучения данного руководства.

  • Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

  • Установите Git.

  • Обеспечьте локальный репозиторий 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-адрес содержит имя пользователя для развертывания области пользователя. При желании вместо этого можно использовать учетные данные области приложения .

Развертывание веб-приложения

  1. В локальном окне терминала измените каталог на корень репозитория Git и добавьте удаленный Git с помощью URL-адреса, полученного из приложения. Если выбранный метод не предоставляет URL-адрес, используйте https://<app-name>.scm.azurewebsites.net/<app-name>.git с именем приложения в <app-name>.

    git remote add azure <url>
    

    Примечание.

    Если вы создали приложение с поддержкой Git в PowerShell с помощью New-AzWebApp, удаленный объект уже создан.

  2. Выполните принудительную отправку в удаленный объект Azure git push azure master (см. раздел Изменение ветви развертывания).

  3. В окне диспетчера учетных данных Git введите учетные данные области пользователя или приложения, а не учетные данные для входа в Azure.

    Если удаленный URL-адрес Git уже содержит имя пользователя и пароль, вы не будете перенаправлены.

  4. Просмотрите выходные данные. Вы можете увидеть автоматизацию, зависят от среды выполнения, например MSBuild для ASP.NET, npm install для Node.js и pip install для Python.

  5. Перейдите к своему приложению на портале 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\

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