Ejecuta ejemplos de C++ en Cloud Shell

Aprende a compilar y ejecutar los ejemplos de clientes de C++ en Cloud Shell con micromamba y Conda.

Antes de comenzar

  1. Instala Google Cloud CLI.

  2. Configura gcloud CLI para usar tu identidad federada.

    Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.

  3. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un Google Cloud proyecto:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu proyecto de Google Cloud .

  5. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  6. Habilita la API de Cloud Storage:

    Roles necesarios para habilitar las APIs

    Para habilitar APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    gcloud services enable storage.googleapis.com
  7. Crea un bucket de Cloud Storage y ejecuta los ejemplos:

    1. Asegúrate de tener el rol de administrador de almacenamiento (roles/storage.admin) en el proyecto. Obtén más información para otorgar roles.
    2. Crea un bucket de Cloud Storage:
      gcloud storage buckets create gs://BUCKET_NAME
      Reemplaza BUCKET_NAME por un nombre de bucket que cumpla con los requisitos de nombres de buckets.
  8. Asegúrate de que estén instaladas las siguientes herramientas:

Instala bibliotecas cliente de C++ precompiladas en Cloud Shell

  1. En Cloud Shell, instala micromamba:

    curl -fsSL https://micro.mamba.pm/api/micromamba/linux-64/latest | sudo tar -C /usr -xj bin/micromamba
    
  2. Agrega hooks de micromamba a la shell actual:

    eval "$(/usr/bin/micromamba shell hook -s posix)"
    
  3. Usa micromamba para crear un entorno de Conda con las herramientas y bibliotecas de desarrollo necesarias:

    micromamba create -y -n base -c conda-forge cmake ninja cxx-compiler google-cloud-cpp libgoogle-cloud
    
  4. Activa el nuevo entorno de Conda:

    micromamba activate
    

Extrae y compila el ejemplo de la "Guía de inicio rápido de Storage"

  1. Consulta el código fuente de la biblioteca cliente de C++, incluidos los ejemplos de inicio rápido para todos los servicios:

    git clone --depth 1 https://github.com/googleapis/google-cloud-cpp
    
  2. Configura CMake para compilar el ejemplo de "Inicio rápido de Storage":

    cmake -S google-cloud-cpp/google/cloud/storage/quickstart -B .build
    
  3. Compila el ejemplo:

    cmake --build .build
    
  4. Ejecuta el ejemplo:

    .build/quickstart BUCKET_NAME
    
  5. Después de ejecutar este ejemplo, verás un mensaje similar a Successfully created object ... seguido de datos específicos de tu objeto y que termina con una línea que muestra Hello World!.

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, borra el proyecto de Google Cloud que tiene los recursos.

  1. Borra el objeto que creó el ejemplo:

    gcloud storage rm gs://BUCKET_NAME/quickstart.txt
    
  2. Borra el bucket:

    gcloud storage buckets delete gs://BUCKET_NAME
    

¿Qué sigue?