Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Vídeos
Confira os vídeos a seguir para mais informações sobre erros 503:
| Vídeo | Descrição |
|---|---|
| Resolver problemas e erros 503: Serviço indisponível - NoActiveTargets | Saiba mais sobre:
|
Sintoma
O aplicativo cliente recebe o código de status de resposta HTTP 503 com a mensagem Service Unavailable e o código de erro NoActiveTargets para as solicitações de proxy de API.
Mensagem de erro
Você vai receber a seguinte resposta de erro:
HTTP/1.1 503 Service Unavailable
Você vai receber a seguinte mensagem de erro na resposta HTTP:
{
"fault": {
"faultstring": "The Service is temporarily unavailable",
"detail": {
"errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
}
}
}
Causas possíveis
A resposta HTTP 503 Service Unavailable com o código de erro NoActiveTargets geralmente é observada quando você usa um ou mais servidores de destino na configuração do endpoint de destino no proxy de API.
A tabela a seguir lista as possíveis causas da resposta 503 Service Unavailable com o código de erro NoActiveTargets:
| Causa | Descrição | Quem pode realizar as etapas de solução de problemas |
|---|---|---|
| Servidor de destino desativado | O servidor de destino especificado na configuração do endpoint de destino está desativado. | Usuários da nuvem pública e privada do Edge |
| Erros de conexão devido à resolução de DNS incorreta | A resolução de DNS do servidor de destino resultou em endereços IP incorretos que levam a erros de conexão. | Usuários da nuvem privada do Edge |
| Erros de conexão | Problemas de rede ou conectividade impedem que o cliente se conecte ao servidor. | Usuários da nuvem privada do Edge |
| Alias de host de destino incorreto | O host do servidor de destino especificado está incorreto ou tem caracteres indesejados (como um espaço). | Usuários da nuvem pública e privada do Edge |
| Falhas de handshake de SSL | O handshake de TLS/SSL falhou entre o cliente e o servidor. | Usuários da nuvem pública e privada do Edge |
| Falhas na verificação de integridade | As verificações de integridade configuradas para verificar a integridade do servidor de destino podem falhar por algum motivo. | Usuários da nuvem privada do Edge |
Causa: servidor de destino desativado
Se todos os servidores de destino especificados na configuração do endpoint de destino estiverem desativados, você receberá a resposta 503 Service Unavailable com o código de erro NoActiveTargets.
Diagnóstico
- Determine o nome do servidor de destino que está sendo usado na configuração específica do endpoint de destino do proxy de API com falha usando uma das seguintes maneiras:
- Se houver um único endpoint de destino, verifique esse endpoint.
- Se houver vários endpoints de destino e você não souber qual deles tem o servidor de destino desativado, siga as etapas abaixo:
- Ative a sessão de rastreamento, faça a chamada de API e reproduza o problema: 503 Service Unavailable.
- No rastreamento, acesse Fluxo de solicitação de destino iniciado e determine o nome do endpoint de destino, conforme mostrado abaixo:
- Depois de identificar o endpoint de destino, receba o nome do servidor de destino usado na configuração do endpoint de destino, conforme mostrado no exemplo abaixo:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>No exemplo acima, há um único servidor de destino chamado demo-target.
- Receba a definição de cada um dos servidores de destino usados no endpoint de destino usando a interface do Edge ou a chamada de API Edge.
Interface do Edge
Para receber a definição usando a interface do Edge:
- Acesse Admin > Ambientes > Servidores de destino.
- Selecione o ambiente específico em que a falha está ocorrendo.
- Pesquise o nome do servidor de destino específico para receber a definição do servidor de destino.
Por exemplo, digite o nome do servidor de destino
demo-targete você verá a definição dele, conforme mostrado abaixo:
Observe que o servidor de destino demo-target tem um alias de host, número da porta e SSL ativado. No entanto, o servidor de destino está desativado, indicado pelo elemento ENABLED esmaecido.
API Edge
Para receber a definição usando a API Edge:
Use a API Get TargetServer para receber a definição do servidor de destino.
Saída da definição do servidor de destino
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>A saída da API Apigee mostra que o servidor de destino demo-target está desativado , já que o elemento IsEnabled está definido como "false".
Como o servidor de destino está desativado, o processador de mensagens enviará 503 Service Unavailable com o código de erro NoActiveTargets imediatamente como uma resposta ao cliente.

Resolução
Verifique se os servidores de destino específicos usados na configuração do endpoint de destino do proxy de API estão sempre ativados.
Interface do Edge
- Acesse Admin > Ambientes > Servidores de destino.
- Selecione o ambiente específico em que a falha está ocorrendo.
- Pesquise o nome do servidor de destino específico para receber a definição dele.
- Selecione o servidor de destino específico e clique em Editar.
- Marque a caixa de seleção Ativado.
- Clique em Atualizar.
API Edge
Use a API Update a Target Server para atualizar a definição do servidor de destino e garantir que IsEnabled esteja definido como true no payload da solicitação da API, conforme mostrado abaixo:
<TargetServer name="demo-target">
<Host>demo-target.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer>
Se o problema persistir, acesse Precisa de informações de diagnóstico.
Diagnosticar problemas usando o monitoramento de API
O monitoramento de API permite isolar áreas problemáticas rapidamente para diagnosticar problemas de erro, desempenho e latência e a origem deles, como aplicativos de desenvolvedor, proxies de API, destinos de back-end ou a plataforma de API.
Siga um cenário de exemplo
que demonstra como solucionar problemas 5xx com suas APIs usando o monitoramento de API. Por exemplo,
você pode configurar um alerta para receber uma notificação quando o número de messaging.adaptors.http.flow.NoActiveTargets
falhas exceder um limite específico.
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, colete as seguintes informações de diagnóstico. Entre em contato e compartilhe-as com o suporte da Apigee:
- Se você for um usuário da nuvem pública, forneça as seguintes informações:
- Nome da organização
- Nome do ambiente
- Nome do proxy de API
- Comando curl completo para reproduzir o erro
- Arquivo de rastreamento que contém as solicitações com 503 Service Unavailable com o código de erro NoActiveTargets
- Se você for um usuário da nuvem privada, forneça as seguintes informações:
- Mensagem de erro completa observada
- Nome do ambiente
- Pacote de proxy de API
- Arquivo de rastreamento que contém as solicitações com 503 Service Unavailable com o código de erro NoActiveTargets
- Registros de acesso do NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log) - Registros do processador de mensagens
(
/opt/apigee/var/log/edge-message-processor/logs/system.log)