Partilhar via


Implantar no Serviço de Aplicativo do Azure usando o Git local

Uma das maneiras mais simples de implantar código é a partir do seu computador local. Este artigo mostra como implantar seu aplicativo no Serviço de Aplicativo do Azure a partir de um repositório Git em seu computador local.

Nota

A implantação local do Git requer autenticação básica do Gerenciador de Controle do Código-Fonte (SCM), que é menos segura do que outros métodos de implantação. Se a autenticação básica estiver desabilitada, não será possível configurar a implantação local do Git no Centro de Implantação do aplicativo.

Pré-requisitos

Para concluir as etapas neste artigo, você precisa:

  • Uma conta e assinatura do Azure com permissão para criar recursos dos Serviços de Aplicativo. Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

  • Git instalado e um repositório Git local que contém código de aplicativo para implantar.

    Você pode clonar um exemplo Node.js repositório de aplicativos executando o seguinte comando na janela do terminal Bash local:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Se você quiser usar os comandos da CLI do Azure, a versão mais recente da CLI do Azure instalada em sua máquina local. Entre no Azure usando az login.

  • Se você quiser executar os comandos do Azure PowerShell, a versão mais recente do Azure PowerShell será instalada. Entre no Azure usando Connect-AzAccount.

Prepare seu repositório

Para obter compilações automatizadas do servidor de compilação do Serviço de Aplicativo, verifique se a raiz do repositório tem os arquivos corretos em seu projeto.

Tempo de execução Arquivos de diretório raiz
ASP.NET (somente Windows) *.sln, *.csproj, ou default.aspx.
ASP.NET Núcleo *.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.
Píton *.py, requirements.txt, ou runtime.txt.
HTML default.htm, default.html, , default.asp, index.htmindex.html, ou iisstart.htm.
Empregos na Web <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 Azure Functions.

Para personalizar sua implantação, inclua um .deployment arquivo na raiz do repositório. Para obter mais informações, consulte Personalizar implantações e Script de Implantação Personalizado.

Gorjeta

O Visual Studio pode criar um repositório para você. Com esse método, seu projeto fica imediatamente pronto para implantação via Git.

Credenciais de usuário de implantação

Você precisa de credenciais de usuário de implantação para autenticar e implantar seu aplicativo. Elas são diferentes de suas credenciais de assinatura do Azure e você pode usar credenciais de escopo de usuário ou de escopo de aplicativo .

Um utilizador de implementação com escopo de utilizador para implementação local do Git só precisa de um nome de utilizador, não de uma senha. Você pode definir o nome de usuário do escopo do usuário executando o comando az webapp deployment user set --user-name <username>da CLI do Azure ou em Escopo do usuário na guia Credenciais Git/FTPS locais do Centro de Implantação de um aplicativo.

Depois de criar seu usuário de implantação de escopo de usuário, você pode usá-lo para todos os aplicativos do Serviço de Aplicativo aos quais você tem acesso. Para obter mais informações, consulte Configurar credenciais de escopo do usuário.

Um utilizador de implementação de âmbito da aplicação é específico da aplicação e é criado automaticamente quando se cria uma aplicação. Você pode obter as credenciais de usuário do escopo do aplicativo para usar na implantação na guia Credenciais Git/FTPS locais no Centro de Implantação do aplicativo.

Criar e configurar um aplicativo habilitado para Git

Você pode criar e configurar um aplicativo habilitado para Git ou configurar a implantação local do Git para um aplicativo preexistente, usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.

  • Para criar um novo aplicativo Web configurado para implantação local do Git, execute az webapp create com a --deployment-local-git opção. Por exemplo:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git
    
  • Para configurar a implantação local do Git para um aplicativo já existente, execute az webapp deployment source config-local-git. Por exemplo:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

Qualquer comando produz uma saída que inclui uma URL, como:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

A URL anterior contém o nome contoso-userde usuário da implantação do escopo do usuário. Se você não tiver um nome de usuário de implantação de escopo de usuário, a URL usará o nome de usuário de escopo de aplicativo, por exemplo.https://$myApp@myApp.scm.azurewebsites.net/myApp.git

Use essa URL de clone do Git para implantar seu aplicativo na próxima etapa.

Implantar o aplicativo Web

Para implantar a aplicação no Azure, crie, se necessário, uma ramificação remota, assegure-se de que está a implementar no ramo correto e, em seguida, envie o seu código para o ramo remoto.

Criar a ramificação remota

Se você usou o Azure PowerShell New-AzWebApp para criar o aplicativo a partir do código de exemplo, o azure controle remoto já foi criado. Caso contrário, siga estas instruções para criar o controle remoto:

  1. Em um terminal local, altere o diretório para a raiz do repositório Git clonado.

  2. Adicione um controle remoto Git nomeado azure usando sua URL de clone do Git. Se tu não souberes o URL do clone do Git, usa https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Empurre para a ramificação correta

Os repositórios do App Service implantam ficheiros na branch master por padrão. Se os ficheiros locais preexistentes estiverem na master ramificação do repositório, agora pode implantar o seu aplicativo executando git push azure master.

No entanto, muitos repositórios Git, incluindo o repositório de código de exemplo para este artigo, usam main ou outro nome de ramificação padrão. Para implantar na ramificação correta, deve-se implantar explicitamente na ramificação remota master, ou alterar a ramificação de implantação para main ou outro nome de ramificação e implantar nessa ramificação.

Implante explicitamente a master partir de sua main ramificação usando o seguinte push comando:

git push azure main:master

Ou altere a DEPLOYMENT_BRANCH configuração do aplicativo para main e, em seguida, envie diretamente para main, da seguinte maneira:

  • CLI do Azure:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    
  • Portal do Azure:

    1. Na página do portal do seu aplicativo, selecione Variáveis de ambiente em Configurações no menu de navegação esquerdo.
    2. Selecione Adicionar, adicione uma configuração de aplicativo com o nome DEPLOYMENT_BRANCH e o valor principal e selecione Aplicar.
    3. Na janela do terminal, execute git push azure main.

Concluir e verificar a implantação

Se a caixa de diálogo Gerenciador de Credenciais do Git for exibida depois que você enviar seu código, insira seu nome de usuário de implantação de escopo de usuário ou nome de usuário e senha de escopo de aplicativo. Se o URL remoto do Git já contiver as informações de login, você não será solicitado a inseri-las.

Revise a saída do push comando. Você pode ver automação específica do tempo de execução, como npm install para Node.js, MSBuild para ASP.NET ou pip install para Python. Se você receber erros, consulte Solucionar problemas de implantação.

Vá para o portal do Azure e verifique se o aplicativo foi implantado com êxito selecionando o link Domínio padrão na página Visão geral do aplicativo. O aplicativo deve abrir em uma guia do navegador e exibir Hello World!.

Resolver problemas de implantação

Os seguintes erros comuns podem ocorrer quando você usa o Git local 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á em execução. No portal do Azure, inicie o aplicativo. A implantação do Git não está disponível quando a aplicação web está parada.
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 e suas URLs associadas. Verifique se o URL do azure controle remoto está correto. Se necessário, remova o URL incorreto usando git remote remove e recrie o controle remoto com 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 quando executou git push ou não definiu o push.default valor em .gitconfig. Execute git push novamente e especifique a ramificação correta com git push azure <branch>.
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, ou altere a ramificação de implantação seguindo as instruções em Enviar por push para a ramificação correta.
src refspec [branchname] does not match any. Você tentou fazer push para uma ramificação diferente do main no azure remoto. Execute git push novamente e especifique a main ramificação com git push azure main.
RPC failed; result=22, HTTP code = 5xx. Você tentou enviar um grande repositório Git por HTTPS. Altere a configuração do git no computador local para definir um valor mais alto para postBuffer. 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 os módulos necessários adicionados. Revise as npm ERR! mensagens de erro que aparecem antes desse erro para obter mais contexto. As seguintes causas conhecidas deste erro produzem as mensagens correspondentes npm ERR! :
Ficheiro 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\