Está a ver a documentação do Apigee e do Apigee Hybrid.
Não existe um equivalente
na documentação do Apigee Edge para este tópico.
Sintoma
Problemas de conetividade de rede entre o Apigee e um serviço de destino a sul ligado pelo Private Service Connect (PSC).
Mensagem de erro
Um problema de ligação de rede ou um limite de tempo excedido de TCP entre o Apigee e o serviço de destino
seria apresentado como uma resposta de erro 503
e mostraria um
erro semelhante ao abaixo se criar uma sessão de depuração.
{"fault":{"faultstring":"The Service is temporarily unavailable","detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable","reason":"TARGET_CONNECT_TIMEOUT"}}}
Causas possíveis
Causa | Descrição |
Regiões diferentes entre a associação de serviços e a instância do Apigee | A região da instância do Apigee e a região do anexo de serviço são diferentes. |
Regra de firewall de entrada em falta para a sub-rede do PSC no projeto de destino | No projeto de destino, certifique-se de que existe uma regra de firewall de entrada para permitir o endereço IP e a porta do intervalo de sub-redes do PSC. |
Configuração incorreta da associação do serviço no projeto de destino | Valide a associação de serviço no projeto de destino. |
Estado incorreto da associação do ponto final no Apigee | Valide o anexo do ponto final no Apigee. |
Incompatibilidade na porta configurada em TargetEndpoint e no ILB | Certifique-se de que o TargetEndpoint no proxy de API está a usar a mesma porta exposta pelo equilibrador de carga interno (ILB) no projeto de destino. |
Causa: regiões diferentes entre a associação de serviço e a instância do Apigee
Diagnóstico
-
Verifique a região da instância do Apigee através de um dos seguintes métodos:
- Usando a IU do Apigee clássico:
- Inicie sessão na IU do Apigee.
- Clique em Admin > Instâncias.
- Clique numa instância.
- Verifique a Localização de alojamento de tempo de execução no painel Detalhes da instância.
- Usando a IU do Apigee na Google Cloud consola:
-
Na Google Cloud consola, aceda à página Apigee Instances.
- Clique numa instância.
- Verifique a Localização de alojamento de tempo de execução no painel Detalhes da instância.
-
- Usando uma
chamada API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances"
Em que ORG_NAME é o nome da organização. Por exemplo,
example-apigee-support
.É devolvido algo semelhante ao seguinte. A localização de alojamento em tempo de execução é o valor apresentado para
location
abaixo. Por exemplo,asia-northeast1
."instances": [ { "name": "asia-northeast1", "location": "asia-northeast1", "host": "10.117.0.2", "port": "443", "createdAt": "1628150049760", "lastModifiedAt": "1682139265367", "diskEncryptionKeyName": "projects/apigee-x-support-apac-05/locations/asia-northeast1/keyRings/phanim-disk-key-1/cryptoKeys/phanim-disk-key-ring-1", "state": "ACTIVE", "peeringCidrRange": "SLASH_20", "runtimeVersion": "1-9-0-apigee-25", "consumerAcceptList": [ "example-apigee-support", "example-neg-project" ], "serviceAttachment": "projects/xb363132eb41cb643p-tp/regions/asia-northeast1/serviceAttachments/apigee-asia-northeast1-yp9o" }
- Usando a IU do Apigee clássico:
-
Verifique a região de associação de pontos finais através de uma
chamada API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Onde:
- ORG_NAME é o nome da organização.
Por exemplo,
example-apigee-support
. - ENDPOINT_ATTACHMENT_NAME é o nome do anexo do ponto final. Por exemplo,
example-ea
.
É devolvido algo semelhante ao seguinte. A região de associação do ponto final é o valor apresentado para
location
abaixo. Por exemplo,asia-northeast1
.{ "name": "organizations/example-apigee-support/endpointAttachments/example-ea", "location": "asia-northeast1", "host": "7.0.4.2", "state": "ACTIVE", "connectionState": "ACCEPTED", "serviceAttachment": "projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend" }
- ORG_NAME é o nome da organização.
Por exemplo,
-
Verifique a região do Anexo de serviço através da Cloud Console:
-
Na Google Cloud consola, aceda à página Private Service Connect .
- Verifique a coluna Região para ver a localização.
-
Resolução
Certifique-se de que as regiões da instância do Apigee, da associação de pontos finais e da associação de serviços são as mesmas. Por exemplo,
asia-northeast1
.
Conforme descrito nas
Limitações,
o acesso global não é suportado. Isto significa que os anexos de serviços e os anexos de pontos finais têm de estar na mesma região. Por exemplo, se a sua instância do Apigee estiver na região us-west1
, não pode associar serviços à mesma que estejam em us-east2
ou noutra região.
Se as regiões forem diferentes, vai ver problemas de conetividade entre o Apigee e o serviço de destino.
Causa: regra de firewall de entrada em falta para a sub-rede do PSC no projeto de destino
Diagnóstico
Verifique se existe uma regra de firewall no projeto de destino que permita que o endereço IP do intervalo da sub-rede do PSC se ligue ao serviço de destino:
-
Na Google Cloud consola, aceda à página Firewall.
-
No painel Regras de firewall de VPC, verifique se existe uma regra semelhante ao exemplo seguinte:
- Direção: entrada
- Ação na correspondência: permitir
- Filtro de origem: intervalos de IPv4/IPv6
- Intervalos de IP: intervalo de endereços IP da sub-rede do PSC
(
ipCidrRange
) que pode obter com o seguinte comando gcloud para descrever a sub-rede do PSC:gcloud compute networks subnets describe PSC_SUBNET_NAME --region=REGION
Onde:
-
PSC_SUBNET_NAME é o nome da sub-rede do PCS.
Por exemplo,
pscsub
. -
REGION é a localização. Por exemplo,
asia-northeast1
.
É devolvido algo semelhante ao seguinte:
creationTimestamp: '2023-04-19T03:33:29.371-07:00' fingerprint: 1JPKY66teTg= gatewayAddress: 10.10.0.1 id: '5645967773396008342' ipCidrRange: 10.10.0.0/24 kind: compute#subnetwork name: pscsub network: https://www.googleapis.com/compute/v1/projects/target-project/global/networks/default privateIpGoogleAccess: false privateIpv6GoogleAccess: DISABLE_GOOGLE_ACCESS purpose: PRIVATE_SERVICE_CONNECT ....
-
PSC_SUBNET_NAME é o nome da sub-rede do PCS.
Por exemplo,
- Protocolos e portas: estes devem ser indicados de acordo com a configuração do serviço de destino.
Por exemplo:

Resolução
Se a regra de firewall não estiver implementada, crie uma sub-rede do PSC, conforme descrito no Crie uma associação de serviço, passo 2.
Causa: configuração incorreta da associação de serviço no projeto de destino
Diagnóstico
Verifique a região da associação de serviços através de um dos seguintes métodos:
- Usando a Cloud Console:
-
Na Google Cloud consola, aceda à página Private Service Connect .
- Clique em Serviços publicados.
- Clique num serviço.
- Verifique a linha Região para a localização.
-
- Usar um
gcloud command
:gcloud compute service-attachments describe SERVICE_ATTACHMENT --region=REGION
Onde:
-
SERVICE_ATTACHMENT é o nome da associação de serviço.
Por exemplo,
gkebackend
. -
REGION é a localização. Por exemplo,
asia-northeast1
.
É devolvido algo semelhante ao seguinte:
connectedEndpoints: - endpoint: https://www.googleapis.com/compute/v1/projects/xb363132eb41cb643p-tp/regions/asia-northeast1/forwardingRules/example-ea pscConnectionId: '6816512648152066' status: ACCEPTED connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2023-04-19T05:09:09.941-07:00' description: '' enableProxyProtocol: false fingerprint: 0BZDAZ3zDCs= id: '4503680255626733322' kind: compute#serviceAttachment name: gkebackend natSubnets: - https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/subnetworks/pscsub pscServiceAttachmentId: high: '21570167574103266' low: '4503680255626733322' region: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1 selfLink: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend targetService: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/forwardingRules/k8s2-tcp-b65prv8v-default-ilb-svc-tv2s6klz
-
SERVICE_ATTACHMENT é o nome da associação de serviço.
Por exemplo,
Resolução
-
Certifique-se de que o valor
connectedEndpoints.endpoint
faz referência ao projeto de inquilino do Apigee e certifique-se de que o respetivo estado éACCEPTED
. Pode encontrar o projeto de inquilino através da API Apigee Organizations:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME"
Em que ORG_NAME é o nome da organização. Por exemplo,
example-apigee-support
.É devolvido algo semelhante ao seguinte. O ID está num campo denominado
apigeeProjectId
. Por exemplo,xb363132eb41cb643p-tp
.{ "name": "example-apigee-support", "createdAt": "1628148440954", "lastModifiedAt": "1650563608527", "environments": [ "dev" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "analyticsRegion": "asia-northeast1", "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "CERTIFICATE_NUMBER", "runtimeDatabaseEncryptionKeyName": "projects/example-apigee-support/locations/asia-northeast1/keyRings/phanim-key-ring-1/cryptoKeys/phanim-app-key-1", "projectId": "example-apigee-support", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} }, "apigeeProjectId": "xb363132eb41cb643p-tp" }
-
Certifique-se de que a associação de serviços tem conetividade com a
associação de pontos finais, conforme descrito em
Padrões de rede de saída, verifique e faça a gestão da conetividade da associação.
Na IU do passo 1 , certifique-se de que:
-
A linha Sub-redes faz referência à sub-rede do PSC. Por exemplo,
pscsub
. - A linha Destino faz referência ao equilibrador de carga interno correto para os back-ends de destino.
-
A linha Sub-redes faz referência à sub-rede do PSC. Por exemplo,
Causa: estado incorreto da associação do ponto final no Apigee
Diagnóstico
Veja a associação do ponto final no Apigee através de uma chamada API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Onde:
-
ORG_NAME é o nome da organização. Por exemplo,
example-apigee-support
. -
ENDPOINT_ATTACHMENT_NAME é o nome do anexo do ponto final. Por exemplo,
example-ea
.
É devolvido algo semelhante ao seguinte:
{ "name": "organizations/example-apigee-support/endpointAttachments/example-ea", "location": "asia-northeast1", "host": "7.0.4.2", "state": "ACTIVE", "connectionState": "ACCEPTED", "serviceAttachment": "projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend" }
Resolução
Certifique-se do seguinte:
state
corresponde aACTIVE
connectionState
corresponde aACCEPTED
-
serviceAttachment
refere-se ao projeto de destino correto e ao nome do anexo de serviço
Causa: incompatibilidade na porta configurada no TargetEndpoint e no ILB
Diagnóstico
- No projeto de destino, encontre a porta que a regra de encaminhamento está a
expor através da Cloud Console:
-
Na Google Cloud consola, aceda à página Private Service Connect .
- Clique em Serviços publicados.
- Clique num serviço. Conforme mostrado no exemplo seguinte, a porta 80 está exposta.
-
Resolução
Certifique-se de que a porta 80 é a porta no TargetEndpoint
do proxy da API.
Para verificar esta situação, navegue para o proxy de API e valide o URL TargetEndpoint
:
- Usando a IU do Apigee clássica:
- Inicie sessão na IU do Apigee.
- Clique em Desenvolver > Proxies de API
- Clique num proxy.
- Clique em Desenvolver.
- Verifique o painel XML para o seguinte:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
- Usando a IU do Apigee na Google Cloud consola:
-
Na Google Cloud consola, aceda à página Apigee.
- Na área Proxy development, clique em API proxies.
- Clique num proxy.
- Clique em Desenvolver.
- Verifique o painel XML para o seguinte:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
-
Tem de recolher informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, recolha as seguintes informações de diagnóstico e, em seguida, contacte o apoio ao cliente da Google Cloud:
- Organização do Apigee
- O ambiente e o proxy de API estão a detetar o problema
- Sessão de depuração transferida (isto fornece todas as informações acima)
- Anexo do ponto final a ser usado
- Projeto de destino e anexo de serviço