Esta página aplica-se ao Apigee, mas não ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Este documento explica como chamar proxies de API a partir de clientes executados na sua rede interna. Estes passos são úteis para testar a configuração se o Apigee estiver aprovisionado para usar o encaminhamento de rede interno. Pode seguir os passos neste documento se o Apigee tiver sido aprovisionado com qualquer uma destas configurações de encaminhamento de rede:
Opção de aprovisionamento | Opção de rede | Passos de aprovisionamento |
---|---|---|
Subscrição paga | Com o intercâmbio de VPCs | Encaminhamento interno (VPC) Encaminhamento interno (PSC) |
Pay-as-you-go | Com o intercâmbio de VPCs | Encaminhamento interno (VPC) Encaminhamento interno (PSC) |
Avaliação | Com o intercâmbio de VPCs | Configure o encaminhamento (interno) |
Avaliação | Sem intercâmbio de VPC | Encaminhamento interno (PSC) |
Consulte também as opções de rede.
Antes de começar
Siga os seguintes passos de configuração preliminares:
- Se ainda não o fez, inicialize o Cloud SDK, conforme descrito em Inicializar a CLI gcloud, ou certifique-se de que o projeto do Google Cloud que criou em Pré-requisitos é o projeto predefinido para
gcloud
. -
Defina as seguintes variáveis de ambiente local:
export PROJECT_ID=YOUR_PROJECT_ID
export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
export SUBNET=NETWORK_NAME
export INSTANCE_NAME=INSTANCE_NAME
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
Onde:
PROJECT_ID
é o ID do projeto do Google Cloud que criou como parte dos Pré-requisitos.AUTH
define o cabeçalhoAuthentication
com um token de portador. Vai usar este cabeçalho quando chamar as APIs Apigee. Tenha em atenção que o token expira após um período e, quando isso acontece, pode simplesmente regenerá-lo através do mesmo comando. Para mais informações, consulte a página de referência do comando print-access-token.SUBNET
é a sub-rede especificada durante o aprovisionamento. Por exemplo:default
.INSTANCE_NAME
: o nome da nova instância. Por exemplo,my-runtime-instance
. O nome tem de começar por uma letra minúscula, pode ter até 32 carateres e só pode incluir letras minúsculas, números e hífenes. Não pode começar nem terminar com um hífen e tem de ter, pelo menos, dois carateres.PROJECT_NUMBER
é o número do projeto na nuvem que criou como parte dos pré-requisitos. Este exemplo emite um comandogcloud
para obter o número do projeto.
- Obtenha o valor da propriedade
location
da sua instância do Apigee. Este valor é a região onde a instância está localizada, comous-west1
:curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances
- Escolha uma zona
na região da instância e coloque o nome da zona numa variável.
A zona tem de estar dentro da instância. Por exemplo:
export VM_ZONE="us-west1-b"
Se precisar de ajuda para identificar uma zona na região da instância, pode usar este comando
gcloud
para devolver um nome de zona para a região de tempo de execução configurada. Por exemplo:VM_ZONE=$(gcloud compute zones list | grep "us-west1" | head -n 1 | awk '{print $1}')
Crie uma VM e chame o proxy da API
Em seguida, crie uma nova VM na sua rede VPC com o comando gcloud beta compute. A VM funciona como uma ponte que lhe permite enviar pedidos para o IP do balanceador de carga interno. Depois de configurar a VM, pode chamar um proxy de API implementado:
-
O exemplo seguinte cria uma nova VM com algumas opções comuns e usa variáveis de ambiente que definiu anteriormente como entradas.
gcloud beta compute --project=$PROJECT_ID \ instances create $INSTANCE_NAME \ --zone=$VM_ZONE \ --machine-type=e2-micro \ --subnet=$SUBNET \ --network-tier=PREMIUM \ --no-restart-on-failure \ --maintenance-policy=TERMINATE \ --preemptible \ --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=http-server,https-server \ --image=debian-12-bookworm-v20240701 \ --image-project=debian-cloud \ --boot-disk-size=10GB \ --boot-disk-type=pd-standard \ --boot-disk-device-name=$INSTANCE_NAME \ --no-shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring \ --reservation-affinity=any
-
Abra uma ligação segura à nova VM que acabou de criar.
gcloud compute ssh $INSTANCE_NAME --zone=$VM_ZONE --project=$PROJECT_ID
- Na shell da VM, instale o utilitário
jq
. É usado nos passos seguintes:sudo apt-get update -y
sudo apt-get install -y jq
- Na shell da VM, crie as seguintes variáveis de ambiente para facilitar a cópia/colagem
do pedido de proxy da API:
export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
export PROJECT_ID=YOUR_PROJECT_ID
export ENV_GROUP_HOSTNAME=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups -s | jq -r '.environmentGroups[0].hostnames[0]')
- Certifique-se de que as variáveis estão definidas corretamente:
echo $AUTH
echo $PROJECT_ID
echo $ENV_GROUP_HOSTNAME
- Chamar um proxy de API. Selecione uma opção abaixo que corresponda à forma como configurou o encaminhamento
durante o aprovisionamento do Apigee.
Opções para instalações que usam o peering de VPC
- (Opção de TLS n.º 1) Se configurou um equilibrador de carga interno (ILB) no seu projeto,
conforme explicado em Encaminhamento interno (VPC),
chame o proxy através do IP desse ILB.
Esta opção usa certificados de AC que estão sob o seu controlo e que foram criados quando o balanceador de carga interno foi criado:
- Obtenha o IP do ILB no seu projeto, conforme explicado em Configure o balanceamento de carga HTTP(S) interno com back-ends de grupos de instâncias de VMs.
- Chame um proxy de API:
curl -H "Host: $ENV_GROUP_HOSTNAME" \ https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
- (Opção de TLS n.º 2) Use o nome de domínio totalmente qualificado predefinido que é resolvido para o balanceador de carga interno no projeto do Apigee. Com esta opção, o TLS é usado através de certificados autoassinados do Apigee criados internamente. Não tem controlo sobre estes certificados.
- Obtenha o IP do balanceador de carga interno no projeto do Apigee:
export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
- Extraia o certificado da CA que foi criado durante a criação da organização com o seguinte comando:
curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID | jq -r .caCertificate | base64 -d > cacert.crt
- Envie o pedido para um proxy de API implementado, em que
example.$PROJECT_ID.apigee.internal
é o nome de domínio totalmente qualificado interno predefinido que é resolvido para o equilibrador de carga interno.curl -is -H "Host: $ENV_GROUP_HOSTNAME" \ https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \ --cacert cacert.crt \ --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
- Obtenha o IP do balanceador de carga interno no projeto do Apigee:
- (Opção não TLS) Se tiver problemas de validação de certificados SSL/TLS, pode usar a flag
-k
(ou--insecure
) com o comandocurl
. Isto ignora a validação de certificados, o que permite que a ligação continue. Tenha em atenção que, embora a comunicação permaneça encriptada, esta opção tem implicações de segurança, uma vez que a autenticidade do servidor não é verificada.- Obtenha o IP do balanceador de carga interno no projeto do Apigee:
export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
- Chame um proxy de API:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://$INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
- Obtenha o IP do balanceador de carga interno no projeto do Apigee:
- (Opção de ponto final de serviço) Se aprovisionou uma organização de avaliação ou paga com o PSC e escolheu a opção de encaminhamento de ponto final de serviço:
- Obtenha o IP do ponto final do serviço. Se precisar de procurar o IP do ponto final, consulte List endpoints (Listar pontos finais).
- Chame um proxy de API:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH
Por exemplo:
curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k
Opções para instalações que não usam a interligação de VPCs
- (Opção de ponto final de serviço) Se aprovisionou uma organização de avaliação ou paga com o PSC e escolheu a opção de encaminhamento de ponto final de serviço:
- Obtenha o IP do ponto final do serviço. Se precisar de procurar o IP do ponto final, consulte Listar pontos finais.
- Chame um proxy de API:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH
Por exemplo:
curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k
Se encontrar erros durante esta parte do processo, certifique-se de que todas as variáveis de ambiente que criou e usou nos comandos têm valores válidos. Veja também Resolução de problemas.
Passo seguinte
Experimente criar um proxy que pode implementar ou fazer uma visita guiada aos tutoriais do Apigee que lhe apresentam as funcionalidades do Apigee, como proteger contra picos de tráfego súbitos ou ter uma vista detalhada do fluxo de pedidos/respostas.
(Avançado) Se planeia transformar isto numa configuração de produção, pode configurar um perímetro de segurança em torno do novo cluster e dos serviços Google Cloud relacionados. Isto é possível com os VPC Service Controls.
- (Opção de TLS n.º 1) Se configurou um equilibrador de carga interno (ILB) no seu projeto,
conforme explicado em Encaminhamento interno (VPC),
chame o proxy através do IP desse ILB.
Esta opção usa certificados de AC que estão sob o seu controlo e que foram criados quando o balanceador de carga interno foi criado: