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 caducan al cabo de 60 días y pueden tener otras limitaciones. Consulta también Comparar organizaciones de evaluación y de pago.
Los pasos de aprovisionamiento son los siguientes:
- Paso 1: Define las variables del entorno:
Configura
gcloud
y define las variables del entorno. La CLI de Google Cloud gestiona la autenticación, la configuración local, el flujo de trabajo de desarrollo y las interacciones con las APIs de Google Cloud. - Paso 2: Habilita las APIs: Apigee requiere que habilites varias APIs de Google Cloud.
- Paso 3: Configura las redes de servicios: las redes de servicios automatizan la configuración de la conectividad privada (mediante el emparejamiento entre redes de VPC) entre tu red y Apigee.
- Paso 4: Crea una organización: una organización de Apigee (a veces denominada "org") es el contenedor de nivel superior de Apigee. Incluye todos tus entornos y grupos de entornos, usuarios, proxies de API y recursos relacionados.
- Paso 5: Configura el enrutamiento: permite el acceso externo o solo interno a tu API.
- Paso 6: Llama al proxy de API de ejemplo: prueba el aprovisionamiento desplegando y llamando a un proxy de API.
Paso 1: Define las variables del entorno
Configura gcloud
y define las variables de entorno que se usarán en pasos posteriores:
- Asegúrate de que has completado los requisitos que se indican en la sección Requisitos previos.
- Debes tener instalada la CLI de gcloud. Si necesitas instalarlo, consulta el artículo Instalar gcloud CLI.
- Inicializa gcloud CLI, tal como se describe en Inicializar gcloud CLI. Si la CLI ya está inicializada, asegúrate de que el proyecto de Google Cloud que has creado en Requisitos sea el proyecto predeterminado de 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"
Donde:
- AUTH define el encabezado
Authentication
con un token de portador. Usarás este encabezado al llamar a las APIs de Apigee. Ten en cuenta que el token caduca al cabo de un tiempo. Cuando esto ocurra, 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 has creado como parte de los requisitos previos.
RUNTIME_LOCATION es la ubicación física en la que se encuentra la instancia de Apigee. Para ver una lista de las ubicaciones de tiempo de ejecución disponibles, consulta Ubicaciones de Apigee.
-
ANALYTICS_REGION es la ubicación física en la que se almacenarán los datos de analíticas de Apigee. Para ver una lista de las regiones de analíticas de la API de Apigee disponibles, consulta Ubicaciones de Apigee.
RUNTIME_LOCATION y ANALYTICS_REGION pueden ser la misma región, pero no es obligatorio. Sin embargo, puede que haya una mejora del rendimiento si son iguales.
- AUTH define el encabezado
- (Opcional) Comprueba tu trabajo repitiendo los valores que acabas de definir. Ten en cuenta que, si quieres usar una variable en tus comandos, debes poner el signo de dólar ($) delante del nombre de la variable.
echo $AUTH
echo $PROJECT_ID
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
Las respuestas a tus comandos
echo
deberían tener un aspecto similar al siguiente:Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_ 1CxN my-cloud-project us-west1 us-west1
Paso 2: Habilita las API
-
Apigee requiere que habilites varias APIs de Google Cloud. Para habilitarlas, ejecuta el comando
services enable
:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(Opcional) Para comprobar tu trabajo, usa el comando
services list
para mostrar todas las APIs habilitadas:gcloud services list
La respuesta muestra todos los servicios habilitados, incluidas las APIs que acabas de habilitar (Apigee, Service Networking, Cloud KMS y Compute Engine).
Paso 3: Configura las redes de servicios
- Crea estas variables de entorno:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
Donde:
RANGE_NAME
es el nombre del intervalo de direcciones IP que estás creando. Puedes asignar el nombre que quieras al intervalo. 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, Google no recomienda usar la red predeterminada para nada que no sean pruebas.
- Crea un intervalo 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
Donde
--addresses
te permite especificar de forma opcional una o varias IPs de dirección para la longitud del prefijo/22
. Por ejemplo, para asignar el bloque CIDR192.168.0.0/22
, especifica192.168.0.0
para la dirección y22
para la longitud del prefijo. Consulta también Crear una asignación de IP.Si no proporcionas el parámetro
--addresses
, gcloud seleccionará un intervalo de direcciones disponible.Si la solicitud se realiza correctamente,
gcloud
responde con lo siguiente:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Una vez que creas un intervalo de direcciones IP, estas se asocian al proyecto hasta que las liberas.
- Crea un segundo intervalo de IP con una longitud CIDR de /28. Apigee usa este intervalo 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
Donde
--addresses
te permite especificar de forma opcional una o varias IPs de dirección para la longitud del prefijo/28
. Por ejemplo, para asignar el bloque CIDR192.168.0.0/28
, especifica192.168.0.0
para la dirección y28
para la longitud del prefijo. Consulta también Crear una asignación de IP.Si no proporcionas el parámetro
--addresses
, gcloud seleccionará un intervalo de direcciones disponible. - Conecta tus servicios a la red 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 la solicitud se realiza correctamente,
gcloud
responde con lo siguiente:Operation "operations/OPERATION_ID" finished successfully.
Donde OPERATION_ID es el UUID de la LRO.
Apigee crea una conexión entre tu red y los servicios de Google. En concreto, Apigee conecta tu proyecto a la API Service Networking mediante el emparejamiento de VPC. Apigee también asocia direcciones IP a tu proyecto.
Paso 4: Crea una organización
Una organización es el contenedor de nivel superior de Apigee. Contiene todos tus proxies de API y los recursos relacionados. Para obtener más información, consulta el artículo Acerca de las organizaciones.
- Crea una organización de evaluación 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
Donde
--authorized-network
es el nombre de tu red de emparejamiento personalizada. Por ejemplo:default
. -
Cuando ejecutas el comando
provision
, Google inicia una LRO para crear la organización de evaluación. Esta operación tarda hasta 40 minutos en completarse. Durante ese tiempo,gcloud
muestra lo siguiente:Provisioning organization...
Cuando se crean la organización de evaluación y su instancia de tiempo de ejecución asociada,
gcloud
responde con el siguiente mensaje:Provisioning organization...done.
-
Si ejecutas el siguiente comando:
gcloud alpha apigee operations list --organization=$PROJECT_ID
Deberías ver que todos los UUIDs están en el 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 quieres permitir el acceso externo o solo el interno:
Tipo de acceso | Descripción del proceso de configuración e implementación |
---|---|
Interno |
Permite solo el acceso interno a tus proxies de API. Debes crear una máquina virtual en la red y conectarte a ella. Desde la nueva máquina virtual, puedes enviar una solicitud a un proxy de API de Apigee. |
Externo |
Permite el acceso externo a tus proxies de API. Usa 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 emparejado u otros proyectos de Cloud que controles). Con este método, las solicitudes pasan por un balanceador de carga externo global a un único punto de acoplamiento, llamado Service Attachment (Acoplamiento de servicio). Esta configuración te permite enviar solicitudes de proxy de API de Apigee desde cualquier máquina con conexión de red. |
Cada uno de estos métodos de enrutamiento se presenta en una pestaña de las instrucciones que se indican a continuación.
Enrutamiento interno
No es necesario realizar ninguna tarea en este paso si utiliza la línea de comandos para configurar un proxy de API solo para el acceso interno. Puedes ir al paso 6: llama al proxy de API de ejemplo, donde enviarás una solicitud a tu proxy de API.
Enrutamiento externo
En esta sección se describe cómo configurar el enrutamiento externo mediante Private Service Connect (PSC) para permitir la comunicación entre Apigee y las VPCs que controlas. Debes hacerlo antes de poder enviar una solicitud desde un cliente externo a tu instancia de tiempo de ejecución de Apigee.
Los pasos de configuración externos son los siguientes:
Paso 5a: Crea un grupo de puntos de conexión de red (NEG)
Paso 5b: Configura el balanceador de carga
En las siguientes secciones se describe cada uno de estos pasos.
Paso 5a: Crea un grupo de endpoints de red (NEG)
- Obtén la vinculación de servicio de tu instancia de Apigee:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
En el siguiente ejemplo de salida, el valor
serviceAttachment
se muestra en 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 endpoints de red (NEG) de Private Service Connect que apunte al adjunto de servicio que has obtenido 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
Haz los cambios siguientes:
- NEG_NAME: nombre del grupo de endpoints de red.
- TARGET_SERVICE: el archivo adjunto de servicio al que quieras conectarte. Por ejemplo:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- SUBNET_NAME: nombre de la subred usada para la conectividad privada con el productor. El tamaño de la subred puede ser pequeño: el NEG de PSC solo necesita una IP de la subred. En Apigee, solo se necesita un NEG de PSC por región. Las subredes se pueden compartir y usar en VMs u otras entidades. Si no se especifica ninguna subred, los endpoints de red pueden pertenecer a cualquier subred de la región en la que se cree el grupo de endpoints de red.
Paso 5b: Configura el balanceador de carga
Configura un balanceador de carga HTTP(S) externo global (con el esquema de balanceo de carga definido como EXTERNAL_MANAGED
).
Aunque el NEG de Private Service Connect es regional, el resto de los componentes de balanceo de carga de esta configuración son globales.
- Reserva una dirección IPv4 externa global para el balanceador de carga.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global --project=$PROJECT_ID
Sustituye ADDRESS_NAME por el nombre del 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
- Añade el NEG 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
Haz los cambios siguientes:
- BACKEND_SERVICE_NAME: el nombre del servicio de backend.
- NEG_NAME: el nombre del grupo de endpoints de red.
Crea un mapa de URLs para el balanceador de carga.
Un mapa de URLs debe hacer referencia a un servicio de backend predeterminado. Define como predeterminado el servicio de backend que acabas de crear.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
Haz los cambios siguientes:
- URL_MAP_NAME: nombre del mapa de URLs.
- DEFAULT_BACKEND_SERVICE_NAME: el nombre del servicio de backend predeterminado del balanceador de carga. 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.
Para crear un balanceador de carga HTTPS, debes tener un recurso de certificado SSL que usar en el proxy HTTPS de destino. Puedes crear un recurso de certificado SSL con un certificado SSL gestionado por Google o con un certificado SSL autogestionado.
Usa este comando para crear un recurso de certificado SSL gestionado por Google:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_ID
Haz los cambios siguientes:
- CERTIFICATE: un nombre para el certificado.
- DOMAIN: el nombre de dominio que usarás para el balanceador de carga externo.
Para crear un certificado SSL autogestionado, necesitas un archivo de clave privada local y un archivo de certificado local. Si necesitas crear estos archivos, consulta Usar certificados SSL autogestionados.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_ID
Haz los cambios siguientes:
- CERTIFICATE: un nombre para el certificado.
- LB_CERT: la ruta al archivo de certificado con formato PEM de tu certificado autogestionado.
- LB_PRIVATE_KEY: la ruta al archivo de clave privada con formato PEM de tu certificado autogestionado.
-
El certificado puede tardar hasta una hora en aprovisionarse. Para comprobar el estado del aprovisionamiento, ejecuta este comando:
gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"
- Añade el dominio al grupo de entornos de Apigee que se ha creado 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"'"] }'
- Comprueba 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
Haz los cambios siguientes:
- PROXY_NAME: nombre del proxy HTTPS de destino.
- URL_MAP_NAME: nombre del mapa de URLs.
- 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
Haz los cambios siguientes:
- FWD_RULE: el nombre de la regla de reenvío.
- ADDRESS_NAME: el recurso de dirección IP que has reservado para usarlo en la regla de reenvío.
- PROXY_NAME: nombre del proxy HTTPS de destino.
Sustituye BACKEND_SERVICE_NAME por el nombre del servicio de backend.
El aprovisionamiento de Apigee se ha completado.
Paso 6: Llama al proxy de API de ejemplo
Se ha creado y desplegado un proxy de API llamado hello-world
durante el aprovisionamiento. En este paso, probarás la nueva organización de evaluación llamando al proxy.
Llamar al proxy con enrutamiento interno
Si has elegido la opción de enrutamiento interno en el paso 5, sigue los pasos que se indican en Llamar a un proxy de API con acceso solo para uso interno.
Llamar al proxy con enrutamiento externo
Si has elegido la opción de enrutamiento externo en el paso 5, sigue los pasos de esta sección.
- Configura una entrada DNS para tu dominio. Aquí tienes dos formas de hacerlo:
- En tu registrador, crea un registro A que apunte 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 Cloud DNS de Google para asignar una URL a una dirección IP.
- En tu registrador, crea un registro A que apunte a tu dominio. Por ejemplo, si tu dominio es
- Confirma que el proxy
hello-world
se ha implementado: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 la API desde cualquier máquina con conexión de red ejecutando el siguiente comando:
curl -i -H "Host: DOMAIN" \ https://DOMAIN/hello-world
Donde DOMAIN es el dominio que has incluido en el certificado y que has añadido al grupo de entornos, tal 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 la operación se realiza correctamente, el proxy de API de ejemplo devuelve la siguiente respuesta:
Hello, Guest!
Consejos para solucionar problemas:
Si se produce un error de handshake, comprueba el estado del certificado SSL. Para obtener información sobre cómo solucionar problemas de certificados autogestionados y gestionados por Google, consulta Solucionar problemas de certificados SSL.
Asegúrate de que el dominio registrado tenga un registro A que apunte a la dirección IPv4 externa global creada 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, prueba a 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 crear y desplegar proxies de APIs, consulta el artículo Información general sobre cómo crear tu primer proxy de APIs.