Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la
documentación deApigee Edge.
En esta página, se muestra cómo definir un proxy de API como una plantilla de funciones de Apigee en YAML y cómo implementarlo con la Google Cloud CLI. Primero, compilas un proxy simple y, luego, compilas un ejemplo más completo que se encuentra frente a un modelo de Gemini.
Para obtener información general, consulta Configura un proxy con YAML. Para obtener el esquema completo, consulta la referencia de configuración de YAML del proxy de API .
Antes de comenzar
- Habilita la API de Vertex AI en tu proyecto de Google Cloud para que el proxy pueda comunicarse con los modelos de Gemini.
gcloud services enable aiplatform.googleapis.com
- Instala y, luego, inicializa el Google Cloud CLI.
- Para acceder a los comandos que se usan en este instructivo, instala el componente beta de gcloud:
gcloud components install beta
- Ten una organización de Apigee y al menos un entorno. Toma nota de los nombres de la organización y el entorno. En los ejemplos, se usan ORG y ENV como marcadores de posición. La puerta de enlace de IA en la Parte 2 también requiere un entorno intermedio o integral (no un entorno base). Consulta Tipos de entorno de Apigee.
- Asegúrate de tener los permisos necesarios:
- Para importar (crear) un proxy de API: el rol de administrador de API
(
roles/apigee.apiAdmin) o un rol equivalente que otorgueapigee.proxies.create. - Para implementar un proxy de API: administrador de entorno
(
roles/apigee.environmentAdmin) en el entorno de destino, y lector de API (roles/apigee.apiReaderV2) a nivel del proyecto. - Para crear el producto de API, el desarrollador y la app que producen la clave de API
en la Parte 2, Paso 6: administrador de API
(
roles/apigee.apiAdmin) y administrador de desarrolladores (roles/apigee.developerAdmin). Para obtener la lista completa de roles, consulta Roles de Apigee.
- Para importar (crear) un proxy de API: el rol de administrador de API
(
Parte 1: Crea un proxy de API simple
En esta sección, crearás un proxy que reenvía solicitudes al servicio de destino simulado de Apigee y aplica un límite de frecuencia.
Paso 1: Crea la plantilla
Una plantilla es el archivo que implementas. Define la ruta base, las rutas y el destino de backend de tu proxy, y enumera las funciones que se incluirán.
Crea un directorio para tu proxy y, luego, crea un archivo llamado hello-proxy.yaml:
gateway: apigee schemaVersion: 1.0.0 name: hello-proxy type: template description: A simple proxy to the Apigee mock target, protected by a rate limit. features: - spike-arrest.yaml endpoints: - name: default basePath: /hello routes: - name: default target: default targets: - name: default url: https://mocktarget.apigee.net
Esta plantilla define lo siguiente:
- Un extremo con la ruta base
/hello. Los clientes llaman al proxy en esta ruta. - Una ruta que envía solicitudes al destino llamado
default. - Un destino que apunta a la URL de backend.
- Una función,
spike-arrest.yaml, que crearás a continuación.
Paso 2: Crea la función
Una función es una unidad de configuración reutilizable que contiene políticas. Una plantilla no puede contener políticas directamente, por lo que la política de limitación de frecuencia reside en una función.
En el mismo directorio que la plantilla, crea un archivo llamado spike-arrest.yaml:
gateway: apigee schemaVersion: 1.0.0 name: spike-arrest displayName: Spike Arrest type: feature description: Protects the backend by smoothing traffic spikes. categories: - traffic parameters: - name: RATE displayName: RATE description: Maximum request rate, for example 30ps (per second) or 100pm (per minute). default: 30ps examples: - 30ps - 100pm defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: SA-SpikeArrest policies: - name: SA-SpikeArrest type: SpikeArrest content: SpikeArrest: metadata: name: SA-SpikeArrest enabled: "true" continueOnError: "false" DisplayName: SA-SpikeArrest Rate: "{RATE}"
Esta función:
- Define una política de SpikeArrest que limita la tasa de solicitudes.
- Usa
defaultEndpoint.flowspara agregar la política al PreFlow de solicitud, de modo que se ejecute en cada solicitud. - Declara un parámetro,
RATE, cuyo valor predeterminado (30ps) se sustituye por{RATE}cuando se compila el proxy.
Paso 3: Importa el proxy
Importa la plantilla para crear una revisión del proxy de API. Ejecuta este comando desde el directorio que contiene tus archivos:
gcloud beta apigee apis import hello-proxy \
--from-template=hello-proxy.yaml \
--organization=ORGLa CLI compila la plantilla y su función en un paquete de proxy de API, lo sube y muestra la nueva revisión del proxy. La importación crea una revisión, pero no la implementa.
Paso 4: Implementa el proxy
Implementa la revisión en un entorno:
gcloud apigee apis deploy \
--api=hello-proxy \
--environment=ENV \
--organization=ORGDe forma predeterminada, este comando implementa la revisión más reciente. Para implementar una
revisión específica, pasa su número como el primer argumento, por ejemplo
gcloud apigee apis deploy 1 --api=hello-proxy --environment=ENV.
Si ya se implementó un proxy diferente en la misma ruta base, agrega --override para reemplazarlo sin tiempo de inactividad.
Paso 5: Llama al proxy
Para llamar al proxy implementado a través de la red, tu entorno debe estar conectado a un grupo de entornos que tenga un nombre de host enrutable. Si acabas de crear tu organización, confirma que esté configurada antes de llamar al proxy. Consulta Acerca de los entornos y los grupos de entornos.
Busca el nombre de host de un grupo de entornos que contenga tu entorno:
- En la Google Cloud consola de, ve a Apigee > Administración > Entornos.
- Selecciona la pestaña Grupos de entornos.
- Busca el grupo de entornos que contiene tu entorno y copia un valor de su Nombres de host columna.
Llama al proxy en ese nombre de host con la ruta base de tu plantilla:
curl https://HOSTNAME/hello
Reemplaza HOSTNAME por el nombre de host que copiaste. Una respuesta correcta proviene del servicio de destino simulado.
Parte 2: Compila una puerta de enlace de IA para Gemini
En esta sección, se compila un proxy más completo: una puerta de enlace de IA que reenvía solicitudes a un modelo de Gemini en Vertex AI, aplica un límite de frecuencia y requiere una clave de API. Usa una plantilla, tres funciones y una cuenta de servicio.
A diferencia del proxy simple de la Parte 1, este proxy
llama a un servicio de Google Cloud (Vertex AI). La función gemini-target usa auth: GoogleAccessToken, por lo que Apigee adjunta un token de OAuth de Google a cada solicitud a Vertex AI. Ese token se emite para una
cuenta de servicio que creas y, luego, proporcionas cuando implementas el
proxy, por lo que esta parte agrega un paso para crear esa cuenta de servicio
(Paso 3).
Paso 1: Crea la plantilla
Crea un archivo llamado ai-gateway.yaml:
gateway: apigee schemaVersion: 1.0.0 name: ai-gateway type: template description: AI gateway that fronts a Gemini model with throttling and API key enforcement. features: - spike-arrest.yaml - verify-api-key.yaml - gemini-target.yaml endpoints: - name: gemini basePath: /v1/gemini routes: - name: default target: gemini
Paso 2: Crea las funciones
En el mismo directorio, crea los tres archivos de funciones.
Reutiliza la función spike-arrest.yaml de
la Parte 1.
Crea verify-api-key.yaml para requerir una clave de API en el encabezado x-api-key:
gateway: apigee schemaVersion: 1.0.0 name: verify-api-key displayName: Verify API Key type: feature description: Requires a valid API key in the x-api-key request header. categories: - security defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: VA-VerifyAPIKey policies: - name: VA-VerifyAPIKey type: VerifyAPIKey content: VerifyAPIKey: metadata: name: VA-VerifyAPIKey enabled: "true" continueOnError: "false" DisplayName: VA-VerifyAPIKey APIKey: metadata: ref: request.header.x-api-key
Crea gemini-target.yaml para enrutar a un modelo de Gemini, autenticado con un token de acceso de Google:
gateway: apigee schemaVersion: 1.0.0 name: gemini-target displayName: Gemini Target type: feature description: Routes requests to a Gemini model on Vertex AI, authenticated with a Google access token. categories: - llm targets: - name: gemini url: https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/gemini-2.5-flash:generateContent auth: GoogleAccessToken scopes: - https://www.googleapis.com/auth/cloud-platform
Reemplaza PROJECT_ID por el ID de tu proyecto de Google Cloud y REGION por la región de Vertex AI que usas (como us-central1). Esta función
usa auth: GoogleAccessToken para que Apigee adjunte un
token de acceso de Google a cada solicitud a Vertex AI.
Los modelos no están disponibles en todas las ubicaciones, y la URL depende de la ubicación que uses. La URL anterior es la forma regional, que funciona para un modelo que se entrega desde una región específica, como gemini-2.5-flash en us-central1. Otros modelos solo se entregan desde el extremo global, que usa un host diferente y locations/global:
url: https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL:generateContent
Para encontrar las ubicaciones que admite un modelo, consulta IA generativa en ubicaciones de Vertex AI.
Paso 3: Crea una cuenta de servicio para el proxy
Debido a que la función gemini-target usa auth: GoogleAccessToken, el proxy implementado llama a Vertex AI como una cuenta de servicio. Crea esa cuenta de servicio, otórgale acceso a Vertex AI y permite que el agente de servicio de Apigee la use. Proporcionas esta cuenta de servicio
cuando implementas el proxy en el Paso 5. Para obtener más
detalles, consulta
Usa la autenticación
de Google.
- Crea una cuenta de servicio administrada por el usuario en el mismo Google Cloud proyecto que
tu organización de Apigee. (No se acepta la cuenta de servicio predeterminada de Compute Engine
). Para obtener otras formas de crear una, consulta
Crea
y administra cuentas de servicio.
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID \ --display-name="Apigee AI gateway"Esto crea la cuenta de servicio
SA_NAME@PROJECT_ID.iam.gserviceaccount.com. - Otorga a la cuenta de servicio acceso al backend al que llama. Para un destino de Vertex AI, otorga el rol de usuario de Vertex AI
(
roles/aiplatform.user):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"Si la política de IAM de tu proyecto ya contiene vinculaciones de roles condicionales, agrega
--condition=Nonea este comando. - Permite que el agente de servicio de Apigee genere tokens para la cuenta de servicio otorgándole el rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator) en la cuenta de servicio:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"Para encontrar PROJECT_NUMBER, ejecuta
gcloud projects describe PROJECT_ID --format='value(projectNumber)'.
Paso 4: Importa el proxy
Importa la plantilla para crear una revisión del proxy de API:
gcloud beta apigee apis import ai-gateway \
--from-template=ai-gateway.yaml \
--organization=ORGToma nota del número de revisión en el resultado del comando. Lo necesitarás en
el Paso 5. Para imprimir solo el número de revisión, agrega --format="value(revision)" al comando de importación.
Paso 5: Implementa el proxy con la cuenta de servicio
La implementación de la puerta de enlace de IA difiere del proxy simple en la Parte 1 de dos maneras:
- Debes proporcionar la cuenta de servicio que creaste en
el Paso 3. Si implementas sin una, la
implementación falla y muestra un
MISSING_SERVICE_ACCOUNTerror. - Debes implementar en un entorno intermedio o integral.
Este proxy usa una política extensible, que un entorno base no admite. La implementación en uno falla con el error
Extensible proxy can not be deployed to a base environment
. Consulta Tipos de entorno de Apigee.
IU de Apigee: Implementa el proxy y, cuando se te solicite una cuenta de servicio,
ingresa
SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
Para obtener los pasos, consulta
Implementa un
proxy de API.
API de implementación: llama a la
API de implementaciones y pasa la cuenta de servicio como el parámetro de consulta serviceAccount. Reemplaza REVISION por el número de revisión de
Paso 4:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments?serviceAccount=SA_NAME@PROJECT_ID.iam.gserviceaccount.com"
La solicitud de implementación se muestra de inmediato. La implementación es asíncrona. Consulta el estado de implementación de la revisión, que informa PROGRESSING hasta que se convierte en READY:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments"
Cuando se compila el proxy, las funciones spike-arrest y verify-api-key agregan sus políticas al PreFlow de solicitud (primero, la límite de frecuencia y, luego, la verificación de la clave de API), y la función gemini-target agrega el backend de Vertex AI. Una vez que se completa la implementación, el proxy se autentica en Vertex AI como tu cuenta de servicio.
Paso 6: Obtén una clave de API
La función verify-api-key rechaza cualquier solicitud que no contenga una clave de API válida, por lo que necesitas una clave antes de poder llamar al proxy. Una clave de API es una credencial de una app de desarrollador que está asociada con un producto de API que contiene este proxy. Completa las siguientes tareas, que
se describen en
Descripción general de la publicación:
- Crea
un producto de API que incluya el proxy
ai-gatewayy el entorno en el que lo implementaste. - Registra a un desarrollador de apps.
- Registra una app de desarrollador asociada con ese producto de API.
El registro de la app genera la clave. Para recuperarla, consulta Visualiza una clave de API y un secreto.
Paso 7: Llama al proxy
Busca el nombre de host de tu grupo de entornos como se describe en
la Parte 1, Paso 5, y, luego, llama al proxy en la ruta base
/v1/gemini. Pasa la clave de API en el encabezado x-api-key,
y envía un cuerpo de solicitud
generateContent
de Gemini:
curl -X POST https://HOSTNAME/v1/gemini \
-H "x-api-key: API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Say hello in one sentence."}]}]}'Reemplaza HOSTNAME por el nombre de host de tu grupo de entornos y
API_KEY por la clave de Paso 6. Una respuesta correcta es el resultado JSON del modelo. Si omites la clave, se muestra una falla de autorización de la política VerifyAPIKey, lo que confirma que la función verify-api-key está en efecto. Para obtener otras formas de
pasar una clave, consulta
Envía
una solicitud con una clave de API válida.
Próximos pasos
- Referencia de configuración de YAML del proxy de API
- Configurando un proxy con YAML
- Implementa proxies de API
- Descripción general de la publicación