arrow_back

API Gateway: Qwik Start

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

API Gateway: Qwik Start

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

GSP872

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

API Gateway te permite proporcionar acceso seguro a tus servicios a través de una API de REST bien definida que es coherente en todos los servicios, sin importar la implementación del servicio. Una API coherente:

  • Facilita a los desarrolladores de apps el consumo de tus servicios.
  • Te permite cambiar la implementación del servicio de backend sin afectar la API pública.
  • Te permite aprovechar las funciones de escalamiento, supervisión y seguridad integradas en Google Cloud.

En este lab, implementarás una API en API Gateway para proteger el tráfico a un servicio de backend.

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • El botón para abrir la consola de Google Cloud
    • El tiempo restante
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).

    El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
  3. De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.

    {{{user_0.username | "Username"}}}

    También puedes encontrar el nombre de usuario en el panel Detalles del lab.

  4. Haz clic en Siguiente.

  5. Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.

    {{{user_0.password | "Password"}}}

    También puedes encontrar la contraseña en el panel Detalles del lab.

  6. Haz clic en Siguiente.

    Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
  7. Haz clic para avanzar por las páginas siguientes:

    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.

Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar. Ícono del menú de navegación y campo de búsqueda

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

  2. Haz clic para avanzar por las siguientes ventanas:

    • Continúa en la ventana de información de Cloud Shell.
    • Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

Resultado:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.

Configura la región

Establece la región del proyecto para este lab:

gcloud config set compute/region {{{project_0.default_region | "REGION"}}}

Habilita las APIs necesarias

  1. En el Menú de navegación (Ícono del menú de navegación) de la consola de Cloud, haz clic en APIs y servicios > Biblioteca.

  2. Comienza a escribir “api gateway” en la barra de Búsqueda y, luego, selecciona el mosaico API Gateway API.

  3. Ahora, haz clic en el botón Habilitar en la siguiente pantalla.

Tarea 1: Implementa el backend de una API

API Gateway se posiciona frente a un servicio de backend implementado y controla todas las solicitudes entrantes. En este lab, API Gateway enruta las llamadas entrantes al backend de una Cloud Function llamado helloGET que contiene la función que se muestra a continuación:

/** * HTTP Cloud Function. * This function is exported by index.js, and is executed when * you make an HTTP request to the deployed function's endpoint. * * @param {Object} req Cloud Function request context. * More info: https://expressjs.com/en/api.html#req * @param {Object} res Cloud Function response context. * More info: https://expressjs.com/en/api.html#res */ exports.helloGET = (req, res) => { res.send('Hello World!'); };
  1. En la consola de Cloud, clona el repositorio de muestra de la Cloud Function:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
  1. Ve al directorio que contiene el código de muestra de Cloud Functions:
cd nodejs-docs-samples/functions/helloworld/helloworldGet
  1. Para implementar la función con un activador HTTP, ejecuta el siguiente comando en el directorio que contiene la función:
gcloud functions deploy helloGET --runtime nodejs20 --trigger-http --allow-unauthenticated --region {{{project_0.default_region | "REGION"}}}
  • Si se te solicita, ingresa Y para habilitar la API.
Nota: Si recibes una solicitud para permitir el comando de gcloud con tus credenciales, haz clic en Autorizar. Implementar la Cloud Function tardará algunos minutos. Espera a que se complete la operación antes de continuar. Advertencia: Si recibes un error como IamPermissionDeniedException, vuelve a ejecutar el comando anterior.

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar el backend de una API

Tarea 2: Prueba el backend de la API

  1. Cuando la función termine de implementarse, toma nota de la propiedad de la URL httpsTrigger o búscala con el siguiente comando:
gcloud functions describe helloGET --region {{{project_0.default_region | "REGION"}}}

El resultado debería ser similar a la URL que se muestra a continuación, en la que PROJECT_ID es un valor específico de tu proyecto.

  1. Configura tu PROJECT_ID como una variable:
export PROJECT_ID={{{project_0.project_id}}}
  1. Visita la URL para invocar la Cloud Function. Deberías ver el mensaje Hello World! como respuesta:
curl -v https://{{{project_0.default_region | "REGION"}}}-{{{project_0.project_id | "PROJECT_ID"}}}.cloudfunctions.net/helloGET

Haz clic en Revisar mi progreso para verificar el objetivo. Probar el backend de la API

Crea la definición de API

API Gateway usa una definición de API para enrutar llamadas al servicio de backend. Puedes usar una especificación de OpenAPI que contenga anotaciones especializadas para definir el comportamiento deseado de API Gateway. La especificación de OpenAPI para esta guía de inicio rápido contiene instrucciones de enrutamiento al backend de la Cloud Function.

  1. Desde Cloud Shell, vuelve a tu directorio principal:
cd ~
  1. Crea un archivo nuevo llamado openapi2-functions.yaml:
touch openapi2-functions.yaml
  1. Copia y pega el contenido de la especificación de OpenAPI que se muestra a continuación en el archivo recién creado:
# openapi2-functions.yaml swagger: '2.0' info: title: API_ID description description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: https://{{{project_0.default_region | "REGION"}}}-{{{project_0.project_id | "PROJECT_ID"}}}.cloudfunctions.net/helloGET responses: '200': description: A successful response schema: type: string
  1. Configura las siguientes variables de entorno:
export API_ID="hello-world-$(cat /dev/urandom | tr -dc 'a-z' | fold -w ${1:-8} | head -n 1)"
  1. Ejecuta los siguientes comandos para reemplazar las variables establecidas en el último paso en el archivo de especificación de OpenAPI:
sed -i "s/API_ID/${API_ID}/g" openapi2-functions.yaml sed -i "s/PROJECT_ID/$PROJECT_ID/g" openapi2-functions.yaml

Tarea 3: Crea una puerta de enlace

Ahora estás listo para crear e implementar una puerta de enlace en API Gateway.

  1. En la barra de búsqueda superior, ingresa API Gateway y selecciona esta opción.

  2. Haz clic en Crear puerta de enlace. Luego, en la sección APIs, haz lo siguiente:

  • Asegúrate de que la entrada Seleccionar una API esté configurada como Crear nueva API.
  • En Nombre visible, ingresa Hello World API.
  • Para ID de API, ejecuta el siguiente comando y obtén el ID de API una vez más. Luego, ingrésalo en el campo ID de API:
export API_ID="hello-world-$(cat /dev/urandom | tr -dc 'a-z' | fold -w ${1:-8} | head -n 1)" echo $API_ID
  1. En la sección Configuración de API, haz lo siguiente:
  • Asegúrate de que la entrada Seleccionar una configuración esté establecida en Crear una nueva configuración de API.
  • Haz lo siguiente para subir el archivo openapi2-functions.yaml que creaste anteriormente.
  1. En Cloud Shell, ejecuta el siguiente comando:
cloudshell download $HOME/openapi2-functions.yaml
  1. Haz clic en Descargar.
Nota: El archivo openapi2-functions.yaml ahora se descarga en tu máquina local.
  1. Selecciona Explorar y elige el archivo desde la ubicación de descarga del navegador:
  • Ingresa Hello World Config en el campo Nombre visible.
  • Asegúrate de que la entrada Seleccionar una cuenta de servicio esté configurada como Cuenta de servicio predeterminada de Compute Engine.
  1. En la sección Detalles de la puerta de enlace:
  • Ingresa Hello Gateway en el campo Nombre visible.
  • Establece el menú desplegable Ubicación en .
  1. Haz clic en Crear puerta de enlace.
Nota: La puerta de enlace tardará varios minutos en crearse (alrededor de 10). Para verificar el estado del proceso de creación y de implementación, puedes hacer clic en el ícono de Notificación en la barra de navegación principal para mostrar una notificación de estado, como se muestra en la imagen a continuación. Asegúrate de que el estado del ícono tenga una marca de verificación verde antes de continuar.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear una puerta de enlace

Prueba la implementación de tu API

Ahora puedes enviar solicitudes a tu API mediante la URL generada después de la implementación de tu puerta de enlace.

  1. En Cloud Shell, ingresa el siguiente comando para recuperar la GATEWAY_URL de la API recién creada alojada por API Gateway:
export GATEWAY_URL=$(gcloud api-gateway gateways describe hello-gateway --location {{{project_0.default_region | "REGION"}}} --format json | jq -r .defaultHostname)
  1. Ejecuta el siguiente comando para asegurarte de que la variable de entorno GATEWAY_URL esté configurada:
echo $GATEWAY_URL

Si no lo está, significa que tendrás que esperar más tiempo para que se implemente API Gateway.

  1. Ejecuta el siguiente comando curl y valida que la respuesta devuelta sea Hello World!:
curl -s -w "\n" https://$GATEWAY_URL/hello

Tarea 4: Protege el acceso mediante una clave de API

Para proteger el acceso al backend de la API, genera una clave de API asociada con tu proyecto y otorga a esa clave acceso para llamar a tu API. Para crear una clave de API, debes hacer lo siguiente:

  1. En la consola de Cloud, ve a API y servicios (APIs & Services) > Credenciales (Credentials).
  2. Selecciona Crear credenciales (Create credentials) y, luego, Clave de API (API Key) en el menú desplegable. Se mostrará la clave nueva en el cuadro de diálogo Se creó la clave de API.

Menú desplegable Crear credencial.

Haz clic en Revisar mi progreso para verificar el objetivo. Proteger el acceso mediante una clave de API

  1. Copia la clave de API del diálogo y, luego, haz clic en cerrar.

  2. Almacena el valor de la clave de API en Cloud Shell con el siguiente comando:

export API_KEY=REPLACE_WITH_COPIED_API_KEY

Ahora, habilita la compatibilidad con claves de API para tu servicio.

  1. En Cloud Shell, obtén el nombre del Managed Service que acabas de crear con el siguiente comando:
MANAGED_SERVICE=$(gcloud api-gateway apis list --format json | jq -r .[0].managedService | cut -d'/' -f6) echo $MANAGED_SERVICE
  1. Luego, con el nombre Managed Service de la API que acabas de crear, ejecuta este comando para habilitar la compatibilidad con claves de API para el servicio:
gcloud services enable $MANAGED_SERVICE

Modifica la especificación de OpenAPI para aprovechar la seguridad de la clave de API

En esta sección, modifica la configuración de la API implementada para aplicar una política de seguridad de validación de claves de API en todo el tráfico.

  1. Agrega las secciones security y securityDefinitions a un nuevo archivo llamado openapi2-functions2.yaml, como se muestra a continuación:
touch openapi2-functions2.yaml
  1. Copia y pega el contenido de la especificación de OpenAPI que se muestra a continuación en el archivo recién creado:
# openapi2-functions.yaml swagger: '2.0' info: title: API_ID description description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: https://{{{project_0.default_region | "REGION"}}}-{{{project_0.project_id | "PROJECT_ID"}}}.cloudfunctions.net/helloGET security: - api_key: [] responses: '200': description: A successful response schema: type: string securityDefinitions: api_key: type: "apiKey" name: "key" in: "query"
  1. Ejecuta los siguientes comandos para reemplazar las variables establecidas en el último paso en el archivo de especificación de OpenAPI:
sed -i "s/API_ID/${API_ID}/g" openapi2-functions2.yaml sed -i "s/PROJECT_ID/$PROJECT_ID/g" openapi2-functions2.yaml
  1. Descarga el archivo de especificación de API actualizado. Lo usarás para actualizar la configuración de Gateway en el siguiente paso:
cloudshell download $HOME/openapi2-functions2.yaml
  1. Haz clic en Descargar.

Tarea 5: Crea e implementa una nueva configuración de API en tu puerta de enlace existente

  1. Abre la página API Gateway en la consola de Cloud. (Haz clic en Menú de navegación > API Gateway).
  2. Selecciona tu API de la lista para ver los detalles.
  3. Selecciona la pestaña Puertas de enlace.
  4. Selecciona Hello Gateway en la lista de puertas de enlace disponibles.
  5. Haz clic en Editar en la parte superior de la página de puertas de enlace.
  6. En Configuración de API, cambia el menú desplegable a Crear una nueva configuración de API.
  7. Haz clic en Explorar en la casilla de entrada Subir un archivo de especificación de API y selecciona el archivo openapi2-functions2.yaml.
  8. Ingresa Hello Config en Nombre visible.
  9. Selecciona Qwiklabs User Service Account en Seleccionar una cuenta de servicio.
  10. Haz clic en Actualizar.
Nota: La operación de actualización de la puerta de enlace puede tardar unos minutos en completarse. Para verificar el estado del proceso de creación y de implementación, puedes hacer clic en el ícono de Notificación en la barra de navegación principal para mostrar una notificación de estado, como se muestra en la imagen a continuación. Asegúrate de que el estado del ícono tenga una marca de verificación verde antes de continuar.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear e implementar una nueva configuración de API en tu puerta de enlace existente

Tarea 6: Prueba llamadas con tu clave de API

  1. Para realizar una prueba con tu clave de API, ejecuta el siguiente comando:
export GATEWAY_URL=$(gcloud api-gateway gateways describe hello-gateway --location {{{project_0.default_region | "REGION"}}} --format json | jq -r .defaultHostname) curl -sL $GATEWAY_URL/hello

Deberías ver una respuesta similar al siguiente error, ya que no se proporcionó una clave de API con la llamada curl: UNAUTHENTICATED:Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.

  1. Ejecuta el siguiente comando curl con el parámetro de búsqueda key y usa la clave de API creada anteriormente para llamar a la API:
curl -sL -w "\n" $GATEWAY_URL/hello?key=$API_KEY

Si no tienes establecida la variable de entorno API_KEY, puedes obtener tu clave de API desde el menú de la izquierda navegando a APIs y servicios > Credenciales. La clave estará disponible en la sección Claves de API.

La respuesta que devuelve la API ahora debería ser Hello World!.

Nota: Es posible que debas ejecutar este comando más de una vez para obtener el resultado deseado.

Haz clic en Revisar mi progreso para verificar el objetivo. Probar llamadas con tu clave de API

¡Felicitaciones!

Protegiste correctamente el backend de una API con API Gateway. Ahora puedes comenzar a integrar nuevos clientes de API mediante la generación de claves de API adicionales.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 9 de octubre de 2024

Prueba más reciente del lab: 9 de octubre de 2024

Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.