Administrar las API de Cloud y las bibliotecas cliente de Cloud en Cloud Code para VS Code

Para acceder a los productos y servicios de Google Cloud de manera programática, usa las API de Cloud. Estas API exponen una interfaz JSON REST simple. La forma recomendada de acceder a las API de Cloud es usar las bibliotecas cliente de Cloud.

Cloud Code facilita la adición de tu proyecto a las bibliotecas cliente de Cloud para las API de Cloud y el lenguaje que usas. En la misma vista, puedes buscar muestras para cada API e incorporar muestras fácilmente en tu aplicación.

Explora las API de Cloud

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

  1. Haz clic en Cloud Code y, luego, expande la sección API de Cloud.

    La vista de las API de Cloud agrupa las API 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 para las bibliotecas cliente, la documentación y las muestras de código.

Habilita las API de Cloud

Si deseas habilitar las API de Cloud para un proyecto que usa 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 para el que deseas habilitar la API de Cloud.
  2. Haga clic en Habilitar API. Después de habilitar la API, se muestra un mensaje para confirmar el cambio.

Agrega bibliotecas cliente al proyecto

Además de explorar y habilitar las API de Cloud mediante Cloud Code, también puedes agregar una biblioteca cliente específica del lenguaje al proyecto.

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

Usa muestras de API

Puedes buscar y usar muestras de código para cada API en el navegador de la API.

  1. Haz clic en Cloud Code y, luego, expande la sección API de Cloud.

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

  3. Para ver muestras de código de la API, haz clic en Muestras de código.

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

  5. Para ver una muestra, haz clic en el nombre de la muestra. También hay opciones para copiar la muestra en el portapapeles o verla en GitHub.

Configura la autenticación

Una vez que hayas habilitado las API necesarias y agregado las bibliotecas cliente necesarias, debes configurar tu aplicación para que se autentique de forma correcta. La configuración depende del tipo de desarrollo y de la plataforma en la que se ejecute.

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

Desarrollo local

Máquina local

Si accediste a Google Cloud en tu IDE, Cloud Code establece tus credenciales predeterminadas de la aplicación (ADC) y puedes omitir este paso. Si accediste a Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y deja que las bibliotecas cliente de Google Cloud se autentiquen mediante ADC mediante la ejecución del siguiente comando:

gcloud auth login --update-adc

minikube

  1. Si accediste a Google Cloud en tu IDE, Cloud Code establece tus credenciales predeterminadas de la aplicación (ADC) y puedes omitir este paso. Si accediste a Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y deja que las bibliotecas cliente de Google Cloud se autentiquen mediante ADC mediante la ejecución del siguiente comando:

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

Otros clústeres locales de K8s

  1. Si accediste a Google Cloud en tu IDE, Cloud Code establece tus credenciales predeterminadas de la aplicación (ADC) y puedes omitir este paso. Si accediste a Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y deja que las bibliotecas cliente de Google Cloud se autentiquen mediante ADC mediante la ejecución del siguiente comando:

    gcloud auth login --update-adc
  2. Edita los manifiestos de implementación para asegurarte de que las bibliotecas cliente de Google Cloud puedan encontrar tus credenciales y activar el directorio ~/.config/gcloud local en los pods de Kubernetes.
  3. Establece tu ID del proyecto de Google Cloud como una variable de entorno llamada GOOGLE_CLOUD_PROJECT.

Ejemplo de configuración de 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 accediste a Google Cloud en tu IDE, Cloud Code establece tus credenciales predeterminadas de la aplicación (ADC) y puedes omitir este paso. Si accediste a Google Cloud fuera de tu IDE (por ejemplo, con la CLI de gcloud), configura tu ADC y deja que las bibliotecas cliente de Google Cloud se autentiquen mediante ADC mediante la ejecución del siguiente comando:

gcloud auth login --update-adc

Desarrollo local con API que requieren una cuenta de servicio

Algunas API, como la API de Cloud Translation, requieren una cuenta de servicio con los permisos adecuados para autenticar tus solicitudes. Para obtener más información, consulta Crea y administra cuentas de servicio. Para obtener una guía de inicio rápido que usa una cuenta de servicio, consulta Usa las bibliotecas cliente de Cloud en Cloud Code.

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

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

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

    Reemplaza los siguientes valores:

    • PROJECT_ID: el ID del proyecto
    • SERVICE_ACCOUNT_ID: el ID de la cuenta de servicio
  3. Otorga la función adecuada a tu cuenta de servicio. El siguiente comando de muestra otorga la función de usuario de la API de Cloud Translation. Para determinar la función que deseas otorgar, 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. Para crear una clave de cuenta de servicio, haz lo siguiente:

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

    export \
     GOOGLE_APPLICATION_CREDENTIALS=key.json
    
  6. Opcional: Para permitir que los usuarios actúen en nombre de la cuenta de servicio, ejecuta el comando gcloud iam service-accounts add-iam-policy-binding a fin de otorgar a un usuario la función de 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"
    

    Reemplaza los siguientes valores:

    • USER_EMAIL: la dirección de correo electrónico del usuario

Desarrollo remoto

GKE

Según el alcance de tu proyecto, puedes elegir cómo autenticar los servicios de Google Cloud en GKE:

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de usar la cuenta de servicio que usa GKE de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine y de que los permisos de acceso estén configurados en Permitir acceso completo a todas las API de Cloud (ambas opciones de configuración están disponibles en la sección Grupos de nodos Seguridad). Debido a que la cuenta de servicio de Compute Engine se comparte con todas las cargas de trabajo implementadas en tu nodo, este método sobreaprovisiona los permisos y solo debe usarse para el desarrollo.
      • Asegúrate de que Workload Identity no esté habilitada en el clúster (en la sección Clúster &gt Seguridad).
    2. Asigna las funciones necesarias a tu cuenta de servicio:
      • Si intentas acceder a un secreto, sigue estos pasos específicos de Secret Manager para configurar las funciones necesarias en tu cuenta de servicio.
      • Si usas la cuenta de servicio predeterminada de Compute Engine, es posible que ya se hayan aplicado las funciones de IAM correctas.
      • Para obtener una lista de los tipos de funciones de IAM y los roles predefinidos que puedes otorgar a las identidades, consulta la Guía de funciones. Si deseas obtener los pasos para otorgar las funciones, consulta Otorga, cambia y revoca el acceso a los recursos.
  • (Recomendado para producción)
    1. Configura el clúster y la aplicación de GKE con Workload Identity para autenticar los servicios de Google Cloud en GKE. Esto asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Configura tu implementación de Kubernetes para que haga referencia a la cuenta de servicio de Kubernetes mediante la configuración del campo .spec.serviceAccountName en tu archivo YAML de implementación de Kubernetes. Si trabajas en una app creada a partir de una aplicación de muestra de Cloud Code, este archivo se encuentra en la carpeta kubernetes-manifests.
    3. Si el servicio de Google Cloud al que intentas acceder requiere funciones adicionales, otórgales a la cuenta de servicio de Google que usas para desarrollar tu app:

Cloud Run

  1. Si deseas crear una nueva cuenta de servicio única para implementar tu aplicación de Cloud Run, navega a la página Cuentas de servicio y selecciona el proyecto en el que está almacenado tu secreto.

    Ir a la página cuentas de servicio

  2. Haga clic en Crear cuenta de servicio.
  3. En el cuadro de diálogo Crear cuenta de servicio, ingresa un nombre descriptivo para la cuenta de servicio.
  4. Cambia el ID de cuenta de servicio a un valor único y reconocible y, luego, haz clic en Crear.
  5. Si el servicio de Google Cloud al que intentas acceder requiere funciones adicionales, otorga las funciones, haz clic en Continuar y, luego, en Listo.
  6. Para agregar 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.
    2. En la IU de implementación de Cloud Run, en Configuración de revisión, en el campo Cuenta de servicio, especifica la cuenta de servicio.
    Sección de configuración avanzada de revisión expandida en Cloud Run: campo de implementación y cuenta de servicio con el nombre de cuenta de servicio del formato service-account-name@project-name.iam.gserviceaccount.com

Cloud Run

Según el alcance de tu proyecto, puedes elegir cómo autenticar los servicios de Google Cloud en GKE:

  • (Solo para desarrollo)
    1. Crea un clúster de GKE con la siguiente configuración:
      • Asegúrate de usar la cuenta de servicio que GKE usa de forma predeterminada, la cuenta de servicio predeterminada de Compute Engine y de que los permisos de acceso estén establecidos en Permitir acceso completo a todas las API de Cloud (ambas opciones de configuración accesibles en la sección Seguridad de Grupos de nodos). Debido a que la cuenta de servicio de Compute Engine se comparte con todas las cargas de trabajo implementadas en tu nodo, este método sobreaprovisiona los permisos y solo se debe usar para el desarrollo.
      • Asegúrate de que Workload Identity no esté habilitada en el clúster (en la sección Clúster > Seguridad).
    2. Asigna las funciones necesarias a tu cuenta de servicio:
  • (Recomendado para producción)
    1. Configura el clúster y la aplicación de GKE con Workload Identity para autenticar los servicios de Google Cloud en GKE. Esto asocia tu cuenta de servicio de Kubernetes con tu cuenta de servicio de Google.
    2. Para agregar 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.
      2. En la IU de implementación de Cloud Run, en Configuración de revisión, en el campo Cuenta de servicio, especifica la cuenta de servicio.
      Sección de configuración avanzada de revisión expandida en Cloud Run: campo de implementación y cuenta de servicio con el nombre de cuenta de servicio de Kubernetes con el formato service-account-name@project-name.iam.gserviceaccount.com
    3. Si el servicio de Google Cloud al que intentas acceder requiere funciones adicionales, otórgales a la cuenta de servicio de Google que usas para desarrollar tu app:

Desarrollo remoto con Secret Manager habilitado

Si desarrollas una aplicación de forma remota, con una cuenta de servicio para la autenticación y tu aplicación usa secretos, debes completar algunos pasos adicionales además de la instrucciones de desarrollo remoto. Estos pasos asignan la función requerida a tu cuenta de servicio de Google para acceder a un secreto de Secret Manager específico:

  1. Haz clic en Ícono de Cloud Code Cloud Code y, luego, expande la sección Secret Manager.

    Secret Manager en Cloud Code abierto con dos secretos enumerados

  2. Haz clic derecho en el secreto y selecciona Editar permisos en Cloud Console. Esto inicia la página de configuración de Secret Manager para ese secreto en tu navegador web.

    Clic con el botón derecho en el panel de Secret Manager

  3. En Console, haga clic en Permisos y, luego, en Agregar.

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

  5. En el campo Seleccionar una función, elige la función Administrador de secretos Secret Manager.

  6. Haz clic en Guardar.

    La cuenta de servicio ahora tiene permiso para acceder a este secreto en particular.

Obtener asistencia

Para enviar comentarios, informa problemas en GitHub o haz preguntas en Stack Overflow.