Implementação local do Git no Serviço de Aplicações do Azure
Este guia de procedimentos mostra-lhe como implementar a sua aplicação para Serviço de Aplicações do Azure a partir de um repositório Git no seu computador local.
Pré-requisitos
Para seguir os passos neste guia de procedimentos:
-
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 pretende implementar. Para transferir 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
Preparar o seu repositório
Para obter compilações automatizadas do Serviço de Aplicações do Azure servidor de compilação, certifique-se de que a raiz do repositório tem os ficheiros corretos no projeto.
Runtime | Ficheiros de diretório de raiz |
---|---|
ASP.NET (apenas Windows) | *.sln, *.csproj ou default.aspx |
ASP.NET Core | *.sln ou *.csproj |
PHP | index.php |
Ruby (apenas Linux) | Gemfile |
Node.js | server.js, app.jsou package.json com um script de início |
Python | *.py, requirements.txtou runtime.txt |
HTML | default.htm, default.html, default.asp, index.htm, index.htmlou iisstart.htm |
WebJobs | <>job_name/executar.< extensão>em App_Data/tarefas/contínua para WebJobs contínuos ou App_Data/tarefas/acionada para WebJobs acionados. Para obter mais informações, veja Documentação do Kudu WebJobs. |
Funções | Veja Implementação contínua para Funções do Azure. |
Para personalizar a implementação, inclua um ficheiro .deployment na raiz do repositório. Para obter mais informações, veja Personalizar implementações e Script de implementação personalizada.
Nota
Se utilizar o Visual Studio, permita que o Visual Studio crie um repositório por si. O seu projeto estará imediatamente pronto para implementação através do Git.
Configurar um utilizador de implementação
Veja Configurar credenciais de implementação para Serviço de Aplicações do Azure. Pode utilizar credenciais de âmbito de utilizador ou credenciais de âmbito de aplicação.
Criar uma aplicação ativada para Git
Se já tiver uma aplicação Serviço de Aplicações e quiser configurar a implementação local do Git para a mesma, veja Configurar uma aplicação existente.
Execute az webapp create
com a opção --deployment-local-git
. Por exemplo:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
O resultado contém um URL como: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Utilize este URL para implementar a sua aplicação no próximo passo.
Configurar uma aplicação existente
Se ainda não criou uma aplicação, veja Criar uma aplicação ativada para Git .
Execute az webapp deployment source config-local-git
. Por exemplo:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
O resultado contém um URL como: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Utilize este URL para implementar a sua aplicação no próximo passo.
Dica
Este URL contém o nome de utilizador de implementação de âmbito de utilizador. Se quiser, pode utilizar as credenciais de âmbito da aplicação .
Implementar a aplicação Web
Numa janela de terminal local, altere o diretório para a raiz do seu repositório Git e adicione um git remoto com o URL que obteve da sua aplicação. Se o método escolhido não lhe der um URL, utilize
https://<app-name>.scm.azurewebsites.net/<app-name>.git
com o nome da aplicação em<app-name>
.git remote add azure <url>
Nota
Se tiver criado uma aplicação ativada para Git no PowerShell com New-AzWebApp, o remoto já está criado automaticamente.
Emita para o Azure remoto com
git push azure master
(veja Alterar ramo de implementação).Na janela Gestor de Credenciais do Git , introduza as credenciais de âmbito de utilizador ou de âmbito da aplicação e não as credenciais de início de sessão do Azure.
Se o URL remoto do Git já contiver o nome de utilizador e a palavra-passe, não lhe será pedido.
Reveja a saída. Poderá ver automatização específica do runtime, como MSBuild para ASP.NET,
npm install
para Node.js epip install
para Python.Navegue para a sua aplicação no portal do Azure para verificar se o conteúdo está implementado.
Alterar ramo de implementação
Quando emite consolidações para o seu repositório de Serviço de Aplicações, Serviço de Aplicações implementa os ficheiros no ramo por predefiniçãomaster
. Uma vez que muitos repositórios git estão a mudar para master
main
o , tem de se certificar de que envia para o ramo direito no repositório Serviço de Aplicações de uma de duas formas:
Implemente para
master
explicitamente com um comando como:git push azure main:master
Altere o ramo de implementação ao definir a definição da aplicação
DEPLOYMENT_BRANCH
e, em seguida, emita consolidações para o ramo personalizado. Para fazê-lo 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
Também pode alterar a definição da aplicação
DEPLOYMENT_BRANCH
no Portal do Azure ao selecionar Configuração em Definições e adicionar uma nova Definição deDEPLOYMENT_BRANCH
Aplicação com um nome e valor demain
.
Resolver erros de implementação
Poderá ver as seguintes mensagens de erro comuns quando utiliza o Git para publicar numa aplicação Serviço de Aplicações no Azure:
Mensagem | Causa | Resolução |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
A aplicação não está a funcionar. | Inicie a aplicação no portal do Azure. A implementação do Git não está disponível quando a aplicação Web é parada. |
Couldn't resolve host 'hostname' |
As informações de endereço do remoto "azure" estão incorretas. | Utilize o git remote -v comando para listar todos os remotos, juntamente com o URL associado. Verifique se o URL do remoto "azure" está correto. Se necessário, remova e recrie este remoto com o URL correto. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Não especificou um ramo durante git push o , ou não definiu o push.default valor em .gitconfig . |
Execute git push novamente, especificando o ramo principal: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Emite um ramo local que não corresponde ao ramo de implementação da aplicação no "azure". | Verifique se o ramo atual é master . Para alterar o ramo predefinido, utilize DEPLOYMENT_BRANCH a definição da aplicação (veja Alterar ramo de implementação). |
src refspec [branchname] does not match any. |
Tentou emitir para um ramo diferente do principal no remoto "azure". | Execute git push novamente, especificando o ramo principal: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Este erro pode ocorrer se tentar emitir um repositório git grande através de HTTPS. | Altere a configuração do git no computador local para aumentar.postBuffer Por exemplo: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Implementou uma aplicação Node.js com um ficheiro package.json que especifica módulos necessários adicionais. | Reveja as npm ERR! mensagens de erro antes deste erro para obter mais contexto sobre a falha. Seguem-se as causas conhecidas deste erro e as mensagens correspondentes npm ERR! :Ficheiro package.json mal formado: npm ERR! Couldn't read dependencies. O módulo nativo não tem uma distribuição binária para o Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 ou npm ERR! [modulename@version] preinstall: \make || gmake\ |
Recursos adicionais
- Serviço de Aplicações servidor de compilação (documentação do Project Kudu)
- Implementação contínua no Serviço de Aplicações do Azure
- Exemplo: Criar uma aplicação Web e implementar código a partir de um repositório Git local (CLI do Azure)
- Exemplo: Criar uma aplicação Web e implementar código a partir de um repositório Git local (PowerShell)