Llama a las APIs desde un proyecto de Google Cloud

1. Antes de comenzar

En este codelab, se muestra cómo crear un proyecto de Google Cloud y, luego, llamar a las APIs de Google Cloud desde ese proyecto.

Requisitos previos

  • Otorga la capacidad de navegar por la consola de Google Cloud.

Qué aprenderás

  • Cómo crear un proyecto de Google Cloud
  • Cómo configurar una cuenta de facturación
  • Cómo configurar Cloud Shell
  • Cómo habilitar una API
  • Cómo autorizar una API con una clave de API
  • Cómo autorizar una API con una cuenta de servicio

Requisitos

2. Prepárate

En esta sección, se muestra cómo crear un proyecto de Google Cloud, configurar una cuenta de facturación y configurar Cloud Shell.

Crea un proyecto de Google Cloud y configura una cuenta de facturación

  1. Accede a la consola de Cloud y selecciona o crea un proyecto.

La API de Google Cloud

Panel del proyecto nuevo

Panel New Project que muestra los campos Project name, Organization y Location

Recuerda el ID del proyecto, que se muestra en el campo Nombre del proyecto. El ID es un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya está en uso) y se mencionará más adelante en este codelab como PROJECT_ID.

  1. A continuación, habilita la facturación en la consola de Cloud para usar los recursos de Google Cloud.

Aunque este codelab no debería costar mucho, sigue las instrucciones de la sección Realiza una limpieza para cerrar recursos y evitar costos más allá de este codelab. Ten en cuenta que los usuarios nuevos de Google Cloud son aptos para una prueba gratuita de$300.

Configura Cloud Shell

En este codelab, usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud. Cloud Shell es una máquina virtual basada en Debian cargada con todas las herramientas para desarrolladores que necesitas. Ofrece un directorio principal persistente de 5 GB, que mejora considerablemente el rendimiento de la red y la autenticación. Esto significa que todo lo que necesitas para este codelab es un navegador.

Para activar Cloud Shell desde la consola de Cloud, haz lo siguiente:

  1. Haz clic en a8460e837e9f5fda.png Activar Cloud Shell.

El aprovisionamiento y la conexión al entorno puede tardar unos minutos.

Activar Cloud Shell.

Cloud Shell muestra el símbolo de la línea de comandos.

Una vez que te conectes a Cloud Shell, deberías ver que ya estás autenticado y que el proyecto ya está configurado con tu PROJECT_ID.

  1. Genera una lista de cuentas con credenciales:
gcloud auth list

Deberías ver este resultado:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. Para ver una lista de tus proyectos, ingresa este comando.
gcloud config list project

Deberías ver este resultado:

[core]
project = <PROJECT_ID>

Si, por algún motivo, el proyecto no está configurado, ejecuta este comando para configurarlo.

gcloud config set project <PROJECT_ID>

El PROJECT_ID es el ID que usaste en los pasos de configuración. También puedes buscarlo en el panel de la consola de Cloud:

Panel de información del proyecto que muestra el ID del proyecto.

Cloud Shell también establece algunas variables de entorno de forma predeterminada, lo que puede resultar útil cuando ejecutes comandos futuros.

  1. Para ver el ID del proyecto, ingresa el siguiente comando.
echo $GOOGLE_CLOUD_PROJECT

Deberías ver el siguiente resultado:

<PROJECT_ID>
  1. Establece la zona predeterminada y la configuración del proyecto.
gcloud config set compute/zone us-central1-f

Puedes elegir una variedad de zonas diferentes. Para obtener más información, consulta Regiones y zonas.

3. Llama a una API desde un proyecto

En este codelab, se muestra cómo usar una API de ejemplo (la API de Natural Language) para encontrar entidades (como personas, lugares y eventos) en un texto, y cómo aproximar la opinión (nivel de preferencia) de ese texto. Aprenderás a hacer lo siguiente:

  • Habilita las API de Google Cloud
  • Obtén autorización para la API con claves de API y cuentas de servicio.
  • Llama a la API con curl y bibliotecas cliente.

Habilitar una API

  1. Selecciona APIs y Servicios en el menú principal de la consola de Cloud.

El menú principal de la consola de Cloud muestra las APIs y Servicios.

  1. Selecciona + HABILITAR APIS Y SERVICIOS en la parte superior de la pantalla.

HABILITAR APIS Y SERVICIOS.

  1. En este punto, puedes filtrar y explorar las APIs o ir directamente a una API con el cuadro de búsqueda. Busca Natural Language y selecciona API de Cloud Natural Language.

Panel de la API de Cloud Natural Language que muestra los botones HABILITAR y PROBAR ESTA API.

  1. Haz clic en PROBAR ESTA API.

Si no se muestra el botón PROBAR ESTA API, haz clic en uno de los métodos que se muestran para probarlo.

Crea una clave de API

Debido a que usas curl para enviar una solicitud a la API de Natural Language, debes generar una clave de API para pasar tu URL de solicitud.

  1. En la consola de Cloud, selecciona Menú de navegación > APIs y Servicios > Credenciales.

Menú de navegación que muestra APIs y Servicios y opciones de credenciales.

  1. Haz clic en CREAR CREDENCIALES y, luego, selecciona Clave de API:

Panel Credentials que muestra las opciones CREATE CREDENTIALS y API key.

  1. Copia la clave de API generada y, luego, haz clic en Cerrar.

Usa la clave de API para llamar a la API

  1. En la línea de comandos de Cloud Shell, exporta tu clave de API.
export API_KEY=<YOUR_API_KEY>

Reemplaza <YOUR_API_KEY> por la clave que generaste anteriormente.

  1. Crea una solicitud para la API en el editor de Cloud Shell o con un editor de Linux, como Vim o Emacs. Puedes encontrar los detalles de los parámetros en Método: documentes.analyzeEntities. Guarda el resultado en un archivo llamado request.json:
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. Llama a la API con la información solicitada.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. Vuelve a ejecutar el comando, redirecciona el resultado a un archivo y examina el resultado. Los detalles del resultado del archivo JSON también se encuentran en el Método: documentes.analyzeEntities.
  2. Para cambiar el texto que se analizará en el archivo request.json, reemplaza el valor content por el texto que quieras.

4. Autorizar con una cuenta de servicio

A menudo, se prefieren las cuentas de servicio en lugar de las claves de API, ya que proporcionan autenticación y autorización. Puedes considerar las cuentas de servicio como las direcciones de correo electrónico de tu app.

  1. Regresa a la sección Credenciales del campo API y Menú Servicios
  2. Selecciona Crear credenciales, pero esta vez, selecciona Cuenta de servicio.

Panel de detalles de la cuenta de servicio

  1. Proporciona un Nombre de cuenta de servicio que describa su propósito, como "Natural Language Service Account". El sistema sugiere un ID. También puedes agregar una descripción. A medida que aprendes más sobre las cuentas de servicio, debes proporcionarle acceso a los proyectos y otorgar a los usuarios acceso a la cuenta de servicio, pero, por ahora, solo debes hacer clic en Listo para crear la cuenta de servicio.
  2. Para crear un par de claves que usará la cuenta de servicio, haz clic en d489bd059474ae59.png para editar la cuenta de servicio.

Panel de cuentas de servicio que muestra una lista de cuentas

Se mostrarán los detalles de tu cuenta de servicio.

Panel de detalles de la cuenta de servicio que muestra los detalles de la cuenta de servicio de Natural Language.

  1. Copia la dirección de correo electrónico de la cuenta de servicio y regresa a Cloud Shell.
  2. En Cloud Shell, crea un par de claves para tu cuenta de servicio y configura una variable de entorno para que apunte a ella:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

Google Cloud usa esta variable de entorno para encontrar las credenciales, por lo que no es necesario incluirlas en la llamada a la API.

  1. Ahora, puedes llamar a la API con el siguiente comando:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

El resultado debería ser el mismo que antes.

Muchas APIs tienen bibliotecas cliente extensas para extraer estos detalles. Para obtener más información sobre las bibliotecas cliente, consulta Bibliotecas cliente de Cloud. También puedes leer la documentación de las APIs que usas para ver qué bibliotecas cliente están disponibles para ellas.

5. Limpia

No se recomienda tener una clave de API sin restricciones para los proyectos. Si alguien obtiene acceso al archivo, podrá usarlo sin necesidad de autenticación.

Para borrar esta clave de API, sigue estos pasos:

  1. Haz clic en f6b6844bf5688982.png Menú de navegación > APIs y Servicios > Credenciales.
  2. En Claves de API, selecciona la clave que deseas borrar y, luego, haz clic en 247adf2e1d1eae4b.pngBorrar.
  3. Del mismo modo, en lugar de preocuparte por que la clave privada de tu cuenta de servicio no esté protegida, en Cuentas de servicio, selecciona la cuenta de servicio que deseas borrar y haz clic en 247adf2e1d1eae4b.pngBorrar.

6. Felicitaciones

¡Felicitaciones! Aprendiste a crear un proyecto de Google Cloud y a llamar a una API desde el proyecto.