Esta página se aplica a Apigee, pero no a Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Resumen de los pasos
En este documento, se explica cómo instalar y configurar una organización de evaluación de Apigee (o eval org) desde la línea de comandos. Las organizaciones de evaluación vencen después de 60 días y pueden tener otras limitaciones. Consulta también Compara organizaciones pagadas y de evaluación.
Los pasos de aprovisionamiento son los siguientes:
- Paso 1: Definir las variables de entorno: Configura
gcloud
y define las variables de entorno. Google Cloud CLI administra la autenticación, la configuración local, el flujo de trabajo de los desarrolladores y las interacciones con las APIs de Google Cloud. - Paso 2: Habilitar las APIs: Apigee requiere que habilites varias APIs de Google Cloud.
- Paso 3: Configurar herramientas de redes de servicio: las herramientas de redes de servicio automatizan la configuración de la conectividad privada (con el intercambio de tráfico entre redes de VPC) entre tu red y Apigee.
- Paso 4: Crear una organización: Una organización de Apigee (a veces conocida como org) es el contenedor de nivel superior en Apigee. Incluye todos los entornos y grupos de entornos, usuarios, proxies de API y recursos relacionados.
- Paso 5: Configurar el enrutamiento: Permite el acceso externo o el acceso solo interno a la API.
- Paso 6: Llamar al proxy de API de muestra: Prueba el aprovisionamiento a través de la implementación y una llamada a un proxy de API.
Paso 1: Definir las variables de entorno
Configura gcloud
y define variables de entorno para usarlas en pasos posteriores:
- Asegúrate de haber completado los requisitos que se enumeran en Requisitos previos.
- Debes tener instalada gcloud CLI. Si debes instalarla, consulta Instala gcloud CLI.
- Inicializa la CLI de gcloud, como se describe en Inicializa gcloud CLI, o si la CLI ya se inicializó, asegúrate de que el proyecto de Google Cloud que creaste en Requisitos previos sea la siguiente: Proyecto predeterminado para gcloud.
- Define las siguientes variables de entorno:
AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
Dónde:
- AUTH define el encabezado
Authentication
con un token del portador. Usarás este encabezado cuando llames a las API de Apigee. Ten en cuenta que el token vence después de un período y, cuando lo hace, puedes volver a generarlo con el mismo comando. Para obtener más información, consulta la página de referencia del comando print-access-token. - PROJECT_ID es el ID del proyecto de Cloud que creaste como parte de los requisitos previos.
RUNTIME_LOCATION es la ubicación física en la que se encuentra la instancia de Apigee. Para obtener una lista de las ubicaciones disponibles del entorno de ejecución, consulta Ubicaciones de Apigee.
-
ANALYTICS_REGION es la ubicación física en la que se almacenarán los datos analíticos de Apigee. Para obtener una lista de las regiones de estadísticas de la API de Apigee disponibles, consulta Ubicaciones de Apigee.
Tanto RUNTIME_LOCATION como ANALYTICS_REGION pueden ser de la misma región, pero no es necesario que sean iguales. Sin embargo, puede haber un beneficio de rendimiento si son iguales.
- AUTH define el encabezado
- (Opcional) Para verificar su trabajo, repita los valores que acaba de configurar. Ten en cuenta que cuando quieras usar una variable en tus comandos, deberás colocar un signo de dólar antes de su nombre ($).
echo $AUTH
echo $PROJECT_ID
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
Las respuestas a tus comandos
echo
deberían verse de la siguiente manera:Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_ 1CxN my-cloud-project us-west1 us-west1
Paso 2: Habilitar las API
-
Apigee requiere que habilites varias APIs de Google Cloud. Habilítalas a través de la ejecución del siguiente comando de
services enable
:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
Si deseas verificar tu trabajo, usa el comando
services list
para mostrar todas las APIs habilitadas (opcional):gcloud services list
En la respuesta, se muestran todos los servicios habilitados, incluidas las API que acabas de habilitar (Apigee, Service Networking, Cloud KMS y Compute Engine).
Paso 3: Configura las herramientas de redes de servicio.
- Crea estas variables de entorno:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
Dónde:
RANGE_NAME
es el nombre del rango de direcciones IP que estás creando. Puedes nombrar el rango como desees. Por ejemplo:google-svcs
NETWORK_NAME
es el nombre del recurso de red en el que se deben reservar las direcciones. Google crea una red predeterminada (llamadadefault
) para cada proyecto nuevo, por lo que puedes usarla. Sin embargo, no recomienda usar la red predeterminada para nada más que la prueba.
- Crea un rango de IP con una longitud 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
En el ejemplo anterior,
--addresses
te permite especificar una o más direcciones IP para la longitud de prefijo de/22
. Por ejemplo, para asignar el bloque CIDR192.168.0.0/22
, especifica192.168.0.0
como la dirección y22
como la longitud de prefijo. Consulta también Crea una asignación de IP.Si no proporcionas el parámetro
--addresses
, gcloud selecciona un rango de direcciones disponible por ti.Si se ejecuta de forma correcta,
gcloud
responde con lo siguiente:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Después de crear un rango de direcciones IP, las direcciones se asocian al proyecto hasta que las liberes.
- Crea un segundo rango de IP con una longitud de CIDR de /28. Apigee usa este rango para solucionar problemas y no se puede personalizar ni cambiar.
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
En el ejemplo anterior,
--addresses
te permite especificar una o más direcciones IP para la longitud de prefijo de/28
. Por ejemplo, para asignar el bloque CIDR192.168.0.0/28
, especifica192.168.0.0
como la dirección y28
como la longitud de prefijo. Consulta también Crea una asignación de IP.Si no proporcionas el parámetro
--addresses
, gcloud selecciona un rango de direcciones disponible por ti. - Conecta tus servicios a la VPC con el siguiente 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 operación puede tardar varios minutos en completarse. Si se ejecuta de forma correcta,
gcloud
responde con lo siguiente:Operation "operations/OPERATION_ID" finished successfully.
En el que OPERATION_ID es el UUID de la LRO (operación de larga duración).
Apigee crea una conexión entre tu VPC y los servicios de Google. En específico, Apigee conecta tu proyecto con la API de Service Networking a través del intercambio de tráfico de VPC. Apigee también asocia direcciones IP a tu proyecto.
Paso 4: Crear una organización
Una organización es el contenedor de nivel superior en Apigee. Contiene todos los proxies de API y los recursos relacionados. Para obtener detalles, consulta Información sobre las organizaciones.
- Crea una nueva eval org con el 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
En el que
--authorized-network
es el nombre de tu red de intercambio de tráfico personalizada. Por ejemplo:default
. -
Cuando ejecutas el comando
provision
, Google inicia una LRO para crear la organización de evaluación. Esta operación tardará hasta 40 minutos en completarse. Durante ese tiempo,gcloud
muestra lo siguiente:Provisioning organization...
Cuando se crea la eval org y su instancia del entorno de ejecución asociada,
gcloud
responde con lo siguiente:Provisioning organization...done.
-
Si ejecutas el siguiente comando, ocurrirá lo siguiente:
gcloud alpha apigee operations list --organization=$PROJECT_ID
deberías ver que todos los UUID están en estado
FINISHED
. Por ejemplo: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
Paso 5: Configura el enrutamiento
Decide si deseas permitir el acceso externo o solo el acceso interno:
Tipo de acceso | Descripción de los procesos de implementación y configuración |
---|---|
Interno |
Permite solo el acceso interno a tus proxies de API. Debes crear una VM nueva dentro de la red y conectarte a ella. Desde la VM nueva, puedes enviar una solicitud a un proxy de API de Apigee. |
Externo |
Permite el acceso externo a tus proxies de API. Utiliza Private Service Connect (PSC) para habilitar la conexión privada entre un productor de servicios (Apigee) y un consumidor de servicios (el proyecto de VPC con intercambio de tráfico o uno o más proyectos de Cloud que tú controlas). Con este método, las solicitudes pasan a través de un balanceador de cargas externo global a un único punto de adjunto, llamado adjunto de servicio. Esta configuración te permite enviar solicitudes de proxy de API de Apigee desde cualquier máquina habilitada para la red. |
Cada uno de estos enfoques de enrutamiento se presenta en una pestaña en las instrucciones que aparecen a continuación.
Enrutamiento interno
No hay tareas que realizar en este paso si usas la línea de comandos para configurar un proxy de API solo para el acceso interno. Puedes pasar al Paso 6: Llamar al proxy de API de muestra, al que enviarás una solicitud a tu proxy de API.
Enrutamiento externo
En esta sección, se describe cómo configurar el enrutamiento externo a través de Private Service Connect (PSC) para permitir la comunicación entre Apigee y las VPC que controlas. Debes hacer esto para poder enviar una solicitud desde un cliente externo hacia la instancia del entorno de ejecución de Apigee.
Los pasos de configuración externos son los siguientes:
Paso 5a: Crea un grupo de extremos de red (NEG)
Paso 5b: Configura el balanceador de cargas
Cada uno de estos pasos se describe en las siguientes secciones.
Paso 5a: Crea un grupo de extremos de red (NEG)
- Obtén el adjunto de servicio para tu instancia de Apigee:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
En el siguiente resultado de muestra, el valor
serviceAttachment
se muestra con letra negrita:{ "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" } ] }
Crea un grupo de extremos de red (NEG) de Private Service Connect que apunte al adjunto de servicio que obtuviste del cuerpo de respuesta de la instancia en el paso 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
Reemplaza lo siguiente:
- NEG_NAME: un nombre para el grupo de extremos de red.
- TARGET_SERVICE: el adjunto de servicio al que deseas conectarte. Por ejemplo:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- SUBNET_NAME: Nombre de la subred que se usa para la conectividad privada al productor. El tamaño de subred puede ser pequeño: el NEG de PSC solo necesita una IP de la subred. Para Apigee, solo se necesita un NEG de PSC por región. Las VMs y otras entidades pueden compartir y usar la subred. Si no se especifica una subred, los extremos de red pueden pertenecer a cualquier subred en la región donde se crea el grupo de extremos de red.
Paso 5b: Configura el balanceador de cargas
Configura un balanceador de cargas HTTP(S) externo global (esquema de balanceo de cargas configurado como EXTERNAL_MANAGED
).
Aunque el NEG de Private Service Connect es regional, todos los demás componentes del balanceo de cargas de esta configuración son globales.
- Reserva una dirección IPv4 externa global para el balanceador de cargas.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global --project=$PROJECT_ID
Reemplaza ADDRESS_NAME con un nombre para el recurso de dirección IP
Ejecuta este comando para ver la dirección IP reservada:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
- Crea un servicio de backend para el NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global --project=$PROJECT_ID
- Agrega el NEG de Internet al servicio de backend:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=$RUNTIME_LOCATION \ --global --project=$PROJECT_ID
Reemplaza lo siguiente:
- BACKEND_SERVICE_NAME: el nombre del servicio de backend.
- NEG_NAME: es el nombre del grupo de extremos de red.
Crea un mapa de URL para el balanceador de cargas.
Un mapa de URL debe hacer referencia a un servicio de backend predeterminado. Configura el servicio de backend que acabas de crear como predeterminado.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Reemplaza lo siguiente:
- URL_MAP_NAME: un nombre para el mapa de URL
- DEFAULT_BACKEND_SERVICE_NAME: el nombre del servicio de backend predeterminado del balanceador de cargas. El valor predeterminado se usa cuando ninguna regla de host coincide con el nombre de host solicitado.
Crea un certificado SSL para el proxy HTTPS de destino.
Si deseas crear un balanceador de cargas HTTPS, debes tener un recurso de certificado SSL para usar en el proxy de destino HTTPS. Puedes crear un recurso de certificado SSL a través de un ertificadoc SSL administrado por Google o un certificado SSL autoadministrado.
Usa este comando para crear un recurso de certificado SSL administrado por Google:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_ID
Reemplaza lo siguiente:
- CERTIFICATE: un nombre para el certificado
- DOMAIN: el nombre de dominio que usarás para el balanceador de cargas externo.
Para crear un certificado SSL autoadministrado, necesitas un archivo de clave privada local y un archivo de certificado local. Si necesitas crear estos archivos, consulta Usa certificados SSL autoadministrados.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_ID
Reemplaza lo siguiente:
- CERTIFICATE: un nombre para el certificado
- LB_CERT: la ruta al archivo del certificado con formato PEM para tu certificado autoadministrado.
- LB_PRIVATE_KEY: la ruta al archivo de claves privadas con formato PEM para tu certificado autoadministrado.
-
El certificado puede tardar hasta una hora en aprovisionarse. Para verificar el estado del aprovisionamiento, ejecuta este comando:
gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"
- Agrega el dominio al grupo de entornos de Apigee que se creó para ti. El nombre del grupo de entornos es
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"'"] }'
- Verifica el estado de la operación del grupo de entornos:
curl -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
-
Usa el recurso de certificado SSL para crear un proxy HTTPS de destino.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
Reemplaza lo siguiente:
- PROXY_NAME: un nombre para el proxy HTTPS de destino.
- URL_MAP_NAME: el nombre del mapa de URL.
- CERTIFICATE: el nombre del recurso de certificado.
- Crea la regla de reenvío.
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
Reemplaza lo siguiente:
- FWD_RULE: un nombre para la regla de reenvío.
- ADDRESS_NAME: el recurso de dirección IP que reservaste para usar en la regla de reenvío.
- PROXY_NAME: el nombre del proxy HTTPS de destino.
Reemplaza BACKEND_SERVICE_NAME por el nombre del servicio de backend.
El aprovisionamiento de Apigee se completó.
Paso 6: Llamar al proxy de API de muestra
Durante el aprovisionamiento, se creó y se implementó un proxy de API llamado hello-world
. En este paso, probarás la nueva organización de evaluación a través de una llamada al proxy.
Llama al proxy con enrutamiento interno
Si elegiste la opción de enrutamiento interno en el paso 5, sigue los pasos que se indican en Llama a un proxy de API con acceso solo interno.
Llama al proxy con enrutamiento externo
Si elegiste la opción de enrutamiento externo en el Paso 5, sigue los pasos de esta sección.
- Configura una entrada de DNS para tu dominio. Existen dos formas de realizar esta tarea:
- En tu registrador, crea un registro A que dirija a tu dominio. Por ejemplo, si tu dominio es
sales.example.com
y la IP es 10.23.0.2, dirige el registro desales.example.com
a la dirección10.23.0.2
.Ejecuta este comando para ver la dirección IP reservada:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
- Usa Google Cloud DNS para asignar una URL a una dirección IP.
- En tu registrador, crea un registro A que dirija a tu dominio. Por ejemplo, si tu dominio es
- Confirma que se haya implementado el proxy
hello-world
:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
- Llama al proxy de API
Envía una solicitud al proxy de API desde cualquier máquina habilitada para la red mediante la ejecución del siguiente comando:
curl -i -H "Host: DOMAIN" \ https://DOMAIN/hello-world
En el que DOMAIN es el dominio que ingresaste en el certificado y agregaste al grupo de entornos, como se explica en el Paso 5: Configura el enrutamiento. Si es necesario, puedes usar esta API para obtener el valor
DOMAIN
del grupo de entornos:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"
Si se realiza de forma correcta, el proxy de API de devuelve la siguiente respuesta:
Hello, Guest!
Sugerencias para solucionar problemas:
Si recibe un error de protocolo de enlace, verifique el estado del certificado SSL. Para obtener más información sobre cómo solucionar problemas de certificados autoadministrados y administrados por Google, consulte Solución de problemas de certificados SSL.
Asegúrate de que tu dominio registrado tenga un registro A que apunte a la dirección IP de la dirección IPv4 externa global que se creó en el paso 5. Ejecuta este comando para ver la dirección IP reservada:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
Si no puedes resolver la configuración del dominio, intenta llamar al proxy con este comando:
curl -H Host:DOMAIN --resolve \ DOMAIN:443:EXTERNAL_IP_ADDRESS \ https://DOMAIN:443/hello-world -k
Siguiente: Para obtener más información sobre cómo compilar y, luego, implementar proxies de API, consulta Compila la primera descripción general del proxy de API.