Os SDKs oficiais do EAS estão disponíveis em Java, Python e Golang e são a forma recomendada de invocar services em cenários de conexão direta VPC. Esses SDKs encapsulam a descoberta de services, o balanceamento de carga, a assinatura de tokens e as novas tentativas em caso de falha, permitindo concluir a invocação do service rapidamente.
Casos de uso
O caso de uso típico dos SDKs oficiais do EAS é a conexão direta VPC. Nesse cenário, o SDK elimina a necessidade de implementar a descoberta de services e o balanceamento de carga manualmente.
Para outros métodos de invocação, como por meio de um Shared Gateway ou gateway dedicado, um cliente HTTP padrão geralmente é suficiente, sem necessidade do SDK.
Para obter orientações sobre como selecionar um método de invocação, consulte Service invocation.
Como funciona
O SDK suporta dois tipos de endpoint: acesso via gateway e conexão direta VPC. Embora difiram no roteamento de solicitações, ambos seguem o mesmo processo de invocação, composto pelas três etapas a seguir:
Inicialize o cliente: Crie um
PredictCliente defina o endpoint, o nome do service e o token. Obtenha o token na página de detalhes do service no console do EAS. Chameinit()para concluir a inicialização.Construa uma solicitação: Crie um objeto de solicitação, como
StringRequest,TFRequestouTorchRequest, com base nos formatos de entrada e saída do service. O tipo de solicitação deve corresponder ao esperado pelo service. Para services implantados com um processador, consulte Processor deployment e identifique o tipo de solicitação correspondente a cada processador.Invoque o service: Chame o método
predict()para enviar a solicitação e receber a resposta. O SDK lida automaticamente com a assinatura do token, novas tentativas em caso de falha (cinco vezes por padrão) e desserialização da resposta, sem exigir intervenção do usuário.
Em cenários de conexão direta VPC, o SDK oficial encapsula a lógica de descoberta de services e balanceamento de carga. Para mais detalhes, consulte VPC direct connection - Call with the official SDK.
Além das chamadas de inferência síncrona descritas acima, o SDK também oferece um método de invocação de service de fila:
Use um
QueueClientpara enviar solicitações de forma assíncrona para uma fila de entrada. O service consome (retira) as solicitações da fila e grava os resultados em uma fila de saída.O cliente recebe os resultados ao monitorar a fila de saída.
Esse método é adequado para inferência assíncrona e tarefas de longa duração. Para instruções detalhadas, consulte os exemplos nos guias específicos de cada linguagem.
Solução de problemas de invocação
Se uma chamada de SDK falhar, solucione o problema camada por camada nesta ordem: cliente → rede → lado do servidor. A classificação de problemas comuns e as diretrizes de solução correspondentes são as seguintes:
Autenticação (401 / 403): Verifique se o token foi passado corretamente, se corresponde ao service de destino ou se foi redefinido no console.
Roteamento (404): Confirme se o endpoint e o nome do service correspondem aos valores exibidos na página de detalhes do service no console do EAS. Caso utilize conexão direta VPC, verifique se a descoberta de services obteve a lista de instâncias.
Conectividade (conexão recusada / tempo limite esgotado / falha na resolução DNS): Certifique-se de que o cliente e o servidor estejam na mesma VPC, que as regras do grupo de segurança permitam o tráfego e que o domínio do endpoint seja resolvível.
Lado do servidor (5xx / resposta vazia / formato de resposta inválido): Analise os logs do service para identificar a causa raiz desses problemas.
Para obter uma lista completa de códigos de status do service, mensagens de erro típicas e soluções recomendadas, consulte Appendix: Service status codes and common errors.