Gestionar APIs de Cloud y bibliotecas de cliente de Cloud en Cloud Code para VS Code

Para acceder a los Google Cloud productos y servicios de forma programática, se usan las APIs de Cloud. Estas APIs exponen una interfaz REST JSON sencilla. La forma recomendada de acceder a las APIs de Cloud es usar las bibliotecas de cliente de Cloud.

Cloud Code facilita la adición de las bibliotecas de cliente de Cloud para las APIs de Cloud y el lenguaje que estés usando en tu proyecto. En la misma vista, puedes buscar ejemplos de cada API e incorporarlos fácilmente a tu aplicación.

Consultar APIs de Cloud

Para explorar todas las APIs de Google Cloud disponibles, sigue estos pasos:

  1. Haz clic en Cloud Code y, a continuación, despliega la sección APIs de Cloud.

    La vista APIs de Cloud agrupa las APIs de Cloud por categoría.

  2. Para ver los detalles de una API, haz clic en su nombre. Se muestran detalles como el nombre del servicio, el estado, las instrucciones de instalación de las bibliotecas de cliente, la documentación y los ejemplos de código.

Habilitar APIs de Cloud

Para habilitar las APIs de Cloud en un proyecto mediante la página de detalles de la API, sigue estos pasos:

  1. En la página de detalles de la API de Cloud, elige el proyecto en el que quieres habilitar la API de Cloud.
  2. Haz clic en Habilitar API. Una vez que la API esté habilitada, se mostrará un mensaje para confirmar el cambio.

Añadir bibliotecas de cliente a un proyecto

Además de explorar y habilitar APIs de Cloud con Cloud Code, puedes añadir una biblioteca de cliente específica de un lenguaje a tu proyecto.

Para instalar una biblioteca de cliente, sigue las instrucciones de la página de detalles de la API correspondiente a tu lenguaje.

Usar ejemplos de la API

Puedes buscar y usar ejemplos de código de cada API en el navegador de APIs.

  1. Haz clic en Cloud Code y, a continuación, despliega la sección APIs de Cloud.

  2. Para abrir la vista de detalles, haz clic en el nombre de una API.

  3. Para ver ejemplos de código de la API, haga clic en Ejemplos de código.

  4. Para filtrar la lista de ejemplos, escribe texto para buscar o elige un lenguaje de programación de la lista Idioma.

  5. Para ver una muestra, haz clic en su nombre. También puedes copiar el ejemplo en el portapapeles o verlo en GitHub.

Configurar la autenticación

Una vez que hayas habilitado las APIs necesarias y añadido las bibliotecas cliente, tendrás que configurar tu aplicación para que se autentique correctamente. La configuración depende del tipo de desarrollo y de la plataforma en la que se ejecute.

Una vez que hayas completado los pasos de autenticación, tu aplicación podrá autenticarse y estará lista para implementarse.

Desarrollo local

Equipo local

Si has iniciado sesión en tu IDE, Cloud Code definirá tus credenciales predeterminadas de la aplicación (ADC) y podrás saltarte este paso. Google Cloud Si has iniciado sesión en Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC ejecutando el siguiente comando:

gcloud auth login --update-adc

minikube

  1. Si has iniciado sesión en tu IDE, Cloud Code definirá tus credenciales predeterminadas de la aplicación (ADC) y podrás saltarte este paso. Google Cloud Si has iniciado sesión en Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC ejecutando el siguiente comando:

    gcloud auth login --update-adc
  2. Inicia minikube ejecutando minikube start --addons gcp-auth. Este comando monta tu ADC en tus pods. Para obtener información detallada sobre la autenticación de minikube con Google Cloud, consulta la documentación de autenticación de GCP de minikube.

Otros clústeres de K8s locales

  1. Si has iniciado sesión en tu IDE, Cloud Code definirá tus credenciales predeterminadas de la aplicación (ADC) y podrás saltarte este paso. Google Cloud Si has iniciado sesión en Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC ejecutando el siguiente comando:

    gcloud auth login --update-adc
  2. Para asegurarte de que las bibliotecas de cliente de Google Cloud puedan encontrar tus credenciales, monta tu directorio local ~/.config/gcloud en tus pods de Kubernetes editando los manifiestos de implementación.
  3. Define tu Google Cloud ID de proyecto como variable de entorno con el nombre GOOGLE_CLOUD_PROJECT.

Ejemplo de configuración de un pod de Kubernetes:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
  labels:
    name: my-app
spec:
  containers:
  - name: my-app
    image: gcr.io/google-containers/busybox
    ports:
      - containerPort: 8080
    env:
    - name: GOOGLE_CLOUD_PROJECT
      value: my-project-id
    volumeMounts:
      - mountPath: /root/.config/gcloud
        name: gcloud-volume
  volumes:
    - name: gcloud-volume
      hostPath:
        path: /path/to/home/.config/gcloud

Cloud Run

Si has iniciado sesión en tu IDE, Cloud Code definirá tus credenciales predeterminadas de la aplicación (ADC) y podrás saltarte este paso. Google Cloud Si has iniciado sesión en Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC ejecutando el siguiente comando:

gcloud auth login --update-adc

Desarrollo local con APIs que requieren una cuenta de servicio

Algunas APIs, como la API Cloud Translation, requieren una cuenta de servicio con los permisos adecuados para autenticar tus solicitudes. Para obtener más información, consulta el artículo sobre cómo crear y gestionar cuentas de servicio. Para ver una guía de inicio rápido que usa una cuenta de servicio, consulta Usar las bibliotecas de cliente de Cloud en Cloud Code.

  1. Para abrir una terminal, haz clic en Terminal > Nueva terminal.

  2. Crea una cuenta de servicio para autenticar tus solicitudes a la API:

    gcloud iam service-accounts create \
    SERVICE_ACCOUNT_ID \
    --project PROJECT_ID

    Sustituye los siguientes valores:

    • SERVICE_ACCOUNT_ID: el ID de la cuenta de servicio
    • PROJECT_ID: el ID del proyecto

    Para encontrar estos IDs, en Google Cloud, haz clic en el menú de navegación situado en la parte superior izquierda de la pantalla, coloca el puntero sobre IAM y administración y haz clic en Cuentas de servicio.

    En la columna Correo se muestra el correo único SERVICE_ACCOUNT_ID y PROJECT_ID de cada una de sus cuentas de servicio con el siguiente formato:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    Por ejemplo, una dirección de correo de cuenta de servicio my-service-account@my-project.iam.gserviceaccount.com tiene los siguientes valores:

    • SERVICE_ACCOUNT_ID: my-service-account
    • PROJECT_ID: my-project
  3. Asigna el rol adecuado a tu cuenta de servicio. El siguiente comando de ejemplo otorga el rol Usuario de la API Cloud Translation. Para determinar el rol que se debe asignar, consulta la documentación de la API de Cloud que estés usando.

    gcloud projects \
    add-iam-policy-binding \
    PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \
    --role='roles/cloudtranslate.user'
  4. Crea una clave de cuenta de servicio:

    gcloud iam service-accounts keys \
    create key.json --iam-account \
    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  5. Define la clave como tus credenciales predeterminadas:

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. Opcional: Para permitir que los usuarios suplanten la identidad de la cuenta de servicio, ejecuta el comando gcloud iam service-accounts add-iam-policy-binding para asignar a un usuario el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Sustituye los siguientes valores:

    • USER_EMAIL: la dirección de correo del usuario

Desarrollo remoto

GKE

En función del ámbito de tu proyecto, puedes elegir cómo autenticar los servicios en GKE: Google Cloud

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de que usas la cuenta de servicio que usa GKE de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine, y que Permisos de acceso está configurado en Permitir el acceso completo a todas las APIs de Cloud (ambos ajustes están disponibles en la sección Grupos de nodos > Seguridad). Como la cuenta de servicio de Compute Engine se comparte entre todas las cargas de trabajo implementadas en tu nodo, este método asigna permisos en exceso y solo se debe usar en entornos de desarrollo.
      • Asegúrate de que Workload Identity no esté habilitado en tu clúster (en la sección Clúster > Seguridad).
    2. Asigna los roles necesarios a tu cuenta de servicio:
      • Si estás intentando acceder a un secreto, sigue los pasos específicos de Secret Manager para configurar los roles necesarios en tu cuenta de servicio.
      • Si usas la cuenta de servicio predeterminada de Compute Engine, es posible que ya se hayan aplicado los roles de gestión de identidades y accesos correctos.
      • Para ver una lista de los tipos de roles de gestión de identidades y accesos y los roles predefinidos que puedes conceder a las identidades, consulta la guía sobre roles. Para ver los pasos que debes seguir para conceder los roles, consulta Conceder, cambiar y revocar el acceso a los recursos.
  • (Recomendado para producción)
    1. Configura tu clúster y tu aplicación de GKE con Workload Identity para autenticar Google Cloud servicios en GKE. De esta forma, se asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Configura tu despliegue de Kubernetes para que haga referencia a la cuenta de servicio de Kubernetes. Para ello, define el campo .spec.serviceAccountName en el archivo YAML de tu despliegue de Kubernetes. Si estás trabajando en una aplicación creada a partir de una aplicación de ejemplo de Cloud Code, este archivo se encuentra en la carpeta kubernetes-manifests.
    3. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concédelos a la cuenta de servicio de Google que estés usando para desarrollar tu aplicación:

Cloud Run

  1. Para crear una cuenta de servicio única para desplegar tu aplicación de Cloud Run, ve a la página Cuentas de servicio y selecciona el proyecto en el que se almacena tu secreto.

    Ir a la página Cuentas de servicio

  2. Haz clic en Crear cuenta de servicio.
  3. En el cuadro de diálogo Crear cuenta de servicio, escribe un nombre descriptivo para la cuenta de servicio.
  4. Cambie el ID de cuenta de servicio por un valor único y reconocible y, a continuación, haga clic en Crear.
  5. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concede los roles, haz clic en Continuar y, a continuación, en Hecho.
  6. Para añadir tu cuenta de servicio a la configuración de implementación, sigue estos pasos:
    1. En la barra de estado de Cloud Code, elige el comando Cloud Run: Deploy (Cloud Run: desplegar).
    2. En la interfaz de usuario de Cloud Run Deployment, en Revision Settings (Configuración de la revisión), en el campo Service Account (Cuenta de servicio), especifica tu cuenta de servicio.
    Sección de ajustes avanzados de la revisión desplegada en Cloud Run: campo Implementar y Cuenta de servicio rellenado con el nombre de la cuenta de servicio con el formato nombre-de-cuenta-de-servicio@nombre-de-proyecto.iam.gserviceaccount.com

Cloud Run

En función del ámbito de tu proyecto, puedes elegir cómo autenticar los servicios en GKE: Google Cloud

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de que usas la cuenta de servicio que GKE usa de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine, y de que Permisos de acceso esté configurado como Permitir el acceso completo a todas las APIs de Cloud (ambos ajustes se encuentran en la sección Grupos de nodos > Seguridad). Como la cuenta de servicio de Compute Engine se comparte entre todas las cargas de trabajo implementadas en tu nodo, este método asigna permisos en exceso y solo debe usarse en entornos de desarrollo.
      • Asegúrate de que Workload Identity no esté habilitado en tu clúster (en la sección Clúster > Seguridad).
    2. Asigna los roles necesarios a tu cuenta de servicio:
      • Si intentas acceder a un secreto, sigue estos pasos específicos de Secret Manager para configurar los roles necesarios en tu cuenta de servicio.
      • Si usas la cuenta de servicio predeterminada de Compute Engine, es posible que ya se hayan aplicado los roles de gestión de identidades y accesos correctos.
      • Para ver una lista de los tipos de roles de gestión de identidades y accesos y los roles predefinidos que puedes asignar a las identidades, consulta la guía sobre los roles. Para saber cómo asignar los roles, consulta Conceder, cambiar y revocar el acceso a los recursos.
  • (Recomendado para producción)
    1. Configura tu clúster y tu aplicación de GKE con Workload Identity para autenticar Google Cloud servicios en GKE. De esta forma, se asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Para añadir tu cuenta de servicio a la configuración de implementación, sigue estos pasos:
      1. En la barra de estado de Cloud Code, elige el comando Cloud Run: Deploy (Cloud Run: desplegar).
      2. En la interfaz de usuario de Cloud Run Deployment, en Revision Settings (Configuración de la revisión), en el campo Service Account (Cuenta de servicio), especifica tu cuenta de servicio.
      Sección de ajustes avanzados de la revisión desplegada en Cloud Run: campo Desplegar y Cuenta de servicio rellenado con el nombre de la cuenta de servicio de Kubernetes con el formato service-account-name@project-name.iam.gserviceaccount.com
    3. Si el Google Cloud servicio al que intentas acceder requiere roles adicionales, concédelos a la cuenta de servicio de Google que estés usando para desarrollar tu aplicación:

Desarrollo remoto con permisos de Secret Manager habilitados

Si desarrollas de forma remota, usas una cuenta de servicio para la autenticación y tu aplicación usa secretos, debes completar algunos pasos más además de las instrucciones de desarrollo remoto. Con estos pasos, se asigna a tu cuenta de servicio de Google el rol necesario para acceder a un secreto concreto de Secret Manager:

  1. Haga clic en Cloud Code y, a continuación, despliegue la sección Secret Manager.

    Secret Manager en Cloud Code abierto con dos secretos

  2. Haz clic con el botón derecho en el secreto y selecciona Editar permisos en la consola de Cloud. Se abrirá la página de configuración de Secret Manager para ese secreto en tu navegador web.

    Se ha hecho clic con el botón derecho en un secreto del panel Secret Manager

  3. En la consola, haz clic en Permisos y, a continuación, en Añadir. Google Cloud

  4. En el campo Principales nuevas, introduce el nombre de tu cuenta de servicio.

  5. En el campo Selecciona un rol, elige el rol Permiso para acceder a los recursos de Secret Manager.

  6. Haz clic en Guardar.

    Tu cuenta de servicio ahora tiene permiso para acceder a este secreto concreto.

Obtener asistencia

Para enviar comentarios o informar de problemas, visita GitHub o haz una pregunta en Stack Overflow.