Desplegar una API en una pasarela
Requisitos previos
Antes de desplegar una configuración de API en API Gateway, asegúrate de que tienes lo siguiente:
Has preparado tu entorno de desarrollo tal como se describe en Configurar el entorno de desarrollo.
Crear una configuración de API a partir de tu definición de API.
Requisitos del ID de pasarela
Muchos de los comandos de gcloud
que se muestran a continuación requieren que especifiques el ID de la pasarela con el siguiente formato: GATEWAY_ID.
API Gateway aplica los siguientes requisitos al ID de pasarela:
- Debe tener una longitud máxima de 49 caracteres.
- Solo debe incluir letras minúsculas, números o guiones.
- No debe empezar por un guion.
- No debe contener un guion bajo.
Definir el endpoint de la configuración de API implementada
Cuando despliegas una configuración de API en una pasarela, API Gateway crea una URL única para la pasarela en el dominio gateway.dev
. Tus clientes de API usan una URL con el formato que se muestra a continuación para acceder a la configuración de API implementada:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
donde GATEWAY_ID es el nombre de la pasarela, HASH es el código hash único generado al desplegar la API y REGION_CODE es el código de la ubicación de Cloud en la que has desplegado la pasarela.
Por ejemplo:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Desplegar una configuración de API en una pasarela
Usa la CLI de Google Cloud para desplegar una configuración de API en una pasarela. Cuando implementes la configuración de la API, deberás especificar el nombre de la API. Si la pasarela aún no existe para la API, este comando también la crea.
Para desplegar una configuración de API en una pasarela, sigue estos pasos:
Valida el ID del proyecto devuelto por el siguiente comando para asegurarte de que la pasarela no se ha creado en el proyecto incorrecto.
gcloud config list project
Si necesitas cambiar el proyecto predeterminado, ejecuta el siguiente comando y sustituye PROJECT_ID por el Google Cloud ID del proyectoPROJECT_ID en el que quieras crear el servicio:
gcloud config set project PROJECT_ID
Consulta la ayuda del comando
gateway create
:gcloud api-gateway gateways create --help
Ejecuta el siguiente comando para desplegar la configuración de la API en la pasarela:
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID
donde:
- GATEWAY_ID especifica el ID de la nueva pasarela. Si la pasarela aún no existe, este comando la crea.
- API_ID especifica el ID de la API de API Gateway asociada a esta pasarela.
- CONFIG_ID especifica el ID de la configuración de la API desplegada en la pasarela. Debes especificar una configuración de API al crear una pasarela.
GCP_REGION especifica la ubicación de Cloud de la pasarela implementada.
PROJECT_ID especifica el Google Cloud ID del proyecto.
Mientras crea la pasarela,
gcloud
muestra información en la terminal.Cuando se haya completado correctamente, puedes usar el siguiente comando para ver los detalles de la pasarela:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Este comando devuelve lo siguiente:
apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z'
Anota el valor de la propiedad
defaultHostname
. Es la parte del nombre de host de la URL de la pasarela. Para acceder a una configuración de API desplegada en esta pasarela, debes usar una URL con el siguiente formato:https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
La CLI de Google Cloud acepta muchas opciones, incluidas las que se describen en la referencia de gcloud. Además, en API Gateway, puede definir las siguientes opciones al crear una pasarela:
--async
: devuelve el control a la terminal inmediatamente, sin esperar a que se complete la operación.--display-name=NAME
: especifica el nombre visible de la pasarela, es decir, el nombre que se muestra en la interfaz de usuario. No uses espacios en el nombre. En su lugar, usa guiones y guiones bajos. El valor predeterminado es GATEWAY_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...
: especifica las etiquetas asociadas a la pasarela.
Mostrar pasarelas
Para enumerar las pasarelas de un proyecto específico, sigue estos pasos:
gcloud api-gateway gateways list --project=PROJECT_ID
Este comando devuelve un resultado con el siguiente formato:
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
Para enumerar las pasarelas de un proyecto y una región concretos, haz lo siguiente:
gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID
Usa una expresión filter
para enumerar las pasarelas asociadas a una API específica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \ --project=PROJECT_ID
También puedes usar este filter
para enumerar las pasarelas de una configuración de API específica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
Usa los IDs del proyecto, la región y la pasarela para obtener información detallada sobre la pasarela, incluida la identidad de la configuración de API implementada en la pasarela:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Actualizar una pasarela
Actualizar una pasarela a:
- Desplegar otra configuración de API en la pasarela
- Actualizar el nombre visible
- Actualizar las etiquetas
Usa el siguiente comando gcloud
para actualizar una pasarela, donde UPDATE_OPTIONS se sustituye por la marca de opción de pasarela y el valor que quieras actualizar:
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID
Por ejemplo, para actualizar la configuración de API desplegada en la pasarela, haz lo siguiente:
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID
donde NEW_CONFIG_ID especifica la nueva configuración de API que se va a desplegar en la pasarela.
Para ver una lista completa de las marcas y los argumentos de actualización disponibles, consulta la referencia de gcloud api-gateway gateways update o usa el siguiente comando para ver todas las opciones de actualización:
gcloud api-gateway gateways update --help
Eliminar una pasarela
Usa el siguiente comando gcloud
para eliminar una pasarela:
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID