Esta página aplica-se ao Apigee, mas não ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
Resumo dos passos
Este documento explica como instalar e configurar uma organização de avaliação do Apigee (ou organização de avaliação) a partir da linha de comandos. 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.
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: configure a rede de serviços: a rede de serviços automatiza a configuração da conetividade privada (através do VPC Network Peering) entre a sua rede e o Apigee.
- Passo 4: crie uma organização: uma organização do Apigee (por vezes, referida como uma organização) é 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 5: configure o encaminhamento: permita o acesso externo ou apenas o acesso interno à sua API.
- Passo 6: 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 Instalar 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 \ servicenetworking.googleapis.com compute.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, Service Networking, Cloud KMS e Compute Engine).
Passo 3: configure a rede de serviços
- Crie estas variáveis de ambiente:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
Onde:
RANGE_NAME
é o nome do intervalo de endereços IP que está a criar. Pode atribuir qualquer nome ao intervalo. Por exemplo:google-svcs
NETWORK_NAME
é o nome do recurso de rede no qual os endereços devem ser reservados. A Google cria uma rede predefinida (denominadadefault
) para cada novo projeto, para que a possa usar. No entanto, a Google não recomenda a utilização da rede predefinida para fins que não sejam testes.
- Crie um intervalo de IP com um comprimento CIDR de /22:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Em que
--addresses
permite especificar opcionalmente um ou mais IPs de endereço para o comprimento do prefixo de/22
. Por exemplo, para atribuir o bloco CIDR192.168.0.0/22
, especifique192.168.0.0
para o endereço e22
para o comprimento do prefixo. Consulte também Criar uma atribuição de IP.Se não fornecer o parâmetro
--addresses
, o gcloud seleciona um intervalo de endereços disponível para si.Em caso de êxito, o
gcloud
responde com o seguinte:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Depois de criar um intervalo de endereços IP, os endereços são associados ao projeto até os libertar.
- Crie um segundo intervalo de IP com um comprimento CIDR de /28. Este intervalo é usado pelo Apigee para fins de resolução de problemas e não pode ser personalizado nem alterado.
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Em que
--addresses
permite especificar opcionalmente um ou mais IPs de endereço para o comprimento do prefixo de/28
. Por exemplo, para atribuir o bloco CIDR192.168.0.0/28
, especifique192.168.0.0
para o endereço e28
para o comprimento do prefixo. Consulte também Criar uma atribuição de IP.Se não fornecer o parâmetro
--addresses
, o gcloud seleciona um intervalo de endereços disponível para si. - Associe os seus serviços à rede através do seguinte comando:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
Esta operação pode demorar alguns minutos a ser concluída. Em caso de êxito, o
gcloud
responde com o seguinte:Operation "operations/OPERATION_ID" finished successfully.
Em que OPERATION_ID é o UUID da LRO (operação de longa duração).
O Apigee cria uma ligação entre a sua rede e os serviços da Google; especificamente, o Apigee liga o seu projeto à API Service Networking através do intercâmbio de VPC. O Apigee também associa endereços IP ao seu projeto.
Passo 4: 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 o comando gcloud alpha apigee
organizations:
gcloud alpha apigee organizations provision \ --runtime-location=$RUNTIME_LOCATION \ --analytics-region=$ANALYTICS_REGION \ --authorized-network=$NETWORK_NAME \ --project=$PROJECT_ID
Em que
--authorized-network
é o nome da sua rede de peering personalizada. Por exemplo:default
. -
Quando executa o comando
provision
, a Google inicia um LRO para criar a organização de avaliação. Esta operação demora até 40 minutos a ser concluída. Durante esse período, ogcloud
apresenta o seguinte:Provisioning organization...
Quando a organização de avaliação e a respetiva instância de tempo de execução associada são criadas,
gcloud
responde com a seguinte mensagem:Provisioning organization...done.
-
Se executar o seguinte comando:
gcloud alpha apigee operations list --organization=$PROJECT_ID
deve ver que todos os UUIDs estão no estado
FINISHED
. Por exemplo:UUID ORGANIZATION STATE 00bab06f-c60c-41a5-4242-7SAMPLE7f my-org FINISHED 429790a7-3151-4642-4343-7SAMPLE7f my-org FINISHED d00a92a9-9b83-4642-4343-7SAMPLE7f my-org FINISHED f48a00ff-7daa-4c4a-4444-7SAMPLE7f my-org FINISHED
Passo 5: configure o encaminhamento
Decida se quer permitir o acesso externo ou apenas o acesso interno:
Tipo de acesso | Descrição do processo de configuração e implementação |
---|---|
Internos |
Permita apenas o acesso interno aos seus proxies de API. Tem de criar uma nova VM na rede e estabelecer ligação à mesma. A partir da nova VM, pode enviar um pedido a um proxy de API do Apigee. |
Externo |
Permita o acesso externo aos seus proxies de API. 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 para um único ponto de ligação, denominado anexo 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
Não existem tarefas a realizar para este passo se estiver a usar a linha de comandos para configurar um proxy de API apenas para acesso interno. Pode avançar para o Passo 6: chame o proxy da API de exemplo, onde vai enviar um pedido ao seu proxy da API.
Encaminhamento externo
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.
Os passos de configuração externos são:
Passo 5a: crie um grupo de pontos finais de rede (NEG)
Passo 5b: configure o balanceador de carga
Cada um destes passos é descrito nas secções seguintes.
Passo 5a: crie um grupo de pontos finais de rede (NEG)
- Obtenha o anexo de serviço para a sua 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": "eval-instance", "location": "us-west1", "host": "10.72.100.2", "port": "443", "createdAt": "1657832463500", "lastModifiedAt": "1657833920670", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-8-0-apigee-18", "ipRange": "10.74.100.0/28,10.74.100.16/28", "consumerAcceptList": [ "apigee-eval-test" ], "serviceAttachment": "projects/s8da1b0111eb33765-tp/regions/us-west1/serviceAttachments/apigee-us-west1-icza" } ] }
Crie um grupo de pontos finais da rede (NEG) do Private Service Connect que aponte para a associação de serviços 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:
- 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
- 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 5b: configure o equilibrador de carga
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.
- 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 NEG ao serviço de back-end:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=$RUNTIME_LOCATION \ --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.
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 um certificado SSL para o proxy HTTPS de destino.
Para criar um balanceador de carga HTTPS, 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.
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 que vai usar para o balanceador de carga externo.
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 artigo Usar 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.
-
O aprovisionamento do certificado pode demorar até uma hora. Para verificar o estado do aprovisionamento, execute este comando:
gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"
- 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 \ --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.
Passo 6: 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 com o encaminhamento interno
Se escolheu a opção de encaminhamento interno no passo 5, siga os passos em Chamar um proxy de API com acesso apenas interno.
Chame o proxy com o encaminhamento externo
Se escolheu a 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)" --global --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)" --global --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.