Administra las APIs 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 APIs de Cloud. Estas APIs exponen un JSON de REST simple interfaz de usuario. La forma recomendada de acceder a las API de Cloud es usar las bibliotecas cliente de Google Cloud.

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

Explora las API de Cloud

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

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

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

  2. Para ver los detalles de una API, haz clic en el nombre de la API. Detalles como el servicio el nombre, el estado, las instrucciones de instalación para las bibliotecas cliente, la documentación y se muestran muestras de código.

Habilita las API de Cloud

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

  1. En la página de detalles de la API de Cloud, elige el proyecto para el que habilitarás la API de Cloud.
  2. Haz 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 en la página de detalles de la API según tu idioma.

Usa muestras de la 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 las APIs de Cloud. sección.

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

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

  4. Para filtrar la lista de muestras, escribe el texto que desees buscar o elige una lenguaje de programación desde la lista Lenguaje.

  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

Después de habilitar las APIs necesarias y agregar el cliente necesario bibliotecas, debes configurar tu aplicación para que se ejecute autenticado. La configuración depende del tipo de desarrollo y de la plataforma en la que se ejecute.

Luego de que completes los pasos de autenticación, tu aplicación podrá autenticarse y está listo para implementarse.

Desarrollo local

Máquina local

Si accediste a Google Cloud en tu IDE, Cloud Code establece las credenciales predeterminadas de la aplicación (ADC) y puedes omitir este paso. Si accediste a Google Cloud fuera del IDE (por ejemplo, con gcloud CLI), configura tu ADC y permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC ejecutando lo siguiente:

gcloud auth login --update-adc

minikube

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

    gcloud auth login --update-adc
  2. Ejecuta minikube start --addons gcp-auth para iniciar Minikube. Este comando activa el ADC en tus Pods. Para obtener información detallada sobre autenticación de minikube con Google Cloud, consulta documentos de minikube gcp-auth.

Otros clústeres locales de K8s

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

    gcloud auth login --update-adc
  2. Para asegurarte de que las bibliotecas cliente de Google Cloud puedan tus credenciales, activa tu directorio local ~/.config/gcloud en tus Pods de Kubernetes editando los manifiestos de implementación.
  3. Establece el ID de tu proyecto de Google Cloud como una variable de entorno con el nombre 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 las 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 permite que las bibliotecas cliente de Google Cloud se autentiquen a través de ADC. Para ello, ejecuta lo siguiente:

gcloud auth login --update-adc

Desarrollo local con APIs que requieren una cuenta de servicio

Algunas APIs, 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. Si quieres ver una guía de inicio rápido que usa una cuenta de servicio, consulta Cómo usar las bibliotecas cliente de Cloud en Cloud Code.

  1. Para abrir una terminal, haz clic en Terminal > New 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

    Reemplaza 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 en el en la esquina superior izquierda de la pantalla, mantén el puntero sobre IAM y Administrador y haz clic en Cuentas de servicio.

    La columna Correo electrónico muestra el tráfico SERVICE_ACCOUNT_ID y PROJECT_ID para cada una de tus cuentas de servicio en el con el siguiente formato:

    SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com

    Por ejemplo: una dirección de correo electrónico de cuenta de servicio de my-service-account@my-project.iam.gserviceaccount.com tiene lo siguiente: valores:

    • SERVICE_ACCOUNT_ID: my-service-account
    • PROJECT_ID: my-project
  3. Otorga a tu cuenta de servicio el rol adecuado. El siguiente ejemplo otorga el rol de usuario de la API de Cloud Translation. Para determinar el rol otorga, 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 para otorgar a un usuario el rol 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 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 que los permisos de acceso estén configurados en Permitir acceso total a todas las API de Cloud (ambas opciones de configuración dentro de la sección Grupos de nodos > Seguridad).Dado que todas las cargas de trabajo implementadas en tu nodo comparten la cuenta de servicio de Compute Engine, este método aprovisiona en exceso los permisos y solo debe usarse para el desarrollo.
      • Asegúrate de que Workload Identity no esté habilitado en tu (en la sección Clúster > Seguridad).
    2. Asigna los roles necesarios a tu cuenta de servicio:
  • (Recomendado para la 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 roles adicionales, otórgalos para el servicio de Google cuenta que usas para desarrollar tu app:

Cloud Run

  1. Para crear una nueva cuenta de servicio única para implementar tu Cloud Run en la app, navega a la página Cuentas de servicio y selecciona proyecto en el que está almacenado tu Secret.

    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 por un valor único y reconocible y, luego, haz clic en Crear.
  5. Si el servicio de Google Cloud al que intentas acceder requiere roles adicionales, otorga los roles, haz clic en Continuar y, luego, en Listo.
  6. Agrega la cuenta de servicio a tu configuración de implementación.
    1. En la barra de estado de Cloud Code, elige las Comando Cloud Run: Deploy.
    2. En la IU de implementación de Cloud Run, en Revision Settings, en el campo Service Account, especifica tu cuenta de servicio.
    Se expandió la sección de configuración de revisión avanzada en el campo Cloud Run: Implementación y cuenta de servicio completado con el nombre de la cuenta de servicio con el formato nombre-de-cuenta-de-servicio@nombre-del-proyecto. marcador de posición l10n26

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 que los permisos de acceso estén configurados en Permitir acceso total a todas las API de Cloud (ambas opciones de configuración dentro de la sección Grupos de nodos > Seguridad).Dado que todas las cargas de trabajo implementadas en tu nodo comparten la cuenta de servicio de Compute Engine, este método aprovisiona en exceso los permisos y solo debe usarse para el 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:
  • (Recomendado para la 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. Agrega la cuenta de servicio a tu configuración de implementación.
      1. En la barra de estado de Cloud Code, elige las Comando Cloud Run: Deploy.
      2. En la IU de implementación de Cloud Run, en Revision Settings, en el campo Service Account, especifica tu cuenta de servicio.
      Se expandió la sección de configuración de revisión avanzada en el campo Cloud Run: Implementa y cuenta de servicio (Deploy and Service Account) y se completó con el nombre de la cuenta de servicio de Kubernetes con el formato nombre-de-cuenta-de-servicio@nombre-del-proyecto.iam.gserviceaccount.com
    3. Si el servicio de Google Cloud al que intentas acceder requiere roles, otórgalos para la cuenta de servicio de Google que usas para desarrollar tu aplicación:

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 Cloud Code y, luego, expande el Secret Manager.

    Secret Manager en Cloud Code abierto con dos secretos enumerados

  2. Haz clic con el botón derecho en el secreto y selecciona Editar permisos en la consola de Cloud. 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 la consola de Google Cloud, haz 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 Selecciona un rol, elige el Acceso a Secrets de Secret Manager. en el área de la seguridad en la nube.

  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.