Comenzar a usar Endpoints en Cloud Functions

Este instructivo te muestra cómo configurar e implementar una API de muestra y el Proxy de servicio extensible (ESP) en una instancia del entorno flexible de App Engine. La API de REST del código de muestra se describe mediante la Especificación de OpenAPI. El instructivo también te muestra cómo crear una clave de API y usarla en solicitudes a la API.

Para obtener una descripción general de Cloud Endpoints, consulta Acerca de Endpoints y Arquitectura de Endpoints.

Lista de tareas

Utiliza la siguiente lista de tareas de alto nivel a medida que avanzas en el instructivo. Todas las tareas son necesarias para enviar solicitudes a la API con éxito.

  1. Configura un proyecto de Cloud Platform, instala el software requerido y únete a los Programas de acceso anticipado. Consulta Antes de comenzar.
  2. Implementa Cloud Functions como el backend de tu API.
  3. Configura el archivo openapi-functions.yaml para que represente a tu API y la enrute a Cloud Functions.
  4. Implementa la configuración de Endpoints para crear un servicio de Cloud Endpoints. Consulta Implementar la configuración de Endpoints.
  5. Implementa el contenedor del proxy de Endpoints en Cloud Run.
  6. Configura la IAM para permitir que el proxy de Endpoints llame a Cloud Functions.
  7. Envía una solicitud a la API. Consulta Enviar una solicitud a la API.
  8. Realiza un seguimiento de la actividad de la API. Consulta Realizar un seguimiento de la actividad de la API.
  9. Evita que se apliquen cargos a tu cuenta de Google Cloud Platform. Consulta Limpiar.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Selecciona o crea un proyecto de GCP.

    Ir a la página Administrar recursos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Recuerda el ID del proyecto porque lo necesitarás más adelante.
  5. Necesitas una aplicación para enviar solicitudes a la API de muestra.

    • Usuarios de Linux y Mac: este instructivo proporciona un ejemplo del uso de curl, que suele venir instalado en el sistema operativo. Si no tienes curl, puedes descargarlo de la página Actualizaciones y descargas de curl.
    • Usuarios de Windows: este instructivo proporciona un ejemplo del uso de Invoke-WebRequest, que es compatible con PowerShell 3.0 y versiones posteriores.
  6. Descargar el SDK de Google Cloud.
  7. Actualiza el SDK de Cloud y luego instala los componentes de Endpoints.
    gcloud components update
  8. Asegúrate de que el SDK de Cloud (gcloud) tenga autorización para acceder a tus datos y servicios en Google Cloud Platform:
    gcloud auth login
    Se abrirá una nueva pestaña del navegador y se te solicitará que elijas una cuenta.
  9. Configura el proyecto predeterminado como el ID de tu proyecto.
    gcloud config set project [YOUR_PROJECT_ID]

    Reemplaza [YOUR_PROJECT_ID] con el ID de tu proyecto. Si tienes otros proyectos de Cloud Platform y quieres usar gcloud para administrarlos, consulta Administrar las configuraciones del SDK de Cloud.

Implementar Cloud Functions

NodeJS

  

Configurar Endpoints

El código de muestra incluye el archivo de configuración de OpenAPI openapi-functions.yaml, el cual se basa en la Especificación de OpenAPI v2.0.

Para configurar Endpoints, haz lo siguiente:
  1. En el directorio del código de muestra, abre el archivo de configuración openapi-functions.yaml.

    host: gcf.endpoints.YOUR-PROJECT-ID.cloud.goog
    paths:
      /users/{user}:
        get:
          x-google-backend:
            address: https://REGION-YOUR-PROJECT-ID.cloudfunctions.net/getUser
          ...
        post:
          x-google-backend:
            address: https://REGION-YOUR-PROJECT-ID.cloudfunctions.net/createUser
          ...
    

    Ten en cuenta lo siguiente:

    • En la muestra de configuración, se muestran las líneas cercanas al campo host, el cual debes modificar. Para implementar openapi-functions.yaml en Cloud Endpoints, se requiere el documento completo de OpenAPI.
    • OpenAPI es una especificación independiente del lenguaje. Para mayor comodidad, el mismo archivo openapi-functions.yaml se encuentra en la muestra de introducción en el repositorio correspondiente a cada lenguaje en GitHub.
  2. En la línea con el campo host, reemplaza YOUR-PROJECT-ID con el ID de tu proyecto de Cloud.
  3. Reemplaza YOUR-PROJECT-ID con el ID de tu proyecto de Cloud y REGION con la región de GCP en la que están implementadas tus funciones.

Cloud Endpoints utiliza el texto configurado en el campo host como nombre del servicio. Cuando implementas la API, se crea automáticamente una entrada de con un nombre en el formato gcf.endpoints.YOUR-PROJECT-ID.cloud.goog.

Para obtener más información acerca de los campos en el documento de OpenAPI que requiere Cloud Endpoints, consulta Configurar Endpoints.

Implementar la configuración de Endpoints

Para implementar la configuración de Endpoints, usa el comando gcloud endpoints services deploy. Este comando utiliza la Infraestructura de servicios, un servicio de infraestructuras de GCP que administra otros servicios y API, incluidos aquellos creados con Cloud Endpoints.

Para implementar la configuración de Endpoints, haz lo siguiente:
  1. Asegúrate de estar en el directorio endpoints/getting-started.
  2. Invoca el comando siguiente:
    gcloud endpoints services deploy openapi-functions.yaml

    Esto crea un servicio nuevo de Cloud Endpoints con el nombre que especificaste en el campo host del archivo openapi-functions.yaml (si ya no existe). El servicio se actualiza según tu documento de OpenAPI.

    Mientras se crea y configura el servicio, Service Management exporta una gran cantidad de información a la terminal. Puedes ignorar sin problema las advertencias que indican que las rutas en openapi-functions.yaml no requieren una clave de API. Cuando el proceso finalice con éxito, verás una línea como la siguiente que muestra el ID de configuración del servicio y el nombre del servicio:

    Service Configuration [2019-01-04-r0] uploaded for service [gcf.endpoints.PROJECT_ID.cloud.goog]
    

En el ejemplo anterior, 2019-01-04-r0 es el ID de la configuración de servicio y gcf.endpoints.PROJECT_ID.cloud.goog es el nombre del servicio. El ID de configuración del servicio consiste en una marca de fecha seguida de un número de revisión. Si implementas openapi-functions.yaml otra vez el mismo día, el número de revisión aumenta en el ID de configuración del servicio.

Si recibes un mensaje de error, consulta Solucionar problemas en la implementación de la configuración de Endpoints.

Consulta Implementar la configuración de Endpoints para obtener más información.

Implementar el proxy de Endpoints

gcloud alpha run deploy endpoints-proxy \
    --image="gcr.io/serverless-api-mgmt/serverless-proxy-experimental" \
    --set-env-vars="ESP_ARGS=--service=gcf.endpoints.[YOUR_PROJECT_ID].cloud.goog --rollout_strategy=managed --enable-backend-routing"

Si no obtuviste una respuesta exitosa, consulta Implementar Cloud Run.

Configurar IAM

Enviar solicitudes a la API

Ahora que el servicio se ejecuta en App Engine, puedes enviarle solicitudes.

Enviar la solicitud

Linux o Mac OS

  1. Crea un entorno variable para la URL de tu proyecto de App Engine. Reemplaza [YOUR_PROJECT_ID] con el ID de tu proyecto de GCP:

    export ENDPOINTS_HOST=https://gcf.endpoints.[YOUR_PROJECT_ID].cloud.goog

  2. Envía una solicitud HTTP usando la variable de entorno ENDPOINTS_HOST que configuraste anteriormente:

    curl "${ENDPOINTS_HOST}/echo"
    

Si no obtuviste una respuesta correcta, consulta Solucionar problemas de errores en las respuestas.

Acabas de implementar y probar una API en Cloud Endpoints.

Realizar un seguimiento de la actividad de la API

  1. Revisa los grafos de actividad de tu API en la página de Endpoints.
    Ver los grafos de actividad de Endpoints
    La solicitud puede tardar unos momentos en reflejarse en los grafos.
  2. Revisa los registros de solicitud de tu API en la página Visor de registros.
    Ver los registros de solicitud de Endpoints

Crear un portal de desarrolladores para la API

Puedes utilizar el Portal de Cloud Endpoints para crear un portal de desarrolladores, un sitio web en el que puedes interactuar con la API de muestra. Para obtener más información, consulta Descripción general del Portal de Cloud Endpoints.

Limpiar

Para evitar generar cargos en tu cuenta de GCP por los recursos que usaste en esta guía de inicio rápido, haz lo siguiente:

Consulta Borrar una API y las instancias relacionadas para obtener información acerca de cómo detener los servicios que se usan en este instructivo.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Cloud Endpoints con OpenAPI
Si necesitas ayuda, visita nuestra página de asistencia.