Esta página aplica-se ao Apigee, mas não ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Este documento explica como instalar e configurar uma organização de avaliação do Apigee a partir da linha de comandos sem interligação de VPCs. As organizações de avaliação expiram após 60 dias e podem ter outras limitações. Consulte também Comparar organizações de avaliação e pagas.
Limitações
A opção de instalação de peering não VPC descrita neste documento tem algumas limitações:
- Os VPC Service Controls não são suportados.
Para ver uma lista completa das funcionalidades e abordagens de rede suportadas e não suportadas para o peering não VPC, consulte o artigo Como escolher uma opção de rede.
Resumo dos passos
Os passos de aprovisionamento são os seguintes:
- Passo 1: defina as variáveis de ambiente:
Configure
gcloud
e defina as variáveis de ambiente. A CLI Google Cloud gere a autenticação, a configuração local, o fluxo de trabalho do programador e as interações com as APIs Google Cloud. - Passo 2: ative as APIs: o Apigee requer que ative várias APIs Google Cloud.
- Passo 3: crie uma organização: uma organização do Apigee (por vezes, denominada org) é o contentor de nível superior no Apigee. Inclui todos os seus ambientes e grupos de ambientes, utilizadores, proxies de API e recursos relacionados.
- Passo 4: configure o encaminhamento: permita o acesso externo ou apenas o acesso interno à sua API.
- Passo 5: chame o proxy da API de exemplo: teste o aprovisionamento implementando e chamando um proxy da API.
Passo 1: defina variáveis de ambiente
Configure o gcloud
e defina variáveis de ambiente para utilização em passos posteriores:
- Certifique-se de que cumpriu os requisitos indicados em Pré-requisitos.
- Tem de ter a CLI gcloud instalada. Se precisar de a instalar, consulte o artigo Instale a CLI gcloud.
- Inicialize a CLI gcloud, conforme descrito em Inicializar a CLI gcloud ou, se a CLI já estiver inicializada, certifique-se de que o projeto do Google Cloud que criou em Pré-requisitos é o projeto predefinido para o gcloud.
- Defina as seguintes variáveis de ambiente:
AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
Onde:
- AUTH define o cabeçalho
Authentication
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. - PROJECT_ID é o ID do projeto do Google Cloud que criou como parte dos Pré-requisitos.
RUNTIME_LOCATION é a localização física onde a instância do Apigee está localizada. Para ver uma lista de localizações de tempo de execução disponíveis, consulte Localizações do Apigee.
-
ANALYTICS_REGION é a localização física na qual os dados de estatísticas do Apigee serão armazenados. Para uma lista das regiões do Apigee API Analytics disponíveis, consulte as localizações do Apigee.
RUNTIME_LOCATION e ANALYTICS_REGION podem ser a mesma região, mas não têm de ser. No entanto, pode haver uma vantagem em termos de desempenho se forem iguais.
- AUTH define o cabeçalho
- (Opcional) Verifique o seu trabalho repetindo os valores que acabou de definir. Tenha em atenção que, quando quiser usar uma variável nos seus comandos, preceda o nome da variável com um cifrão ($).
echo $AUTH
echo $PROJECT_ID
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
As respostas aos seus comandos
echo
devem ter um aspeto semelhante ao seguinte:Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_ 1CxN my-cloud-project us-west1 us-west1
Passo 2: ative as APIs
-
O Apigee requer que ative várias APIs Google Cloud. Ative-as executando o comando
services enable
:gcloud services enable apigee.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(Opcional) Para verificar o seu trabalho, use o comando
services list
para mostrar todas as APIs ativadas:gcloud services list
A resposta mostra todos os serviços ativados, incluindo as APIs que acabou de ativar (Apigee, Cloud KMS e Compute Engine).
Passo 3: crie uma organização
Uma organização é o contentor de nível superior no Apigee. Contém todos os seus proxies de API e recursos relacionados. Para obter detalhes, consulte o artigo Compreender as organizações.
- Crie uma nova organização de avaliação com a API provisionOrganization:
curl "https://apigee.googleapis.com/v1/projects/$PROJECT_ID:provisionOrganization" \ -H "$AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeLocation":"'"$RUNTIME_LOCATION"'", "disableVpcPeering":"true", }'
Onde:
-d
define o payload de dados para o pedido. Este payload tem de incluir o seguinte:ANALYTICS_REGION
: especifica a localização física onde os seus dados de estatísticas serão armazenados.RUNTIME_LOCATION
: é a localização física onde a instância do Apigee está localizada.disableVpcPeering
: neste fluxo de aprovisionamento, não estamos a usar a interligação de VPCs, pelo que esta flag tem de estar definida comotrue
. Predefinição:false
-
O Apigee inicia um LRO para criar a organização de avaliação. Esta operação demora até 40 minutos a ser concluída.
- Para verificar o estado do seu pedido de criação, pode enviar um pedido
GET
para a API List organizations do Apigee, conforme mostra o exemplo seguinte:curl -H "$AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Se vir esta resposta, significa que a criação da organização ainda não foi concluída:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }
Se for bem-sucedido, o objeto de resposta indica
"state": "ACTIVE"
e pode avançar para o passo seguinte.
Passo 4: configure o encaminhamento
Neste passo, configura a forma como as aplicações cliente comunicam com o Apigee. O tráfego do cliente para o Apigee também é denominado tráfego "northbound". As opções de configuração de saída incluem o seguinte:
Tipo de acesso | Descrição do processo de configuração e implementação |
---|---|
Interno com PSC |
Permita apenas o acesso interno aos seus proxies de API a partir de qualquer um dos seus projetos do Google Cloud através do Private Service Connect (PSC). O PSC permite uma ligação privada entre um produtor de serviços (Apigee) e um consumidor de serviços (o projeto de VPC com intercâmbio e/ou um ou mais outros projetos do Google Cloud que controla). Com este método, os pedidos passam por um ponto final de serviço ou um balanceador de carga interno regional para um único ponto de ligação, denominado anexo de serviço. Esta configuração permite que os seus clientes internos enviem pedidos de proxy de API do Apigee a partir de qualquer máquina com ligação à rede. |
Externo com PSC |
Permita o acesso externo aos seus proxies de API através do Private Service Connect (PSC). Use o Private Service Connect (PSC) para ativar a ligação privada entre um produtor de serviços (Apigee) e um consumidor de serviços (o projeto de VPC com peering e/ou um ou mais projetos do Google Cloud que controla). Com este método, os pedidos passam por um balanceador de carga externo global ou um balanceador de carga externo regional para um único ponto de ligação, denominado ligação de serviço. Esta configuração permite-lhe enviar pedidos de proxy de API do Apigee a partir de qualquer máquina com ligação à rede. |
Cada uma destas abordagens de planeamento de trajeto é apresentada num separador nas instruções abaixo.
Encaminhamento interno (PSC)
Esta secção explica como permitir apenas o acesso interno aos seus proxies de API a partir de qualquer um dos seus projetos do Google Cloud através do Private Service Connect (PSC).
Tem duas opções para configurar o acesso interno com o PSC:
- Ponto final do serviço: os pedidos passam por um ponto final do serviço para um único ponto de anexação, denominado anexação do serviço.
- Balanceador de carga regional interno: os pedidos passam por um balanceador de carga HTTP(S) interno regional. Consulte também Balanceamento de carga global vs. regional.
Selecione o separador abaixo para a sua escolha de configuração e siga os passos:
Ponto final do serviço
Crie um ponto final de serviço do PSC para a associação de serviço
- Obtenha a associação do serviço da instância do Apigee:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Na saída de exemplo seguinte, o valor
serviceAttachment
é apresentado a negrito:{ "instances": [ { "name": "us-west1", "location": "us-west1", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1" } ] }
- Crie um ponto final de serviço do PSC que aponte para a associação do serviço que obteve do corpo da resposta da instância no passo anterior, conforme explicado em Crie um ponto final do Private Service Connect.
- Tome nota e memorize o endereço IP do ponto final do serviço. Vai precisar do endereço IP mais tarde quando
testar a configuração chamando um proxy de API. (Por exemplo:
10.138.0.2
)
O aprovisionamento do Apigee está concluído. Aceda a Implemente um proxy de exemplo.
LB regional interno
Passo 8a: configure variáveis de ambiente
As instruções nesta secção usam variáveis de ambiente para fazer referência a strings usadas repetidamente. Certifique-se de que definiu as variáveis em Definir variáveis de ambiente.
Além disso, defina as seguintes variáveis de ambiente:
NEG_NAME=YOUR_NEG_NAME"TARGET_SERVICE=YOUR_TARGET_SERVICE"
NETWORK_NAME=YOUR_NETWORK_NAME"
SUBNET_NAME=YOUR_SUBNET_NAME"
Onde:
- NEG_NAME: um nome para o grupo de pontos finais da rede.
- TARGET_SERVICE: o anexo de serviço ao qual quer estabelecer ligação. Por exemplo:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- NETWORK_NAME: (Opcional) Nome da rede na qual o NEG é criado. Se omitir este parâmetro, é usada a rede do projeto
default
. - SUBNET_NAME: nome da sub-rede usada para a conetividade privada ao produtor. O tamanho da sub-rede pode ser pequeno: o NEG do PSC só precisa de um IP da sub-rede. Para o Apigee, só é necessário um NEG do PSC por região. A sub-rede pode ser partilhada e usada por VMs ou outras entidades. Se não for especificada uma sub-rede, os pontos finais de rede podem pertencer a qualquer sub-rede na região onde o grupo de pontos finais de rede é criado.
Passo 8b: crie uma sub-rede apenas de proxy
gcloud compute networks subnets create testproxyonlysubnet \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \ --range=100.0.0.0/24 --project=$PROJECT_ID
Passo 8c: crie um grupo de pontos finais de rede (NEG)
- Obtenha a associação de serviço da instância que criou anteriormente:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Na saída de exemplo seguinte, o valor
serviceAttachment
é apresentado a negrito:{ "instances": [ { "name": "us-west1", "location": "us-west1", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
Crie um NEG do Private Service Connect que aponte para o anexo de serviço que obteve do corpo da resposta da instância no passo anterior.
gcloud compute network-endpoint-groups create $NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=$TARGET_SERVICE \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Passo 8d: configure o balanceador de carga interno regional
- Reserve um endereço IPv4 interno para o balanceador de carga.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --subnet=$SUBNET_NAME \ --region=$RUNTIME_LOCATION --project=$PROJECT_ID
Substitua ADDRESS_NAME por um nome para o recurso de endereço IP.
Execute este comando para ver o endereço IP reservado:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=RUNTIME_LOCATION --project=$PROJECT_ID
- Crie um serviço de back-end para o NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=$RUNTIME_REGION \ --project=$PROJECT_ID
- Adicione o NEG ao serviço de back-end.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Substitua o seguinte:
- BACKEND_SERVICE_NAME: o nome do serviço de back-end.
- NEG_NAME: o nome do grupo de pontos finais da rede.
-
Tem de ter um recurso de certificado SSL para usar no proxy de destino HTTPS.
Use este comando para criar um recurso de certificado SSL autogerido. Para criar um certificado SSL autogerido, precisa de um ficheiro de chave privada local e um ficheiro de certificado local. Se precisar de criar estes ficheiros, consulte o passo 1 de utilizar certificados SSL autogeridos.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --region=RUNTIME_LOCATION --project=$PROJECT_ID
Substitua o seguinte:
- CERTIFICATE: um nome para o certificado.
- LB_CERT: o caminho para o ficheiro de certificado no formato PEM do seu certificado autogerido.
- LB_PRIVATE_KEY: o caminho para o ficheiro de chave privada no formato PEM do seu certificado autogerido.
-
Crie um mapa de URLs para o balanceador de carga.
Um mapa de URLs tem de fazer referência a um serviço de back-end predefinido. Defina o serviço de back-end que acabou de criar como predefinição.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Substitua o seguinte:
- URL_MAP_NAME: um nome para o mapa de URLs.
- DEFAULT_BACKEND_SERVICE_NAME: o nome do serviço de back-end predefinido do balanceador de carga. A predefinição é usada quando nenhuma regra de anfitrião corresponde ao nome do anfitrião pedido.
-
Use o recurso de certificado SSL para criar um proxy HTTPS de destino.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE \ --region=$RUNTIME_LOCATION --project=$PROJECT_ID
Substitua o seguinte:
- PROXY_NAME: um nome para o proxy HTTPS de destino.
- URL_MAP_NAME: o nome do mapa de URLs.
- CERTIFICATE: o nome do recurso do certificado.
- Crie a regra de encaminhamento.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --target-https-proxy-region=$RUNTIME_REGION \ --region=$RUNTIME_REGION --project=$PROJECT_ID
Substitua o seguinte:
- FWD_RULE: um nome para a regra de encaminhamento.
- ADDRESS_NAME: o recurso de endereço IP que reservou para usar na regra de encaminhamento.
- PROXY_NAME: o nome do proxy HTTPS de destino.
Substitua BACKEND_SERVICE_NAME pelo nome do serviço de back-end.
O aprovisionamento do Apigee está concluído. Aceda a Implemente um proxy de exemplo.
Encaminhamento externo (PSC)
Esta secção descreve como configurar o encaminhamento externo através do Private Service Connect (PSC) para permitir a comunicação entre o Apigee e as VPCs que controla. Tem de o fazer antes de poder enviar um pedido de um cliente externo para a sua instância do tempo de execução do Apigee.
Passo 8b: crie um NEG e configure o balanceador de carga
Pode criar um balanceador de carga global ou regional.
LB externo global
Configure um balanceador de carga HTTP(S) externo global (esquema de balanceamento de carga definido como EXTERNAL_MANAGED
).
Embora o NEG do Private Service Connect seja regional, todos os outros componentes de equilíbrio de carga nesta configuração são globais.
- Certifique-se de que definiu as variáveis de ambiente em Definir variáveis de ambiente.
- Obtenha a associação de serviço da instância que criou anteriormente:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Na saída de exemplo seguinte, o valor
serviceAttachment
é apresentado a negrito:{ "instances": [ { "name": "us-west1", "location": "us-west1", "host": "10.82.192.2", "port": "443", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-7-0-20220228-190814", "ipRange": "10.82.192.0/22,10.82.196.0/28", "consumerAcceptList": [ "875609189304" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
Crie um NEG do Private Service Connect que aponte para a associação do serviço que obteve do corpo da resposta da instância no passo anterior.
gcloud compute network-endpoint-groups create $NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=$TARGET_SERVICE \ --region=$RUNTIME_LOCATION \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --project=$PROJECT_ID
Substitua o seguinte:
- NETWORK_NAME: (Opcional) Nome da rede na qual o NEG é criado. Se omitir este parâmetro, é usada a rede do projeto
default
. - SUBNET_NAME: nome da sub-rede usada para a conetividade privada ao produtor. O tamanho da sub-rede pode ser pequeno: o NEG do PSC só precisa de um IP da sub-rede. Para o Apigee, só é necessário um NEG do PSC por região. A sub-rede pode ser partilhada e usada por VMs ou outras entidades. Se não for especificada uma sub-rede, os pontos finais de rede podem pertencer a qualquer sub-rede na região onde o grupo de pontos finais de rede é criado.
- PROJECT_ID O projeto do Cloud que já está associado à sua organização do Apigee ou um projeto do Cloud incluído
no
consumerAcceptlist
quando a instância de runtime do Apigee foi criada.
- NETWORK_NAME: (Opcional) Nome da rede na qual o NEG é criado. Se omitir este parâmetro, é usada a rede do projeto
- Reserve um endereço IPv4 externo global para o balanceador de carga.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global --project=$PROJECT_ID
Substitua ADDRESS_NAME por um nome para o recurso de endereço IP.
Execute este comando para ver o endereço IP reservado:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
- Crie um serviço de back-end para o NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global --project=$PROJECT_ID
- Adicione o serviço de back-end ao NEG.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=$REGION \ --global --project=$PROJECT_ID
Substitua o seguinte:
- BACKEND_SERVICE_NAME: o nome do serviço de back-end.
- NEG_NAME: o nome do grupo de pontos finais da rede.
- REGION: a região do grupo de pontos finais da rede.
Crie um mapa de URLs para o balanceador de carga.
Um mapa de URLs tem de fazer referência a um serviço de back-end predefinido. Defina o serviço de back-end que acabou de criar como predefinição.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Substitua o seguinte:
- URL_MAP_NAME: um nome para o mapa de URLs.
- DEFAULT_BACKEND_SERVICE_NAME: o nome do serviço de back-end predefinido do balanceador de carga. A predefinição é usada quando nenhuma regra de anfitrião corresponde ao nome do anfitrião pedido.
Crie o proxy HTTPS de destino.
Tem de ter um recurso de certificado SSL para usar no proxy de destino HTTPS. Pode criar um recurso de certificado SSL através de um certificado SSL gerido pela Google ou de um certificado SSL autogerido. A utilização de certificados geridos pela Google é recomendada porque o Google Cloud obtém, gere e renova estes certificados automaticamente.
Para criar um certificado gerido pela Google, tem de ter um domínio.
Use este comando para criar um recurso de certificado SSL gerido pela Google:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_ID
Substitua o seguinte:
- CERTIFICATE: um nome para o certificado.
- DOMAIN: o nome do domínio do seu balanceador de carga.
Use este comando para criar um recurso de certificado SSL autogerido. Para criar um certificado SSL autogerido, precisa de um ficheiro de chave privada local e um ficheiro de certificado local. Se precisar de criar estes ficheiros, consulte o passo 1 da utilização de certificados SSL autogeridos.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_ID
Substitua o seguinte:
- CERTIFICATE: um nome para o certificado.
- LB_CERT: o caminho para o ficheiro de certificado no formato PEM do seu certificado autogerido.
- LB_PRIVATE_KEY: o caminho para o ficheiro de chave privada no formato PEM do seu certificado autogerido.
Use o recurso de certificado SSL para criar um proxy HTTPS de destino.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
Substitua o seguinte:
- PROXY_NAME: um nome para o proxy HTTPS de destino.
- URL_MAP_NAME: o nome do mapa de URLs.
- CERTIFICATE: o nome do recurso do certificado.
- Crie a regra de encaminhamento.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --global --project=$PROJECT_ID
Substitua o seguinte:
- FWD_RULE: um nome para a regra de encaminhamento.
- ADDRESS_NAME: o recurso de endereço IP que reservou para usar na regra de encaminhamento.
- PROXY_NAME: o nome do proxy HTTPS de destino.
Substitua BACKEND_SERVICE_NAME pelo nome do serviço de back-end.
O aprovisionamento do Apigee está concluído. Aceda a Implemente um proxy de exemplo.
LB externo regional
Configure um balanceador de carga HTTP(S) externo regional. Consulte também a vista geral do balanceador de carga HTTP(S) externo.
- Certifique-se de que definiu as variáveis em Definir variáveis de ambiente.
- Crie uma sub-rede só de proxy:
gcloud compute networks subnets create SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \ --region=$RUNTIME_LOCATION --network=NETWORK_NAME \ --range=100.0.0.0/24 --project=$PROJECT_ID
- Substitua SUBNET_NAME pelo nome da sub-rede.
- (Opcional) Substitua NETWORK_NAME Nome da rede na qual a sub-rede é criada. Se omitir este parâmetro, é usada a rede do projeto predefinida.
- Obtenha a associação de serviço da instância que criou anteriormente:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Na saída de exemplo seguinte, o valor
serviceAttachment
é apresentado a negrito:{ "instances": [ { "name": "us-west1", "location": "us-west1", "host": "10.82.192.2", "port": "443", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-7-0-20220228-190814", "ipRange": "10.82.192.0/22,10.82.196.0/28", "consumerAcceptList": [ "875609189304" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
- Crie um grupo de pontos finais de rede.
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=$RUNTIME_LOCATION --project=$PROJECT_ID
Substitua o seguinte:
- NEG_NAME: o nome do grupo de pontos finais da rede.
- TARGET_SERVICE: o nome da associação de serviço à qual quer estabelecer ligação.
Por exemplo:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- Crie um serviço de back-end para o NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
- Adicione o serviço de back-end ao NEG.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Substitua o seguinte:
- BACKEND_SERVICE_NAME: o nome do serviço de back-end.
- NEG_NAME: o nome do grupo de pontos finais da rede.
Crie um mapa de URLs para o balanceador de carga.
Um mapa de URLs tem de fazer referência a um serviço de back-end predefinido. Defina o serviço de back-end que acabou de criar como predefinição.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Substitua o seguinte:
- URL_MAP_NAME: um nome para o mapa de URLs.
- DEFAULT_BACKEND_SERVICE_NAME: o nome do serviço de back-end predefinido do balanceador de carga. A predefinição é usada quando nenhuma regra de anfitrião corresponde ao nome do anfitrião pedido.
Crie o proxy HTTPS de destino.
Tem de ter um recurso de certificado SSL para usar no proxy de destino HTTPS.
Use este comando para criar um recurso de certificado SSL autogerido. Para criar um certificado SSL autogerido, precisa de um ficheiro de chave privada local e um ficheiro de certificado local. Se precisar de criar estes ficheiros, consulte o passo 1 da utilização de certificados SSL autogeridos.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Substitua o seguinte:
- CERTIFICATE: um nome para o certificado.
- LB_CERT: o caminho para o ficheiro de certificado no formato PEM do seu certificado autogerido.
- LB_PRIVATE_KEY: o caminho para o ficheiro de chave privada no formato PEM do seu certificado autogerido.
- Adicione o domínio ao grupo de ambientes do Apigee que foi criado para si. O nome
do grupo de ambientes é
eval-group
:curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group" \ -H "$AUTH" \ -X PATCH \ -H "Content-Type:application/json" \ -d '{ "hostnames":["'"DOMAIN"'"] }'
- Verifique o estado da operação do grupo de ambientes:
curl -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
-
Use o recurso de certificado SSL para criar um proxy HTTPS de destino.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
Substitua o seguinte:
- PROXY_NAME: um nome para o proxy HTTPS de destino.
- URL_MAP_NAME: o nome do mapa de URLs.
- CERTIFICATE: o nome do recurso do certificado.
- Reserve um endereço externo regional para o balanceador de carga. Tenha em atenção que o nível da rede tem de
estar definido como
STANDARD
.gcloud compute addresses create ADDRESS_NAME \ --region=$RUNTIME_LOCATION --network-tier=STANDARD \ --project=$PROJECT_ID
Substitua ADDRESS_NAME por um nome para o recurso de endereço IP.
Execute este comando para ver o endereço IP reservado:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
- Crie a regra de encaminhamento.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 --region=$RUNTIME_LOCATION \ --target-https-proxy-region=$RUNTIME_LOCATION --project=$PROJECT_ID
Substitua o seguinte:
- FWD_RULE: um nome para a regra de encaminhamento.
- ADDRESS_NAME: o recurso de endereço IP que reservou para usar na regra de encaminhamento.
- PROXY_NAME: o nome do proxy HTTPS de destino.
Substitua BACKEND_SERVICE_NAME pelo nome do serviço de back-end.
O aprovisionamento do Apigee está concluído. Aceda a Chame o proxy da API de exemplo.
Passo 5: chame o proxy da API de exemplo
Foi criado e implementado um proxy de API denominado hello-world
para si durante o aprovisionamento. Neste passo, vai testar a nova organização de avaliação chamando o proxy.
Chame o proxy de API com encaminhamento interno
Se escolheu uma encaminhamento interno com uma opção de ponto final do serviço no passo 5, siga os passos em Chamar um proxy de API com acesso apenas interno.
Chame o proxy de API com encaminhamento externo
Se escolheu uma opção de encaminhamento externo no passo 5, siga os passos desta secção.
- Configure uma entrada DNS para o seu domínio. Seguem-se duas formas de realizar esta tarefa:
- Na entidade de registo, crie um registo A que aponte para o seu domínio. Por exemplo, se o seu domínio for
sales.example.com
e o IP for 10.23.0.2, então direcione o registo parasales.example.com
para o endereço10.23.0.2
.Execute este comando para ver o endereço IP reservado:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
- Use o Cloud DNS da Google para mapear um URL para um endereço IP.
- Na entidade de registo, crie um registo A que aponte para o seu domínio. Por exemplo, se o seu domínio for
- Confirme se o proxy
hello-world
está implementado:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
- Chame o proxy da API:
Envie um pedido para o proxy de API a partir de qualquer máquina com ligação à rede executando o seguinte comando:
curl -i -H "Host: DOMAIN" \ https://DOMAIN/hello-world
Onde DOMAIN é o domínio que colocou no certificado e adicionou ao grupo de ambientes, conforme abordado no passo 5: configure o encaminhamento. Se necessário, pode usar esta API para obter o valor
DOMAIN
do grupo de ambientes:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"
Após o êxito, o proxy da API de exemplo devolve a resposta:
Hello, Guest!
Sugestões de resolução de problemas:
Se receber um erro de handshake, verifique o estado do certificado SSL. Para obter informações sobre a resolução de problemas de certificados autogeridos e geridos pela Google, consulte o artigo Resolva problemas de certificados SSL.
Certifique-se de que o seu domínio registado tem um registo A que aponta para o endereço IP do endereço IPv4 externo global criado no passo 5. Execute este comando para ver o endereço IP reservado:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
Se não conseguir resolver a configuração do domínio, experimente chamar o proxy com este comando:
curl -H Host:DOMAIN --resolve \ DOMAIN:443:EXTERNAL_IP_ADDRESS \ https://DOMAIN:443/hello-world -k
Seguinte: para saber mais sobre a criação e a implementação de proxies de API, consulte o artigo Crie a sua primeira vista geral do proxy de API.