Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Vídeos
Veja os vídeos a seguir para mais informações sobre os erros 503:
Video | Descrição |
---|---|
Resolver problemas e resolver o erro "503 Service Available - NoActiveDestinations" | Saiba mais sobre:
|
Sintoma
O aplicativo cliente recebe o código de status de resposta HTTP 503 com a mensagem Service Invalid e o código de erro NoActiveDestination para as solicitações de proxy de API.
Mensagem de erro
Você verá a seguinte resposta de erro:
HTTP/1.1 503 Service Unavailable
Você verá 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 Unused com o código de erro NoActiveDestination normalmente é observada quando você usa um ou mais servidores de destino na configuração de endpoint de destino no seu proxy de API.
A tabela a seguir lista as possíveis causas da resposta 503 Service Indisponível com o código de erro NoActiveTargets:
Causa | Descrição | Quem pode executar as etapas de solução de problemas |
---|---|---|
O servidor de destino está desativado | O servidor de destino especificado na configuração do endpoint de destino está desativado. | Usuários de nuvens públicas e privadas de borda |
Erros de conexão devido à resolução incorreta de DNS | A resolução DNS do servidor de destino resultou em endereços IP inválidos, o que gerou 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 de nuvens públicas e privadas de borda |
Falhas do handshake de SSL | Falha no handshake de TLS/SSL entre o cliente e o servidor. | Usuários de nuvens públicas e privadas de borda |
Falhas na verificação de integridade | As verificações de integridade configuradas para conferir a integridade do servidor de destino podem falhar por algum motivo. | Usuários da nuvem privada do Edge |
Causa: o servidor de destino está desativado
Se todos os servidores de destino especificados na configuração do endpoint de destino estiverem desativados, você vai receber a resposta 503 Service Unused 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 apenas um endpoint de destino, verifique esse endpoint específico.
- Se houver vários endpoints de destino e você não souber qual deles desativou o servidor de destino, siga as etapas abaixo:
- Ative a sessão de rastreamento, faça a chamada da API e reproduza o problema - 503 Serviço indisponível.
- No trace, navegue até Target Request Flow Started e determine o nome do endpoint de destino, conforme mostrado abaixo:
- Depois de identificar o endpoint de destino, consiga 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.
- Confira a definição de cada um dos servidores de destino usados no endpoint de destino usando a IU do Edge ou a chamada da API Edge.
interface do Edge
Para ver a definição usando a interface do usuário do Edge:
- Acesse Administrador > Ambientes > Servidores de destino.
- Selecione o ambiente em que a falha ocorre.
- Pesquise o nome específico do servidor de destino para conferir a definição do servidor de destino.
Por exemplo, digite o nome do servidor de destino
demo-target
e você vai ver sua definição conforme mostrado abaixo:O servidor de destino demo-target tem um alias de host, uma porta # e o SSL está ativado. No entanto, o servidor de destino está desativado , o que é indicado pelo esmaecimento do elemento ATIVADO.
API Edge
Para acessar 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 porque o elemento IsEnabled está definido como falso.
Como o servidor de destino está desativado, o processador de mensagens vai enviar 503 Service Invalid 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 seu proxy de API estão sempre ativados.
interface do Edge
- Acesse Administrador > Ambientes > Servidores de destino.
- Selecione o ambiente em que a falha ocorre.
- Procure o nome específico do servidor de destino 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 Atualizar uma API do servidor de destino 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 APIs
O Monitoramento de APIs permite isolar áreas problemáticas rapidamente para diagnosticar erros, desempenho e latência, bem como a origem delas, como apps de desenvolvedores, proxies de API, destinos de back-end ou a plataforma da API.
Consulte um exemplo de cenário
que demonstra como solucionar problemas de 5xx com suas APIs usando o API Monitoring. Por exemplo,
é possível configurar um alerta para receber uma notificação quando o número de falhas messaging.adaptors.http.flow.NoActiveTargets
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 com o suporte da Apigee:
- Se você é usuário da nuvem pública, forneça as seguintes informações:
- Nome da organização
- Nome do ambiente
- Nome de proxy da API
- Concluir o comando curl para reproduzir o erro
- Arquivo de rastreamento que contém as solicitações com o erro "503 Service Indisponível" com o código de erro NoActiveTargets
- Se você é um usuário da nuvem privada, forneça as seguintes informações:
- Mensagem de erro concluída observada
- Nome do ambiente
- Pacote de proxy de API
- Arquivo de rastreamento que contém as solicitações com o erro "503 Service Indisponível" 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
)