Você está lendo a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. info
Sintoma
O proxy do Envoy falha com o erro HTTP 403 Forbidden quando invocado pelo
Adaptador da Apigee para Envoy.
Mensagem de erro
A seguinte mensagem de erro é exibida:
HTTP/1.1 403 Forbidden content-length: 19 content-type: text/plain date: Tue, 03 Nov 2020 00:20:10 GMT server: istio-envoy
Causas possíveis
O proxy Envoy vai gerar um erro HTTP 403 se uma das seguintes condições ocorrer:
| Causa | Descrição | Instruções de solução de problemas aplicáveis para |
|---|---|---|
| O produto de API não está ativado | O produto de API não está ativado para o ambiente específico. | Usuários da nuvem pública e privada do Edge |
| Caminho do URI do serviço de destino ausente no produto de API | O caminho do URI do serviço de destino está faltando ou não foi adicionado ao produto da API em recursos da API. | Usuários da nuvem pública e privada do Edge |
| Nome do host ausente no produto de API | O nome do host fornecido na solicitação da API do cliente está faltando no produto de API em destinos de serviço remoto da Apigee. | Usuários da nuvem pública e privada do Edge |
| Chave de API ausente no cabeçalho da solicitação | A chave de API não é transmitida no cabeçalho HTTP x-api-key. |
Usuários da nuvem pública e privada do Edge |
| Chave de API inválida | A chave de API transmitida como parte da solicitação é inválida. | Usuários da nuvem pública e privada do Edge |
| O adaptador da Apigee para Envoy não consegue se comunicar com o proxy de API de serviço remoto | O adaptador da Apigee para Envoy não consegue se comunicar com o proxy de API remote-service. | Usuários da nuvem pública e privada do Edge |
| O proxy do Envoy não consegue se comunicar com o adaptador da Apigee para Envoy | O proxy do Envoy não consegue se comunicar com o adaptador da Apigee para Envoy | Usuários da nuvem pública e privada do Edge |
Antes de começar
- Verifique se você está recebendo a mensagem de resposta
403 Forbiddendo proxy Envoy. Exemplo:curl -i -H "x-api-key: $API_KEY" http://httpbin:8080/echo HTTP/1.1 403 Forbidden content-length: 19 content-type: text/plain date: Tue, 12 Jan 2021 08:18:08 GMT server: envoy RBAC: access denied
Ative os registros de depuração:
Verifique se você ativou os registros de depuração no Adaptador da Apigee para Envoy para capturar mais detalhes sobre o erro. Caso contrário, pare e reinicie o adaptador da Apigee para Envoy, ativando os registros de depuração com o seguinte comando:
apigee-remote-service-envoy -c config.yaml -l debug
Causa: o produto da API não está ativado
Esse erro vai ocorrer se o produto de API específico usado pelo proxy Envoy não estiver ativado no ambiente específico em que as chamadas de API são invocadas.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
- Verifique os registros do adaptador da Apigee para Envoy e confira se a seguinte mensagem aparece na seção
Authorizing request:product: API_PRODUCT_NAME not found
Exemplo de saída do registro de depuração:
2021-01-12T08:18:08.124Z DEBUG auth/auth.go:98 Authenticate: key: 7mQIG..., claims: map[string]interface {}(nil) 2021-01-12T08:18:08.124Z DEBUG auth/verify_api_key.go:106 fetchToken fetching: 7mQIG... 2021-01-12T08:18:08.589Z DEBUG auth/auth.go:125 using api key from request 2021-01-12T08:18:08.589Z DEBUG auth/auth.go:157 Authenticate success: &auth.Context{Context:(*server.Handle r)(0xc0001a0600), ClientID:"7mQIG...", AccessToken:"", Application:"ENVOY-APP-1", APIProducts:[]string{"ENVOY-PRODUCT-1"}, Expires:time.Time{wall:0x0, ext:63746037188, loc:(*time.Location)(0x14a3be0)}, DeveloperEmail:"[---masked---]", Scopes:[] string{""}, APIKey:"7mQIG..."} 2021-01-12T08:18:08.589Z DEBUG product/manager.go:89 Authorizing request: products: [ENVOY-PRODUCT-1] scopes: [] operation: GET /echo target: httpbin:8080 - product: ENVOY-PRODUCT-1 not found
O exemplo acima mostra que o produto de API
ENVOY-PRODUCT-1não foi encontrado no adaptador da Apigee para Envoy.Para mais informações sobre a geração de registros do Adaptador da Apigee para Envoy, consulte Geração de registros.
- Se essa mensagem aparecer ao autorizar a solicitação de API, provavelmente indica que o produto de API específico não está ativado para um ambiente específico em que você está fazendo as chamadas de API.
- Siga estas etapas para verificar isso:
- Faça login na interface do Edge.
- Na página Publicar > Produtos da API, clique no produto da API específico que você usou para configurar o adaptador da Apigee para Envoy.
- Verifique se o ambiente específico em que você está fazendo as solicitações de API está ativado no produto de API.
- Se o ambiente específico não estiver ativado no produto de API, essa será a causa do problema.
- Se o ambiente específico já estiver ativado, acesse Causa: caminho do URI do serviço de destino ausente no produto de API.
Resolução
Se o ambiente específico não estiver ativado no produto de API, siga estas etapas para resolver o problema:
- Faça login na interface do Edge.
- Na página Publicar > Produtos da API, clique no produto da API específico que você usou para configurar o adaptador da Apigee para Envoy.
- Na página Produtos de API > Nome do produto, clique em Editar.
- Marque a caixa de seleção do ambiente relevante para ativar o ambiente específico em que você quer fazer solicitações de API.
- Clique em Salvar.
Causa: caminho de URI do serviço de destino ausente no produto da API
Esse erro vai ocorrer se o caminho do URI do destino não for especificado no produto de API específico usado pelo proxy do Envoy.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
-
Confira os registros do adaptador da Apigee para Envoy e verifique se a seguinte mensagem é mostrada para o produto de API específico associado a um destino específico na seção
Authorizing request:no path: REQUEST_URI_PATH
Exemplo de saída do registro de depuração:
2021-01-12T08:09:02.604Z DEBUG auth/auth.go:98 Authenticate: key: 7mQIG..., claims: map[string]interface {}(nil) 2021-01-12T08:09:02.605Z DEBUG auth/auth.go:125 using api key from request 2021-01-12T08:09:02.605Z DEBUG auth/auth.go:157 Authenticate success: &auth.Context{Context:(*server.Handle r)(0xc0001a4180), ClientID:"7mQIG...", AccessToken:"", Application:"ENVOY-APP-1", APIProducts:[]string{"ENVOY-PRODUCT-1"}, Expires:time.Time{wall:0x0, ext:63746036507, loc:(*time.Location)(0x14a3be0)}, DeveloperEmail:"[---masked---]", Scopes:[] string{""}, APIKey:"7mQIG..."} 2021-01-12T08:09:02.605Z DEBUG product/manager.go:89 Authorizing request: products: [ENVOY-PRODUCT-1] scopes: [] operation: GET /echo1 target: httpbin:8080 - product: ENVOY-PRODUCT-1 no path: /echo1 2021-01-12T08:09:02.605Z DEBUG server/authorization.go:228 sending ok (actual: PERMISSION_DENIED)
A saída de exemplo mostra a mensagem:
no path: /echo1
Isso indica que o caminho
/echo1não foi encontrado no produto da APIENVOY-PRODUCT-1. - Se você vir a mensagem
no path: REQUEST_URI_PATHnos registros de depuração do Adaptador da Apigee para Envoy, essa é a causa do problema. Caso contrário, acesse Causa: nome do host ausente no produto da API.
Resolução
Se o URI de solicitação específico não for adicionado ao produto de API para o destino específico, siga estas etapas para resolver o problema:
- Faça login na interface do Edge.
- Na página Publicar > Produtos da API, clique no produto da API específico que você usou para configurar o adaptador da Apigee para Envoy.
- Na página Produtos de API > Nome do produto, clique em Editar.
- No painel Recursos da API, adicione o URI de solicitação da API ao produto de API.
- Monitore os registros do adaptador da Apigee para Envoy e aguarde até que ele busque o produto de API atualizado. Depois, envie outra solicitação de API para verificar a correção.
Causa: nome do host ausente no produto da API
Esse erro vai ocorrer se a combinação de nome do host e porta de destino não for adicionada ao produto de API específico usado pelo proxy Envoy.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
Verifique os registros do adaptador da Apigee para Envoy e confira se a seguinte mensagem é mostrada para o produto de API específico associado a um destino específico na seção
Authorizing request:no targets: HOSTNAME:PORT
Exemplo de saída do registro de depuração:
2021-01-12T08:12:06.019Z DEBUG auth/auth.go:98 Authenticate: key: 7mQIG..., claims: map[string]interface {}(nil) 2021-01-12T08:12:06.019Z DEBUG auth/auth.go:125 using api key from request 2021-01-12T08:12:06.019Z DEBUG auth/auth.go:157 Authenticate success: &auth.Context{Context:(*server.Handle r)(0xc0001a4180), ClientID:"7mQIG...", AccessToken:"", Application:"ENVOY-APP-1", APIProducts:[]string{"ENVOY-PRODUCT-1"}, Expires:time.Time{wall:0x0, ext:63746036507, loc:(*time.Location)(0x14a3be0)}, DeveloperEmail:"[---masked---]", Scopes:[] string{""}, APIKey:"7mQIG..."} 2021-01-12T08:12:06.019Z DEBUG product/manager.go:89 Authorizing request: products: [ENVOY-PRODUCT-1] scopes: [] operation: GET /echo target: httpbin1:8080 - product: ENVOY-PRODUCT-1 no targets: httpbin1:8080 2021-01-12T08:12:06.020Z DEBUG server/authorization.go:228 sending ok (actual: PERMISSION_DENIED)
O exemplo acima mostra que a combinação de nome do host e porta
httpbin1:8080não foi encontrada no produto de APIENVOY-PRODUCT-1.- Se os registros do adaptador da Apigee para Envoy contiverem uma entrada com a mensagem
no targets: HOSTNAME:PORTao autorizar a solicitação, essa será a causa do problema. Caso contrário, acesse Causa: chave de API ausente no cabeçalho da solicitação.
Resolução
Se a combinação de nome do host e porta de destino não for adicionada ao produto de API, siga estas etapas para resolver o problema:
- Faça login na interface do Edge.
- Na página Publicar > Produtos da API, clique no produto da API específico que você usou para configurar o adaptador da Apigee para Envoy.
- Na página Produtos de API > Nome do produto, clique em Editar.
No painel Apigee remote service targets, adicione o nome do host e a porta de destino e clique em Salvar.
Se a seção Apigee remote service targets não aparecer na interface, adicione um atributo personalizado ao produto de API com o nome
apigee-remote-service-targetse o valor HOSTNAME:PORT usando a API Edge. Exemplo:curl https://api.enterprise.apigee.com/v1/organizations/$ORG/apiproducts/$ENVOY_PRODUCT \ -X GET \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type:application/json" \ -d \ { "apiResources": [ "/echo", "/verifyApiKey" ], "approvalType": "auto", "attributes": [ { "name": "access", "value": "public" }, { "name": "apigee-remote-service-targets", "value": "localhost:8080" } ], "createdAt": 1610435989556, "createdBy": "---masked---", "description": "", "displayName": "ENVOY-PRODUCT-1", "environments": [ "test" ], "lastModifiedAt": 1612234134060, "lastModifiedBy": "---masked---", "name": "ENVOY-PRODUCT-1", "proxies": [ "remote-service" ], "scopes": [] }- Depois que a tarefa acima for concluída, monitore os registros do adaptador da Apigee para Envoy e aguarde até que ele busque o produto de API atualizado. Depois, envie outra solicitação de API para verificar a correção.
Causa: falta uma chave de API no cabeçalho da solicitação
Esse erro vai ocorrer se a chave de API não for transmitida como parte dos cabeçalhos de solicitação.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
- Verifique os registros do Adaptador da Apigee para Envoy e confira se a mensagem
[missing authentication]aparece na seçãoAuthenticate error.Exemplo de saída do registro de depuração:
2021-01-12T08:20:31.461Z DEBUG auth/auth.go:98 Authenticate: key: , claims: map[string]interface {}(nil) 2021-01-12T08:20:31.461Z DEBUG auth/auth.go:159 Authenticate error: &auth.Context{Context:(*server.Handler) (0xc0001a0600), ClientID:"", AccessToken:"", Application:"", APIProducts:[]string(nil), Expires:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, DeveloperEmail:"", Scopes:[]string(nil), APIKey:""} [missing authentication] 2021-01-12T08:20:31.461Z DEBUG server/authorization.go:205 sending denied: UNAUTHENTICATED 2021-01-12T08:20:32.448Z DEBUG server/header_context.go:68 No context header x-apigee-api, using target header : :authority
A saída de exemplo mostrada acima tem a mensagem
[missing authentication]. Essa mensagem indica que a chave de API não foi transmitida como parte do cabeçalho da solicitação. - Se os registros do Adaptador da Apigee para Envoy contiverem uma entrada de registro com a mensagem
[missing authentication]na seçãoAuthenticate error, essa é a causa do problema. Caso contrário, acesse Causa: chave de API inválida.
Resolução
Se o erro [missing authentication] foi exibido nos registros do
adaptador da Apigee para Envoy, siga estas etapas para resolver o problema:
- Verifique se o cliente enviou a chave de API usando o cabeçalho HTTP
x-api-keyna solicitação de API. Caso contrário, peça ao cliente para enviar a chave de API no cabeçalho HTTPx-api-key. - Verifique o arquivo de configuração do Adaptador da Apigee para Envoy e confira se o nome do cabeçalho padrão da chave de API
x-api-keyfoi alterado. Por exemplo:apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | global: tls: ... tenant: ... auth: target_header: api-keyNo exemplo acima, o nome do cabeçalho padrão da chave de API foi modificado para
api-key. Nesse caso, você precisa transmitir a chave de API como parte do cabeçalhoapi-key. - Se o nome do cabeçalho da chave de API padrão tiver sido alterado, peça ao cliente para usar o nome atualizado do cabeçalho da chave de API e envie outra solicitação de API para verificar se isso resolve o problema.
Causa: chave de API inválida
Esse erro vai ocorrer se uma chave de API inválida for transmitida como parte do cabeçalho da solicitação.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
- Verifique os registros do Adaptador da Apigee para Envoy e confira se a mensagem
[permission denied]aparece na seçãoAuthenticate error. Isso geralmente é mostrado depois que a chave de API é buscada pelo adaptador, o que é indicado pela mensagemfetchToken fetching: API_KEY.Exemplo de saída do registro de depuração:
2021-01-12T05:01:07.198Z DEBUG auth/auth.go:98 Authenticate: key: 123, claims: map[string]interface {}(nil) 2021-01-12T05:01:07.198Z DEBUG auth/verify_api_key.go:106 fetchToken fetching: API_KEY 2021-01-12T05:01:09.102Z DEBUG server/header_context.go:68 No context header x-apigee-api, using target header: :authority 2021-01-12T05:01:09.831Z DEBUG auth/auth.go:159 Authenticate error: &auth.Context{Context:(*server.Handler)(0xc0001640c0), ClientID:"", AccessToken:"", Application:"", APIProducts:[]string(nil), Expires:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, DeveloperEmail:"", Scopes:[]string(nil), APIKey:""} [permission denied] 2021-01-12T05:01:09.832Z DEBUG server/authorization.go:228 sending ok (actual: PERMISSION_DENIED)
Neste exemplo, a chave de API enviada na solicitação de API não era válida.
- Se os registros do Adaptador da Apigee para Envoy contiverem uma entrada de registro com o
[permission denied]na seçãoAuthenticate error, isso indica que a chave de API transmitida como parte da solicitação é inválida e é a causa do problema. Caso contrário, acesse Causa: o adaptador da Apigee para Envoy não consegue se comunicar com o proxy de API de serviço remoto.
Resolução
Se a mensagem [permission denied] for observada na seção Authenticate
error dos registros do adaptador da Apigee para Envoy, siga estas etapas para resolver o problema:
- Verifique se a chave de API enviada na solicitação de API corresponde ao valor da chave de API encontrado no aplicativo conectado ao produto de API.
- Se a chave de API usada pelo cliente não for válida, peça para ele enviar a chave de API válida.
- Se a chave de API usada pelo cliente for válida e você ainda estiver recebendo um erro HTTP
403, entre em contato com o suporte da Apigee Edge para investigar o problema.
Causa: o adaptador da Apigee para Envoy não consegue se comunicar com o proxy de API do serviço remoto
Esse erro vai ocorrer se o adaptador da Apigee para Envoy não conseguir se comunicar com o proxy de API do serviço remoto se o host do serviço remoto configurado for inválido.
Diagnóstico
Siga estas etapas para diagnosticar o problema:
- Ative os registros de depuração conforme explicado na etapa 2 acima.
-
Verifique os registros do adaptador da Apigee para Envoy e confira se a seguinte mensagem aparece:
Error retrieving products: REQUEST_URI: no such host
Exemplo de saída do registro de depuração:
2021-01-12T08:29:06.499Z DEBUG product/manager.go:188 retrieving products from: https://foo/remote-service/products 2021-01-12T08:29:06.505Z ERROR product/manager.go:164 Error retrieving products: GET "https://foo/remote-service/pro ducts": dial tcp: lookup foo on 169.254.169.254:53: no such host github.com/apigee/apigee-remote-service-golib/product.(*manager).start.func1 /go/pkg/mod/github.com/apigee/apigee-remote-service-golib@v1.4.0/product/manager.go:164 github.com/apigee/apigee-remote-service-golib/util.(*Looper).Run /go/pkg/mod/github.com/apigee/apigee-remote-service-golib@v1.4.0/util/looper.go:87 github.com/apigee/apigee-remote-service-golib/util.(*Looper).Start.func1 /go/pkg/mod/github.com/apigee/apigee-remote-service-golib@v1.4.0/util/looper.go:59
Neste exemplo, o adaptador da Apigee para Envoy não conseguiu se comunicar com o proxy de API remote-service porque o nome do host fornecido no URL do proxy de API do servidor remoto não é válido, conforme indicado pelo erro
no such host. - Se os registros do Adaptador da Apigee para Envoy contiverem uma entrada de registro com a mensagem
no such host, essa será a causa do problema. Caso contrário, acesse Causa: o proxy do Envoy não consegue se comunicar com o adaptador da Apigee para Envoy.
Resolução
Se os erros acima forem exibidos nos registros do adaptador da Apigee para Envoy, siga estas etapas para resolver o problema:
Verifique o arquivo de configuração do adaptador da Apigee para Envoy e confira se o URL do proxy de API do serviço remoto fornecido é válido.
Caso contrário, pare o adaptador da Apigee para Envoy, corrija o URL do proxy de API remote-service no arquivo de configuração, inicie o adaptador da Apigee para Envoy, envie outra solicitação de API e verifique a correção.
Exemplo de configuração:
apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://ORG-ENV.apigee.net/remote-service org_name: ORG env_name: ENV key: KEY secret: SECRET- Verifique se o proxy de API
remote-serviceestá implantado no ambiente relevante do Edge. Caso contrário, implante o proxy de APIremote-serviceno ambiente relevante do Edge e tente de novo. - Verifique a conectividade de rede entre o adaptador da Apigee para Envoy e o
endpoint do proxy de API
remote-service. Se houver problemas de conectividade de rede, entre em contato com a equipe de rede e tente resolver o problema.
Causa: o proxy do Envoy não consegue se comunicar com o adaptador da Apigee para Envoy
Diagnóstico
Siga estas etapas para diagnosticar o problema:
Verifique se você ativou os registros de depuração no Envoy. Se não, pare e inicie o Envoy novamente, ativando os registros de depuração. Em seguida, envie outra solicitação de API.
Implantações autônomas:
envoy -c envoy-config.yaml -l debug
Implantações baseadas em Kubernetes/Istio:
kubectl -n=istio-system get pods kubectl -n=istio-system exec -it INGRESS_GATEWAY_NAME bash -- curl -X POST localhost:15000/logging?connection=debug
- Verifique os registros do adaptador da Apigee para Envoy e confira se há uma entrada de registro com a mensagem:
connecting to APIGEE_ENVOY_ADAPTER_HOST:5000
que é seguido por:
upstream connect error or disconnect/reset before headers. reset reason: ACTUAL_REASON
Exemplo de saída do registro de depuração:
[2021-03-23 05:44:41.867][1303661][debug][connection] [external/envoy/source/common/network/connection_impl.cc:769] [C4] connecting to 127.0.0.1:5000 [2021-03-23 05:44:41.867][1303661][debug][connection] [external/envoy/source/common/network/connection_impl.cc:785] [C4] connection in progress [2021-03-23 05:44:41.868][1303661][debug][http2] [external/envoy/source/common/http/http2/codec_impl.cc:1173] [C4] updating connection-level initial window size to 268435456 [2021-03-23 05:44:41.869][1303661][debug][connection] [external/envoy/source/common/network/connection_impl.cc:634] [C4] delayed connection error: 111 [2021-03-23 05:44:41.869][1303661][debug][connection] [external/envoy/source/common/network/connection_impl.cc:203] [C4] closing socket: 0 [2021-03-23 05:44:41.869][1303661][debug][client] [external/envoy/source/common/http/codec_client.cc:96] [C4] disconnect. resetting 0 pending requests [2021-03-23 05:44:41.869][1303661][debug][pool] [external/envoy/source/common/conn_pool/conn_pool_base.cc:314] [C4] client disconnected, failure reason: [2021-03-23 05:44:41.869][1303661][debug][router] [external/envoy/source/common/router/router.cc:1031] [C0][S6149963213555558594] upstream reset: reset reason: connection failure, transport failure reason: [2021-03-23 05:44:41.869][1303661][debug][http] [external/envoy/source/common/http/async_client_impl.cc:100] async http request response headers (end_stream=true): ':status', '200' 'content-type', 'application/grpc' 'grpc-status', '14' 'grpc-message', 'upstream connect error or disconnect/reset before headers. reset reason: connection failure'
O exemplo acima mostra que o Envoy não conseguiu se comunicar com o adaptador da Apigee para Envoy devido ao motivo
connection failure. - O
connection failurepode ocorrer por vários motivos. Vamos analisar cada um dos cenários.
Cenário 1: o processo do adaptador não está em execução
Esse erro pode ocorrer se o processo do adaptador da Apigee para Envoy não estiver em execução.
- Execute o comando a seguir para verificar se o processo do adaptador da Apigee para Envoy está em execução. Se o processo do Adaptador da Apigee para Envoy estiver em execução, o resultado do comando a seguir vai listá-lo.
ps -ef | grep apigee-remote-service-envoy
- Se não estiver em execução, essa é a causa do problema.
Resolução
- Se o processo do adaptador da Apigee para Envoy não estiver em execução, inicie-o.
- Faça outra solicitação de API e verifique se o problema foi corrigido.
Cenário 2: o processo do adaptador não está detectando na porta específica
Esse erro pode ocorrer se o processo do adaptador da Apigee para Envoy não estiver escutando na porta específica.
Se o processo do adaptador da Apigee para Envoy estiver em execução, verifique se há um soquete detectando na porta 5000: APIGEE_ENVOY_ADAPTER_HOST:5000. Para verificar isso, execute o comando
netstat:
sudo netstat -lnp | grep 5000
Exemplo de resposta:
sudo netstat -lnp | grep 5000 tcp6 0 0 :::5000 :::* LISTEN 1596530/./apigee-re
Se não houver um soquete detectando a porta 5000, esse poderá ser o motivo do problema.
Resolução
- Pare e reinicie o adaptador da Apigee para Envoy.
- Faça outra solicitação de API e verifique se o problema foi corrigido.
Cenário 3: conectividade de rede entre o Envoy e o adaptador da Apigee para Envoy
- Verifique a conectividade de rede entre o Envoy e o adaptador da Apigee para Envoy:
ssh $ENVOY_HOST telnet $APIGEE_ENVOY_ADAPTER_HOST 5000
Se o telnet conseguir fazer uma conexão TCP com o adaptador da Apigee para Envoy, uma saída semelhante a esta será exibida:
telnet $APIGEE_ENVOY_ADAPTER_HOST 5000 Trying ::1... Connected to localhost. Escape character is '^]'.
- Se você observar o erro
Connection timed outcom o Telnet, isso indica que há um problema de conectividade de rede entre o Envoy e o adaptador da Apigee para Envoy.
Resolução
Se você encontrar problemas de conectividade de rede entre o Envoy e o adaptador da Apigee para Envoy, entre em contato com sua equipe de rede e tente resolver o problema.
Se o problema persistir, acesse Precisa de informações de diagnóstico.
É necessário coletar informações de diagnóstico
Se o problema persistir depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e entre em contato com o suporte do Apigee Edge:
-
Produto da Apigee usado:
Exemplo:Apigee Edge Cloud, Apigee OPDK, Apigee híbrida, Apigee X
- Organização e ambiente da Apigee
Definição de produto da API lida usando a API do Edge:
curl -i -u $USER:$PASSWORD $MANAGEMENT_SERVER_ENDPOINT/v1/organizations/$ORGANIZATION/apiproducts/$API_PRODUCT
Referência:APIs do Apigee Edge
Inicie uma sessão de rastreamento no proxy de API
remote-serviceusando a interface do Apigee Edge. Reproduza o problema e compartilhe o arquivo XML da sessão de rastreamento.Referência: Como usar a ferramenta Trace | Apigee Edge
Registros do adaptador da Apigee para Envoy (registros completos relacionados ao período especificado)
Implantações autônomas:
# by default Apigee Envoy write logs to stdout and stderr, check your deployment configuration and collect logs accordingly
Implantações baseadas em Kubernetes/Istio:
kubectl -n=apigee get pods kubectl -n=apigee logs APIGEE_REMOTE_SERVICE_ENVOY_POD_NAME > apigee-remote-service-envoy.log
- Uma solicitação de API enviada ao proxy do Envoy usando um comando
curl(a saída completa do comandocurl):curl -v ENVOY_PROXY_ENDPOINT
- Uma solicitação de API enviada ao serviço de destino usando um comando
curl(a saída completa do comandocurl):curl -v TARGET_SERVICE_ENDPOINT