Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Este artigo ajuda você a resolver erros comuns que ocorrem quando você usa as tarefas de Aplicativo Web do Azure (AzureWebApp@1) ou Implantação do Serviço de Aplicativo do Azure (AzureRmWebAppDeployment@4) no Azure Pipelines.
Este é um artigo de solução de problemas. Para saber mais sobre implantações do Serviço de Aplicativo, consulte Implantar no Serviço de Aplicativo do Azure usando o Azure Pipelines, que abrange AzureWebApp@1 e cenários avançados com AzureRmWebAppDeployment@4. Para implantações baseadas em contêiner, consulte Implantar um contêiner personalizado no Serviço de Aplicativo usando o Azure Pipelines, que inclui AzureRmWebAppDeployment@4 exemplos.
Dica
Antes de solucionar problemas, reúna logs de depuração habilitando o log verboso para a execução do pipeline. Você também pode coletar logs de diagnóstico do serviço Kudu e o recurso Diagnosticar e resolver problemas no portal do Azure para seu Serviço de Aplicativo. Verifique o status do Azure DevOps e o status do Azure para excluir interrupções de serviço.
"Falta de memória no heap do JavaScript"
Sintoma
A tarefa de implantação falha com o seguinte erro:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Motivo
Esse erro ocorre quando a tarefa tenta descompactar e compactar novamente um grande pacote de implantação e a operação excede a memória disponível no agente. Os agentes hospedados pela Microsoft têm recursos limitados, o que pode causar essa falha para pacotes grandes.
Resolução
Use a tarefa Azure Web App (AzureWebApp@1) em vez da tarefa AzureRmWebAppDeployment@4 para implantações do Serviço de Aplicativo.
A AzureWebApp@1 tarefa lida com pacotes grandes de forma mais eficiente.
Para cenários de implantação mais complicados que exigem transformação XML, use a tarefa Implantação do Serviço de Aplicativo do Azure (AzureRmWebAppDeployment@4) com um pacote menor ou divida transformações em uma etapa de pipeline separada.
"ECONNRESET" durante a implantação
Sintoma
A tarefa de implantação falha com o seguinte erro:
Encountered a retriable error: ECONNRESET. Message: read ECONNRESET
Motivo
Uma conexão de rede entre o agente de pipeline e o Serviço de Aplicativo foi redefinida durante a implantação. As causas mais comuns incluem:
- Agentes hospedados pela Microsoft implantando em um App Service Environment (ASE): O ASE pode bloquear conexões de entrada dos endereços IP dos agentes.
- Agentes auto-hospedados: Uma conexão de rede instável ou flutuante entre o agente e o Serviço de Aplicativo.
Resolução
Para agentes hospedados pela Microsoft com o ASE:
Verifique se as regras de segurança de rede do ASE permitem conexões de entrada dos intervalos de IP do agente hospedado pela Microsoft para sua geografia. Para obter a lista de intervalos de endereços IP, consulte Endereços IP permitidos e URLs de domínio.
Para agentes autohospedados:
- Verifique se a conexão de rede entre o agente e o Serviço de Aplicativo está estável.
- Se o problema persistir, crie um tíquete de suporte com o Serviço de Aplicativo do Azure ou a equipe de Rede do Azure para uma investigação mais detalhada.
Falha ao implantar o pacote Web no App Service
Sintoma
A tarefa de implantação falha com um ou ambos os seguintes erros:
[error]Failed to deploy web package to App Service.
Package deployment using ZIP Deploy failed. Refer logs for more details.
Motivo
A tarefa usa a API do Kudu zipDeploy para implantação e a API retornou um erro.
Esse erro pode ocorrer quando o Serviço de Aplicativo não pode processar o pacote de entrada corretamente.
Resolução
Defina a configuração do app WEBSITE_RUN_FROM_PACKAGE para 1 no seu Serviço de Aplicativo:
- No portal do Azure, acesse o Serviço de Aplicativo.
- Selecione Configuração>Configurações do aplicativo.
- Adicione ou atualize a configuração
WEBSITE_RUN_FROM_PACKAGEcom um valor igual a1. - Salve a configuração e repita a implantação.
Para obter mais informações, consulte Executar seu aplicativo em um pacote.
"EMFILE: muitos arquivos abertos"
Sintoma
A tarefa de implantação falha com um dos seguintes erros:
EMFILE: too many open files
Error: Package deployment using ZIP Deploy failed
Motivo
A tarefa de implantação abre muitos manipuladores de arquivos ao descompactar um pacote grande, excedendo o limite de descritores de arquivo do sistema operacional.
Resolução
Use uma das seguintes soluções alternativas:
Opção 1: usar a tarefa de Aplicativo Web do Azure
Alterne de AzureRmWebAppDeployment@4 para a tarefa Azure Web App (AzureWebApp@1), que processa pacotes grandes de maneira diferente.
Opção 2: extrair arquivos antes da implantação
Use a tarefa Extrair Arquivos para descompactar o pacote em uma etapa anterior e, em seguida, implantar a pasta extraída. Essa abordagem impede que a tarefa de implantação precise descompactar o pacote em si.
steps:
- task: ExtractFiles@1
displayName: 'Extract files'
inputs:
archiveFilePatterns: '$(InputPackageZipPath)'
destinationFolder: '$(OutputUnzippedPath)'
- task: AzureRmWebAppDeployment@4
displayName: 'Azure App Service Deploy'
inputs:
azureSubscription: 'Subscription'
WebAppName: 'app-name'
package: '$(OutputUnzippedPath)'
Erro "Recurso não existe"
Sintoma
A tarefa de implantação falha com o seguinte erro:
Error: Resource '<ResourceName>' doesn't exist. Resource should exist before deployment.
Esse erro pode ocorrer com tarefas do Aplicativo Web do Azure, tarefas de Implantação do Serviço de Aplicativo do Azure, tarefas do Azure Functions e tarefas de implantação de modelo do ARM.
Motivo
A tarefa chama APIs do Azure que dependem de dados de recursos armazenados em cache. Se o Serviço de Aplicativo ou outro recurso do Azure tiver sido criado recentemente , seja no mesmo pipeline, por outra ferramenta ou pouco antes da execução do pipeline, o cache talvez ainda não reflita o novo recurso.
Resolução
Adicione uma etapa de atraso no pipeline antes da tarefa de implantação para permitir que o cache do Azure atualize:
steps:
- task: PowerShell@2
displayName: 'Wait for resource propagation'
inputs:
targetType: inline
script: Start-Sleep -Seconds 60
Se a adição de um atraso não resolver o erro, crie um tíquete de suporte com a equipe de suporte da Azure para o tipo de recurso afetado.
"Nenhum pacote encontrado com o padrão especificado"
Sintoma
A tarefa de implantação falha com um erro indicando que nenhum pacote foi encontrado correspondendo ao padrão especificado.
Motivo
O artefato que contém o pacote de implantação não foi publicado na compilação ou em um estágio anterior, ou não foi baixado na tarefa atual.
Resolução
- Verifique se a compilação ou um estágio anterior do pipeline publica o pacote como um artefato de pipeline.
- Confirme se o trabalho atual inclui uma etapa de download para o artefato.
- Verifique se o padrão de caminho do arquivo na tarefa de implantação corresponde ao caminho real do artefato.
"Não há suporte para publicar usando a opção de implantação zip para o tipo de pacote MSBuild"
Sintoma
A tarefa de implantação falha com um erro sobre a implantação zip não ter suporte para tipos de pacotes do MSBuild.
Motivo
Os pacotes Web criados pela tarefa MSBuild (com argumentos padrão) usam uma estrutura de pasta aninhada que requer o Web Deploy para o correto funcionamento da implantação. A opção de implantação zip não pode lidar com essa estrutura de pacotes.
Resolução
Use a tarefa AzureRmWebAppDeployment@4 com o Web Deploy em vez da implantação de zip, ou reestruture seu build para produzir uma saída baseada em pasta.
Para gerar uma saída de pasta a partir do MSBuild, adicione o argumento /p:PackageAsSingleFile=false à sua tarefa do MSBuild.
Erro 5xx durante a implantação
Sintoma
A tarefa de implantação falha com um 500, 502, 503 ou outro código de erro HTTP 5xx.
Motivo
Ocorreu um erro no lado do servidor no Serviço de Aplicativo ou em sua infraestrutura subjacente. As causas comuns incluem capacidade insuficiente do Plano do Serviço de Aplicação, uma interrupção contínua do Azure ou o Serviço de Aplicação em um estado parado ou em erro.
Resolução
- Verifique o status do Azure para interrupções contínuas.
- No portal do Azure, verifique se o Serviço de Aplicativo está em execução e se o Plano do Serviço de Aplicativo tem capacidade suficiente.
- Aumente o Plano do Serviço de Aplicativo para aumentar a CPU, a RAM e o espaço em disco ou tente um plano diferente.
- Examine os logs do Kudu para obter mais detalhes sobre o erro do lado do servidor.
A implementação trava e então falha ou "503 serviço indisponível"
Sintoma
Uma implantação ocorre por um período prolongado e, eventualmente, falha, ocorre um erro 503 Service Unavailable ou o histórico de implantação nos logs do Kudu não atualiza.
Motivo
Esses problemas normalmente ocorrem quando o Plano do Serviço de Aplicativo não tem capacidade suficiente para lidar com a implantação junto com o aplicativo em execução.
Resolução
- Aumente a instância do Serviço de Aplicativo para aumentar a CPU, a RAM e o espaço em disco disponíveis.
- Tente implantar em um Plano de Serviço do Aplicativo diferente para eliminar a contenção de recursos.
- Revise os logs de diagnóstico do Kudu no portal do Azure em busca de erros específicos.
- Para implantações sem tempo de inatividade, utilize slots de implantação com troca de slots em vez de implantar diretamente no slot de produção.
Erros de conectividade de rede durante a implantação
Sintoma
A tarefa de implantação falha com um erro relacionado à rede, como:
Could not connect to the remote computer ('<AppName>.scm.azurewebsites.net')
Motivo
O agente do pipeline não consegue acessar o endpoint do Kudu do App Service (site do SCM) devido a regras de firewall, configurações de proxy ou restrições de rede.
Resolução
Examine a configuração de rede para o tipo de agente:
- Agentes hospedados pela Microsoft: Verifique se o firewall permite conexões dos intervalos de IP do agente hospedado pela Microsoft.
- Agentes auto-hospedados: Verifique as configurações de proxy e a conectividade de rede. Consulte Executar um agente auto-hospedado por trás de um proxy Web.
- Ambiente do Serviço de Aplicativo (ASE): Confirme se o grupo de segurança de rede do ASE permite conexões de entrada no endpoint do SCM. Consulte Conectividade para um Ambiente de Serviço de Aplicativos.
"Não foi possível buscar o token de acesso para o Azure"
Sintoma
A tarefa de implantação falha com o seguinte erro:
Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.
Motivo
O principal de serviço que dá suporte à conexão de serviço do Azure expirou, está desabilitado ou não possui as permissões necessárias.
Resolução
Verifique o principal de serviço no Microsoft Entra ID e renove o segredo ou certificado se tiver expirado. Para obter etapas detalhadas de solução de problemas, consulte Solucionar problemas de conexões de serviço do Azure Resource Manager.
Erro SSL na tarefa de implantação
Sintoma
A tarefa de implantação falha com um erro relacionado a SSL.
Motivo
O Serviço de Aplicativo tem um problema de configuração de certificado SSL, como o uso de um certificado não confiável ou autoassinado.
Resolução
Verifique se o certificado usado pelo Serviço de Aplicativo é assinado por uma autoridade de certificação confiável. Para obter mais informações, consulte Adicionar e gerenciar certificados TLS/SSL no Serviço de Aplicativo do Azure.
Códigos de erro de Implantação da Web
Sintoma
Ao usar o Web Deploy como método de implantação, o log de tarefas exibe um código de erro do Web Deploy, como ERROR_CONNECTION_NOT_FOUND, ERROR_DESTINATION_NOT_REACHABLE, ou outros.
Motivo
O Web Deploy encontrou um problema ao se comunicar ou implantar no App Service.
Resolução
Consulte códigos de erro de implantação da Web para obter uma lista completa de códigos de erro e suas resoluções.
"ERROR_FILE_IN_USE" ao implantar aplicativos .NET
Sintoma
A tarefa de implantação falha com um ERROR_FILE_IN_USE erro ao implantar um aplicativo .NET no Serviço de Aplicativo no Windows.
Motivo
Os arquivos de aplicativo são bloqueados pelo processo de aplicativo em execução durante a implantação.
Resolução
AzureRmWebAppDeployment@4 Na tarefa, habilite as seguintes opções:
-
Renomear arquivos bloqueados (
enableMSDeployAppOffline: true) -
Leve o aplicativo offline (
enableMSDeployRetry: true)
Para implantações sem tempo de inatividade, use slots de implantação com trocas de slot.
Aplicativo implantado com êxito, mas não funcionando (Windows)
Sintoma
A implantação é concluída sem erros, mas o aplicativo não responde nem retorna erros quando você navega até ele.
Motivo
No Serviço de Aplicativo do Windows, um web.config arquivo é necessário para muitos tipos de aplicativo (como Node.js ou Python).
Se o arquivo estiver ausente, o IIS não poderá rotear solicitações para seu aplicativo.
Resolução
Adicione um web.config arquivo à raiz do aplicativo.
Para obter mais informações, consulte Configurar um contêiner personalizado para o Serviço de Aplicativo do Azure e as diretrizes específicas da estrutura:
- Configurar um aplicativo Node.js para o Serviço de Aplicativo do Azure
- Configurar um aplicativo Python para o Serviço de Aplicativo do Azure
Falha na implantação do Aplicativo de Funções com a tarefa AzureRmWebAppDeployment
Sintoma
Falha ao implantar um aplicativo de função do Azure usando a tarefa AzureRmWebAppDeployment@4.
Motivo
A tarefa AzureRmWebAppDeployment@4 foi projetada para implantações do Serviço de Aplicativo e pode não atender corretamente aos requisitos específicos do Aplicativo de Funções.
Resolução
Em vez disso, use a tarefa do Azure Functions (AzureFunctionApp@1), que foi projetada especificamente para implantações do Aplicativo de Funções.
Conteúdo relacionado
- Implantar no Serviço de Aplicativo usando o Azure Pipelines
- AzureWebApp@1 – Tarefa do Aplicativo Web do Azure v1
- AzureRmWebAppDeployment@4 – Tarefa implantar o Serviço de Aplicativo do Azure v4
- Solucionar problemas de conexões de serviço do Azure Resource Manager
- Solucionar problemas nas execuções de pipeline
- Revisar os logs para diagnosticar os problemas do pipeline