Esta página se aplica à Apigee, mas não à Apigee híbrida.
Confira a documentação da Apigee Edge.
Resumo das etapas
Neste documento, explicamos como instalar e configurar uma organização (ou organização de avaliação) da Apigee na linha de comando. As organizações de avaliação expiram após 60 dias e podem ter outras limitações. Consulte também Como comparar organizações pagas e de avaliação.
As etapas de provisionamento são as seguintes:
- Etapa 1: definir as variáveis de ambiente:
configure o
gcloud
e defina as variáveis de ambiente. A Google Cloud CLI gerencia a autenticação, a configuração local, o fluxo de trabalho do desenvolvedor e as interações com as APIs do Google Cloud. - Etapa 2: ativar APIs: a Apigee requer a ativação de várias APIs do Google Cloud.
- Etapa 4: configurar a rede de serviços: a rede de serviços automatiza a configuração de conectividade particular (usando peering de rede VPC) entre sua rede e a Apigee.
- Etapa 5: criar uma organização: uma organização da Apigee (às vezes chamada de organização) é o contêiner de nível superior da Apigee. Ela inclui todos os ambientes e grupos de ambientes, usuários, proxies de API e recursos relacionados.
- Etapa 8: configurar o roteamento: permita o acesso externo ou apenas acesso interno à API.
- Etapa 6: chamar o proxy de API de exemplo: teste o provisionamento implantando e chamando um proxy de API.
Etapa 1: definir variáveis de ambiente
Configure gcloud
e defina variáveis de ambiente para uso em etapas posteriores:
- Verifique se você atende aos requisitos de configuração listados em Pré-requisitos.
- A CLI gcloud precisa estar instalada. Se precisar instalá-lo, consulte Como instalar a CLI gcloud.
- Inicialize a CLI gcloud, conforme descrito em Como inicializar a CLI gcloud, ou, se a CLI já estiver inicializada, verifique se o projeto do Google Cloud que você criou em Pré-requisitos é o projeto padrão 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"
Em que:
- AUTH define o cabeçalho
Authentication
com um token do portador. Você usará esse cabeçalho ao chamar as APIs da Apigee. Observe que o token expira após um certo tempo. Quando isso acontecer, basta gerar o token novamente usando o mesmo comando. Saiba mais na página de referência do comando print-access-token. - PROJECT_ID é o ID do projeto do Cloud que você criou como parte dos pré-requisitos.
RUNTIME_LOCATION é o local físico em que a instância da Apigee está localizada. Para conferir uma lista de locais disponíveis para o ambiente de execução, consulte Locais da Apigee.
-
ANALYTICS_REGION é o local físico em que os dados de análise da Apigee são armazenados. Para conferir uma lista de regiões disponíveis do Apigee API Analytics, consulte os locais da Apigee.
RUNTIME_LOCATION e RUNTIME_LOCATION podem ser a mesma região, mas não precisam ser os mesmos. No entanto, isso poderá resultar em uma melhoria no desempenho.
- AUTH define o cabeçalho
- (Opcional) Verifique seu trabalho incluindo os valores que você acabou de definir. Quando quiser
usar uma variável nos comandos, coloque o cifrão
($) antes do nome dela.
echo $AUTH
echo $PROJECT_ID
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
As respostas aos comandos
echo
precisam ser semelhantes a estas:Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_ 1CxN my-cloud-project us-west1 us-west1
Etapa 2: ativar as APIs
-
A Apigee requer a ativação de várias APIs do Google Cloud. Ative as APIs executando o seguinte comando
services enable
:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(Opcional) Para verificar 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 você acabou de ativar (Apigee, Service Networking, Cloud KMS e Compute Engine).
Etapa 3: configurar a rede de serviços
- Crie estas variáveis de ambiente:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
Em que:
RANGE_NAME
é o nome do intervalo de endereços IP que você está criando. Você dá o nome que quiser a ele; Por exemplo:google-svcs
NETWORK_NAME
é o nome do recurso de rede em que os endereços precisam ser reservados. O Google cria uma rede padrão (chamadadefault
) para cada novo projeto, para que você possa usar isso. No entanto, o Google não recomenda usar a rede padrão para qualquer finalidade que não seja teste.
- 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 um ou mais IPs de endereço para o comprimento do prefixo de/22
. Por exemplo, para alocar o bloco CIDR192.168.0.0/22
, especifique192.168.0.0
como endereço e22
como tamanho de prefixo. Consulte também Como criar uma alocação de IP.Se você não fornecer o parâmetro
--addresses
, a gcloud selecionará um intervalo de endereços disponível.Em caso de sucesso,
gcloud
responderá com o seguinte:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Depois que você criar um intervalo de endereços IP, os endereços serão associados ao projeto até que você os libere.
- Crie um segundo intervalo de IP com um comprimento CIDR de /28. Esse intervalo é usado pela Apigee para fins de solução de problemas e não pode ser personalizado ou 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 um ou mais IPs de endereço para o comprimento do prefixo de/28
. Por exemplo, para alocar o bloco CIDR192.168.0.0/28
, especifique192.168.0.0
como endereço e28
como tamanho de prefixo. Consulte também Como criar uma alocação de IP.Se você não fornecer o parâmetro
--addresses
, a gcloud selecionará um intervalo de endereços disponível. - Conecte os serviços à VPC usando o 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
Essa operação pode levar vários minutos para ser concluída. Em caso de sucesso,
gcloud
responderá com o seguinte:Operation "operations/OPERATION_ID" finished successfully.
Em que OPERATION_ID é o UUID da LRO (operação de longa duração).
A Apigee cria uma conexão entre sua VPC e os serviços do Google. Especificamente, a Apigee conecta seu projeto à API Service Networking usando o peering de VPC. A Apigee também associa os endereços IP ao seu projeto.
Etapa 4: criar uma organização
Uma organização é o contêiner de nível superior no Apigee. Ela contém todos os proxies de API e recursos relacionados. Saiba mais em Noções básicas sobre organizações.
- Crie uma nova organização de avaliação usando 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 você executa o comando
provision
, o Google inicia uma LRO para criar a organização de avaliação. Essa operação leva até 40 minutos para ser concluída. Durante esse período,gcloud
exibe o seguinte:Provisioning organization...
Quando a organização de avaliação e a instância de ambiente de execução associada são criadas, o
gcloud
responde assim:Provisioning organization...done.
-
Se você executar o seguinte comando:
gcloud alpha apigee operations list --organization=$PROJECT_ID
Você verá que todos os UUIDs estão no estado
FINISHED
. 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
Etapa 5: configurar o roteamento
Decida se quer permitir o acesso externo ou somente o acesso interno:
Tipo de acesso | Descrição do processo de configuração e implantação |
---|---|
Interno |
Permita apenas o acesso interno aos proxies da API. Você precisa criar uma nova VM dentro da rede e conectar-se a ela. Na nova VM, é possível enviar uma solicitação a um proxy de API da Apigee. |
Externo |
Permita o acesso externo aos proxies de API. Use o Private Service Connect (PSC) para ativar a conexão particular entre um produtor de serviços (Apigee) e um consumidor de serviço (o projeto VPC com peering e/ou um ou mais projetos do Cloud que você controla). Com esse método, as solicitações passam por um balanceador de carga externo global para um único ponto de anexo, chamado de Anexo de serviço. Essa configuração permite enviar solicitações de proxy de API da Apigee de qualquer máquina ativada para rede. |
Cada uma destas abordagens de roteamento é apresentada em uma guia nas instruções abaixo.
Roteamento interno
Não há tarefas a serem executadas nesta etapa, se você usa a linha de comando para configurar um proxy de API somente para acesso interno. Pule para a Etapa 6: chamar o proxy de API de exemplo, em que você vai enviar uma solicitação para o proxy de API.
Roteamento externo
Nesta seção, descrevemos como configurar o roteamento externo usando o Private Service Connect (PSC, na sigla em inglês) para permitir a comunicação entre a Apigee e as VPCs que você controla. É necessário fazer isso para enviar uma solicitação de um cliente externo à instância de ambiente de execução da Apigee.
As etapas de configuração externas são:
Etapa 5a: criar um grupo de endpoints da rede (NEG)
Etapa 5b: configurar o balanceador de carga
Cada uma dessas etapas é descrita nas seções a seguir.
Etapa 5a: criar um grupo de endpoints de rede (NEG)
- Acesse o anexo de serviço da sua instância da Apigee:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
No exemplo de saída a seguir, o valor
serviceAttachment
é mostrado em 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 endpoints da rede (NEG, na sigla em inglês) do Private Service Connect que aponte para o anexo de serviço obtido do corpo de resposta da instância na etapa 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:
- NEG_NAME: um nome para o grupo de endpoints da rede.
- TARGET_SERVICE: o anexo de serviço ao qual você quer
se conectar. Por exemplo:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- SUBNET_NAME: nome da sub-rede usada para conectividade particular com o produtor. O tamanho da sub-rede pode ser pequeno: o NEC PSC só precisa de um IP da sub-rede. Para a Apigee, apenas um NEG de PSC é necessário por região. A sub-rede pode ser compartilhada e usada por VMs ou outras entidades. Se uma sub-rede não for especificada, os endpoints de rede poderão pertencer a qualquer sub-rede na região em que o grupo de endpoints de rede é criado.
Etapa 5b: configurar o balanceador 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 balanceamento de carga nessa 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:
- BACKEND_SERVICE_NAME: o nome do serviço de back-end.
- NEG_NAME: o nome do grupo de endpoints da rede.
Crie um mapa de URL para o balanceador de carga.
Um mapa de URL precisa referir-se a um serviço de back-end padrão. Defina o serviço de back-end que você acabou de criar como padrão.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Substitua:
- URL_MAP_NAME: um nome para o mapa de URL.
- DEFAULT_BACKEND_SERVICE_NAME: o nome do serviço de back-end padrão do balanceador de carga. O padrão é usado quando nenhuma regra de host corresponde ao nome do host solicitado.
Crie um certificado SSL para o proxy de destino HTTPS.
Para criar um balanceador de carga HTTPS, você precisa ter um recurso de certificado SSL para usar no proxy de destino HTTPS. É possível criar um recurso de certificado SSL usando um certificado SSL gerenciado pelo Google ou um certificado SSL autogerenciado.
Use este comando para criar um recurso de certificado SSL gerenciado pelo Google:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_ID
Substitua:
- CERTIFICATE: um nome para o certificado.
- DOMAIN: o nome de domínio que você usará para o balanceador de carga externo.
Para criar um certificado SSL autogerenciado, você precisa de um arquivo de chave privada local e de um arquivo de certificado local. Se você precisar criar esses arquivos, consulte Como usar certificados SSL autogerenciados.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_ID
Substitua:
- CERTIFICATE: um nome para o certificado.
- LB_CERT: o caminho para o arquivo de certificado formatado em PEM do certificado autogerenciado.
- LB_PRIVATE_KEY: o caminho para o arquivo de chave privada formatado em PEM do certificado autogerenciado.
-
O provisionamento do certificado pode levar até uma hora. Para ver o status do provisionamento, 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 da Apigee que foi criado para você. O nome
do grupo de ambiente é
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 status da operação do grupo de ambiente:
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 de destino HTTPS.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
Substitua:
- PROXY_NAME: um nome para o proxy HTTPS de destino.
- URL_MAP_NAME: o nome do mapa de URL.
- CERTIFICATE: o nome do recurso de 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:
- FWD_RULE: um nome para a regra de encaminhamento.
- ADDRESS_NAME: o recurso de endereço IP que você 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 provisionamento da Apigee foi concluído.
Etapa 6: chamar o proxy de API de amostra
Um proxy de API chamado hello-world
foi criado e implantado para você durante o provisionamento. Nesta etapa, você testa a nova organização de avaliação chamando o proxy.
Chamar o proxy com roteamento interno
Se você escolheu a opção de roteamento interno na etapa 5, siga as etapas em Como chamar um proxy de API com acesso somente interno.
Chamar o proxy com roteamento externo
Se você escolheu a opção de roteamento externo na Etapa 5, siga as etapas nesta seção.
- Configure uma entrada DNS para o host. Veja duas maneiras de realizar essa tarefa:
- No registrador, crie um registro A que aponte para seu domínio. Por exemplo, se o
nome do host for
sales.example.com
e o IP for 10.23.0.2, aponte o registro desales.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 Google Cloud DNS para mapear um URL para um endereço IP.
- No registrador, crie um registro A que aponte para seu domínio. Por exemplo, se o
nome do host for
- Confirme se o proxy
hello-world
está implantado:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
- Chame o proxy de API:
Envie uma solicitação ao proxy de API de qualquer máquina em rede executando o seguinte comando:
curl -i -H "Host: DOMAIN" \ https://DOMAIN/hello-world
Em que DOMAIN é o domínio que você colocou no certificado e adicionado ao grupo de ambiente, conforme discutido na Etapa 5: configurar o roteamento. Se necessário, use essa API para receber o valor
DOMAIN
do grupo de ambiente:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"
Após a conclusão, o proxy de API de amostra retornará a resposta:
Hello, Guest!
Dicas para solução de problemas:
Se você receber um erro de handshake, verifique o status do certificado SSL. Para informações sobre como solucionar problemas de certificados autogerenciados e gerenciados pelo Google, consulte Solução de problemas de certificados SSL.
Verifique se o domínio registrado tem um registro A que aponta para o endereço IP do endereço IPv4 externo global criado na etapa 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 for possível resolver a configuração do domínio, tente chamar o proxy com este comando:
curl -H Host:DOMAIN --resolve \ DOMAIN:443:EXTERNAL_IP_ADDRESS \ https://DOMAIN:443/hello-world -k
Próxima: para saber mais sobre como criar e implantar proxies de API, consulte Criar a primeira visão geral do proxy de API.