Implantação local do Git no Serviço de Aplicativo do Azure
Este guia de instruções mostra como implantar seu aplicativo no Serviço de Aplicativo do Azure a partir de um repositório Git em seu computador local.
Nota
Quando a autenticação básica do SCM está desabilitada, a implantação do Git Local não funciona e você não pode configurar a implantação do Git Local no Centro de Implantação do aplicativo.
Pré-requisitos
Para seguir as etapas neste guia de instruções:
-
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Tenha um repositório Git local com o código que você deseja implantar. Para baixar um repositório de exemplo, execute o seguinte comando na janela do terminal local:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Prepare seu repositório
Para obter compilações automatizadas do servidor de compilação do Serviço de Aplicativo do Azure, verifique se a raiz do repositório tem os arquivos corretos em seu projeto.
Runtime | Arquivos de diretório raiz |
---|---|
ASP.NET (somente Windows) | *.sln , *.csproj ou default.aspx |
ASP.NET Core | *.sln ou *.csproj |
PHP | index.php |
Ruby (somente Linux) | Gemfile |
Node.js | server.js , app.js , ou package.json com um script de início |
Python | *.py , requirements.txt ou runtime.txt |
HTML | default.htm , default.html , , default.asp , index.html index.htm , ouiisstart.htm |
WebJobs | <job_name>/run.<extension> em App_Data/jobs/continuous para WebJobs contínuos ou App_Data/jobs/triggered para WebJobs acionados. Para obter mais informações, consulte a documentação do Kudu WebJobs. |
Funções | Consulte Implantação contínua para o Azure Functions. |
Para personalizar sua implantação, inclua um arquivo .deployment na raiz do repositório. Para obter mais informações, consulte Personalizar implantações e script de implantação personalizado.
Nota
Se você usar o Visual Studio, permita que o Visual Studio crie um repositório para você. Seu projeto estará imediatamente pronto para implantação via Git.
Configurar um utilizador de implementação
Consulte Configurar credenciais de implantação para o Serviço de Aplicativo do Azure. Você pode usar credenciais de escopo de usuário ou credenciais de escopo de aplicativo.
Criar um aplicativo habilitado para Git
Se você já tiver um aplicativo do Serviço de Aplicativo e quiser configurar a implantação local do Git para ele, consulte Configurar um aplicativo existente.
Execute az webapp create
com a --deployment-local-git
opção. Por exemplo:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
A saída contém um URL como: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Use essa URL para implantar seu aplicativo na próxima etapa.
Configurar um aplicativo existente
Se você ainda não tiver um aplicativo, consulte Criar um aplicativo habilitado para Git.
Execute o az webapp deployment source config-local-git
. Por exemplo:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
A saída contém um URL como: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Use essa URL para implantar seu aplicativo na próxima etapa.
Gorjeta
Essa URL contém o nome de usuário da implantação do escopo do usuário. Se desejar, você pode usar as credenciais de escopo do aplicativo.
Implantar o aplicativo Web
Em uma janela de terminal local, altere o diretório para a raiz do repositório Git e adicione um controle remoto Git usando a URL obtida do seu aplicativo. Se o método escolhido não fornecer uma URL, use
https://<app-name>.scm.azurewebsites.net/<app-name>.git
com o nome do aplicativo em<app-name>
.git remote add azure <url>
Nota
Se você criou um aplicativo habilitado para Git no PowerShell usando New-AzWebApp, o controle remoto já foi criado para você.
Envie por push para o remoto do Azure com
git push azure master
(consulte Alterar ramificação de implantação).Na janela Git Credential Manager, insira suas credenciais de escopo de usuário ou de aplicativo, não suas credenciais de entrada do Azure.
Se o URL remoto do Git já contiver o nome de usuário e a senha, você não será solicitado.
Reveja a saída. Você pode ver automação específica do tempo de execução, como MSBuild para ASP.NET,
npm install
para Node.js epip install
para Python.Navegue até seu aplicativo no portal do Azure para verificar se o conteúdo está implantado.
Alterar ramificação de implantação
Quando você envia confirmações por push para o repositório do Serviço de Aplicativo, o Serviço de Aplicativo implanta os master
arquivos na ramificação por padrão. Como muitos repositórios Git estão se afastando do , main
você precisa se certificar de master
que envia por push para a ramificação certa no repositório do Serviço de Aplicativo de uma das duas maneiras:
Implante explicitamente
master
com um comando como:git push azure main:master
Altere a ramificação de implantação definindo a configuração do
DEPLOYMENT_BRANCH
aplicativo e, em seguida, envie confirmações por push para a ramificação personalizada. Para fazer isso com a CLI do Azure:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Você também pode alterar a configuração do
DEPLOYMENT_BRANCH
aplicativo no portal do Azure, selecionando Variáveis de ambiente em Configurações e adicionando uma nova configuração do aplicativo com um nome eDEPLOYMENT_BRANCH
um valor demain
.
Resolver erros de implementação
Você pode ver as seguintes mensagens de erro comuns ao usar o Git para publicar em um aplicativo do Serviço de Aplicativo no Azure:
Mensagem | Causa | Resolução |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
O aplicativo não está instalado e funcionando. | Inicie o aplicativo no portal do Azure. A implantação do Git não está disponível quando o aplicativo Web é interrompido. |
Couldn't resolve host 'hostname' |
As informações de endereço do azure controle remoto estão incorretas. |
Use o git remote -v comando para listar todos os controles remotos, juntamente com a URL associada. Verifique se o URL do azure controle remoto está correto. Se necessário, remova e recrie este controle remoto usando o URL correto. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Você não especificou uma ramificação durante git push o , ou não definiu o push.default valor em .gitconfig . |
Execute git push novamente, especificando a ramificação principal: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Você empurrou uma ramificação local que não corresponde à ramificação de implantação do aplicativo no azure . |
Verifique se a ramificação atual é master . Para alterar a ramificação padrão, use DEPLOYMENT_BRANCH a configuração do aplicativo (consulte Alterar ramificação de implantação). |
src refspec [branchname] does not match any. |
Você tentou empurrar para uma ramificação diferente da principal no azure controle remoto. |
Execute git push novamente, especificando a ramificação principal: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Esse erro pode acontecer se você tentar enviar por push um grande repositório git por HTTPS. | Altere a configuração do git na máquina local para torná-la postBuffer maior. Por exemplo: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Você implantou um aplicativo Node.js com um arquivo package.json que especifica módulos adicionais necessários. | Revise as npm ERR! mensagens de erro antes desse erro para obter mais contexto sobre a falha. A seguir estão as causas conhecidas desse erro e as mensagens correspondentes npm ERR! :Arquivo package.json malformado: npm ERR! Couldn't read dependencies. O módulo nativo não tem uma distribuição binária para Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 ou npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |
Mais recursos
- Servidor de compilação do Serviço de Aplicativo (documentação do Project Kudu)
- Implementação contínua no Serviço de Aplicações do Azure
- Exemplo: Criar um aplicativo Web e implantar código de um repositório Git local (CLI do Azure)
- Exemplo: Criar um aplicativo Web e implantar código a partir de um repositório Git local (PowerShell)