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:

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:

  1. 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
  2. Consulta la ayuda del comando gateway create:

    gcloud api-gateway gateways create --help
  3. 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.

  4. 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

Siguientes pasos