Requisitos previos
Antes de crear una configuración de API, asegúrate de haber hecho lo siguiente:
Preparaste tu entorno de desarrollo como se describe en Configura tu entorno de desarrollo.
Creaste una definición de API como una especificación de OpenAPI.
De manera opcional, se creó una API como se describe en Crea una API. Si la API aún no existe, se creará la configuración de API.
Requisitos del ID de configuración de API
Muchos de los comandos gcloud
que se muestran a continuación requieren que especifiques el ID de la configuración de la API, con el siguiente formato: CONFIG_ID.
En API Gateway, se aplican los siguientes requisitos para el ID de configuración de la API:
- Debe tener una longitud máxima de 63 caracteres.
- Debe contener solo letras en minúscula, números o guiones.
- No debe comenzar con un guion.
- No debe contener un guion bajo.
Crea una configuración de API
Usa la herramienta de línea de comandos de gcloud
para subir la definición de tu API a fin de crear una configuración de API.
Cuando subes la definición de la API, debes especificar el nombre de la API.
Si la API aún no existe en API Gateway, este comando también la crea.
Para crear una configuración de API, sigue estos pasos:
Cambia a un directorio que contenga tu definición de API.
Si deseas obtener más información sobre cómo crear la especificación de OpenAPI para tu definición de API, consulta Descripción general de OpenAPI y la Guía de inicio rápido: Implementa una API en API Gateway.
Si deseas obtener más información sobre cómo crear una definición del servicio de gRPC y configuración de tu definición de la API, consulta Configura un servicio de gRPC y Comienza a usar API Gateway y Cloud Run para gRPC.
Valida el ID del proyecto que muestra el siguiente comando para asegurarte de que el servicio 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
Consulta la ayuda del comando
api-configs create
:gcloud api-gateway api-configs create --help
Ejecuta el comando siguiente para crear la configuración de API:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION \ --project=PROJECT_ID --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Donde:
- CONFIG_ID especifica el ID de la configuración de la API nueva.
- API_ID especifica el ID de la API de API Gateway asociada con esta configuración de API. Si la API aún no existe, este comando la crea.
- API_DEFINITION especifica el nombre de la especificación de OpenAPI que contiene la definición de la API.
- PROJECT_ID especifica el ID del proyecto de Google Cloud.
- SERVICE_ACCOUNT_EMAIL especifica la cuenta de servicio que se creó de forma explícita para crear la configuración de la API. Para obtener más información, consulta Cómo configurar una cuenta de servicio.
Mientras se crea la configuración de API y la API, API Gateway envía información a la terminal. Esta operación puede tardar varios minutos en completarse, ya que la configuración de API se propaga a los sistemas posteriores. La creación de una configuración de API compleja podría tardar hasta diez minutos en completarse de forma correcta. Mientras se crea una configuración, no intentes crear otra para la misma API. Solo se puede crear una configuración para cualquier API a la vez.
Cuando el proceso finalice con éxito, puede usar el siguiente comando para ver los detalles de la nueva configuración de la API:
gcloud api-gateway api-configs describe CONFIG_ID \ --api=API_ID --project=PROJECT_ID
Este comando muestra lo siguiente:
createTime: '2020-02-04T18:33:11.882707149Z' displayName: CONFIG_ID gatewayConfig: backendConfig: googleServiceAccount: 1111111@developer.gserviceaccount.com labels: '' name: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID serviceRollout: rolloutId: 2020-02-04r2 state: ACTIVE updateTime: '2020-02-04T18:33:12.219323647Z'
Habilita la API con el nombre de servicio administrado de la API. Puedes encontrar este valor en la columna Servicio administrado para tu API en la página de destino de las API:
gcloud services enable MANAGED_SERVICE_NAME.apigateway.PROJECT_ID.cloud.goog
Solo tienes que ejecutar este comando una vez que creas la API. Si luego modificas la API, no tendrás que volver a ejecutar el comando.
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 establecer las siguientes opciones cuando crees una configuración de API:
--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 configuración de la API, 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 CONFIG_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...
: Especifica etiquetas asociadas con la configuración de la API.
Por ejemplo:
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=API_DEFINITION \ --project=PROJECT_ID --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL \ --async --display-name=MyConfig --labels=a=1,b=2
Puedes ver las etiquetas en el resultado del comando describe
que se muestra arriba o en el comando list
si incluyes la opción --format
:
gcloud api-gateway api-configs list \ --api=API_ID --project=PROJECT_ID --format="table(name, labels)"
Enumera las configuraciones de API
Para enumerar las opciones de configuración de la API de un proyecto específico, haz lo siguiente:
gcloud api-gateway api-configs list --project=PROJECT_ID
Este comando muestra lo siguiente:
NAME DISPLAY_NAME ROLLOUT_ID STATE CREATE_TIME projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID CONFIG_ID 2020-02-04r0 ACTIVE 2020-02-04T16:18:02.369859863Z
A fin de enumerar las configuraciones de API para una API específica en un proyecto, sigue estos pasos:
gcloud api-gateway api-configs list --api=API_ID --project=PROJECT_ID
Usa el proyecto, la API y los ID de configuración para obtener información detallada sobre la configuración de la API:
gcloud api-gateway api-configs describe CONFIG_ID \ --api=API_ID --project=PROJECT_ID
Actualiza una configuración de API
No puedes modificar una configuración de API existente sin actualizar sus etiquetas y su nombre visible.
Usa el siguiente gcloud
para actualizar una configuración de API existente:
--display-name
--update-labels
--clear-labels
--remove-labels
Por ejemplo:
gcloud api-gateway api-configs update CONFIG_ID \ --api=API_ID --project=PROJECT_ID \ --update-labels=a=1,b=2
Usa el siguiente comando para ver todas las opciones de actualización:
gcloud api-gateway api-configs update --help
Borra una configuración de API
Usa el siguiente comando de gcloud
para borrar una configuración de API existente:
gcloud api-gateway api-configs delete CONFIG_ID --api=API_ID --project=PROJECT_ID