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.

  • Instale o Git.

  • 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

  1. 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.

  2. Emita para o Azure remoto com git push azure master (veja Alterar ramo de implementação).

  3. 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.

  4. Reveja a saída. Poderá ver automatização específica do runtime, como MSBuild para ASP.NET, npm install para Node.js e pip install para Python.

  5. 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 mastermaino , 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 de DEPLOYMENT_BRANCH Aplicação com um nome e valor de main.

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 pusho , 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