Implementar una API en una puerta de enlace

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Requisitos previos

Antes de implementar una configuración de API en API Gateway, asegúrate de haber hecho lo siguiente:

Requisitos de ID de Gateway

Muchos de los comandos de gcloud que se muestran a continuación requieren que especifiques el ID de la puerta de enlace, con el siguiente formato: GATEWAY_ID. En API Gateway, se aplican los siguientes requisitos para el ID de la puerta de enlace:

  • Debe tener una longitud máxima de 49 caracteres.
  • Debe contener solo letras en minúscula, números o guiones.
  • No debe comenzar con un guion.
  • No debe contener un guion bajo.

Define el extremo de la configuración de la API implementada

Cuando implementas una configuración de API en una puerta de enlace, API Gateway crea una URL única para la puerta de enlace en el dominio gateway.dev. Los clientes de la API usan una URL con el siguiente formato para acceder a la configuración de la API implementada:

https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev

donde GATEWAY_ID es el nombre de la puerta de enlace, HASH es el código hash único que se generó cuando se implementó la API y REGION_CODE es el código de la región de GCP en la que implementaste la puerta de enlace.

Por ejemplo:

https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev

Implementa una configuración de API en una puerta de enlace

Usa la herramienta de línea de comandos de gcloud para implementar una configuración de API en una puerta de enlace. Cuando implementas la configuración de la API, debes especificar el nombre de la API. Si la puerta de enlace aún no existe para la API, este comando también la crea.

Para implementar una configuración de API en una puerta de enlace, haz lo siguiente:

  1. Valida el ID del proyecto que muestra el siguiente comando para asegurarte de que la puerta de enlace no se cree en el proyecto equivocado.

    gcloud config list project

    Si necesitas cambiar el proyecto predeterminado, ejecuta el siguiente comando y reemplaza PROJECT_ID por el ID del proyecto de Google Cloud en el que quieres 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 implementar la configuración de la API en la puerta de enlace:

    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 puerta de enlace nueva. Si la puerta de enlace aún no existe, este comando la crea.
    • API_ID especifica el ID de la API de API Gateway asociada con esta puerta de enlace.
    • CONFIG_ID especifica el ID de la configuración de la API implementada en la puerta de enlace. Debes especificar una configuración de API cuando creas una puerta de enlace.
    • GCP_REGION especifica la región de GCP para la puerta de enlace implementada.

    • PROJECT_ID especifica el ID del proyecto de Google Cloud.

    Mientras crea la puerta de enlace, gcloud exporta la información a la terminal.

  4. Cuando el proceso finalice con éxito, puedes usar el siguiente comando para ver los detalles de la puerta de enlace:

    gcloud api-gateway gateways describe GATEWAY_ID \
      --location=GCP_REGION --project=PROJECT_ID

    Este comando muestra 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'

    Ten en cuenta el valor de la propiedad defaultHostname. Esta es la parte del nombre de host de la URL de la puerta de enlace. Para acceder a una configuración de API implementada en esta puerta de enlace, usa una URL con el siguiente formato:

    https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev

La herramienta de línea de comandos de gcloud toma muchas opciones, incluidas las que se describen en la referencia de gcloud. Además, para API Gateway, puedes configurar las siguientes opciones cuando crees una puerta de enlace:

  • --async: Muestra el control a la terminal de inmediato, sin esperar a que se complete la operación.
  • --display-name=NAME: Especifica el nombre visible de la puerta de enlace, es decir, el nombre que se muestra en la IU. 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 etiquetas asociadas con la puerta de enlace.

Enumera las puertas de enlace

Para enumerar las puertas de enlace de un proyecto específico, ejecuta el siguiente comando:

gcloud api-gateway gateways list --project=PROJECT_ID

Este comando muestra un resultado con el siguiente formato:

NAME                                                          DISPLAY_NAME  STATE
projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID  GATEWAY_ID    ACTIVE

Para enumerar las puertas de enlace de un proyecto y una región específicos, haz lo siguiente:

gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID

Usa una expresión filter para enumerar las puertas de enlace asociadas con una API específica:

gcloud api-gateway gateways list \
  --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \
  --project=PROJECT_ID

O bien, usa este filter para enumerar las puertas de enlace 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 el ID del proyecto, región y puerta de enlace para obtener información detallada sobre la puerta de enlace, incluida la identidad de la configuración de la API implementada en la puerta de enlace:

gcloud api-gateway gateways describe GATEWAY_ID \
  --location=GCP_REGION --project=PROJECT_ID

Actualiza una puerta de enlace

Actualiza una puerta de enlace para realizar estas acciones:

  • Implementa una configuración de API diferente en la puerta de enlace
  • Actualiza el nombre visible
  • Actualiza las etiquetas

Usa el siguiente comando de gcloud para actualizar una puerta de enlace existente:

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 la API implementada en la puerta de enlace, haz lo siguiente:

gcloud api-gateway gateways update GATEWAY_ID \
  --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID 

en el que NEW_CONFIG_ID especifica la nueva configuración de la API que se implementará en la puerta de enlace.

Para actualizar el nombre visible, usa la opción --display-name. Para actualizar las etiquetas, usa lo siguiente:

  • --update-labels=KEY=VALUE,...
  • --clear-labels
  • --remove-labels=KEY,...

Usa el siguiente comando para ver todas las opciones de actualización:

gcloud api-gateway gateways update --help

Borra una puerta de enlace

Usa el siguiente comando de gcloud para borrar una puerta de enlace existente:

gcloud api-gateway gateways delete GATEWAY_ID \
  --location=GCP_REGION --project=PROJECT_ID

¿Qué sigue?