Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Tutorial de C++ para AWS Cloud9

Modo de enfoque
Tutorial de C++ para AWS Cloud9 - AWS Cloud9

AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Este tutorial le permite ejecutar código C++ en un entorno de AWS Cloud9 desarrollo. El código también utiliza los recursos proporcionados por el AWS SDK para C++, una biblioteca modular, multiplataforma y de código abierto que puede utilizar para conectarse a Amazon Web Services.

Si sigue este tutorial y crea este ejemplo, es posible que se le cobren cargos a su AWS cuenta. Estos incluyen posibles cargos por servicios como Amazon EC2 y Amazon S3. Para obtener más información, consulte Amazon EC2 Pricing y Amazon S3 Pricing.

Requisitos previos

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:

  • Debe tener un entorno de AWS Cloud9 EC2 desarrollo existente. En este ejemplo se supone que ya tienes un EC2 entorno conectado a una EC2 instancia de Amazon que ejecuta Amazon Linux o Ubuntu Servidor. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte Crear un entorno en AWS Cloud9.

  • Ya tiene abierto el AWS Cloud9 IDE del entorno existente. Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte Abrir un entorno en AWS Cloud9.

Paso 1: Instalar g++ y los paquetes de desarrollo necesarios

Para compilar y ejecutar una aplicación de C++, necesita una utilidad como g++, que sea un compilador de C++ proporcionado por GNU Complier Collection (GCC).

También tiene que agregar archivos de encabezado (paquetes -dev) para libcurl, libopenssl, libuuid, zlib y, de manera opcional, libpulse para obtener asistencia de Amazon Polly.

El proceso de instalación de herramientas de desarrollo varía ligeramente según si utiliza una instancia de Amazon Linux/Amazon Linux 2 o una instancia de Ubuntu.

Amazon Linux-based systems

Puede comprobar si ya lo ha gcc instalado ejecutando el siguiente comando en la AWS Cloud9 terminal:

g++ --version

Si g++ no está instalado, puede instalarlo fácilmente como parte del grupo de paquetes denominado “Herramientas de desarrollo”. Estas herramientas se agregan a una instancia con el comando yum groupinstall:

sudo yum groupinstall "Development Tools"

Ejecute g++ --version de nuevo para confirmar que se ha instalado el compilador.

Ahora instale los paquetes para las bibliotecas requeridas mediante el administrador de paquetes del sistema:

sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel
Ubuntu-based systems

Puede comprobar si ya lo ha gcc instalado ejecutando el siguiente comando en el AWS Cloud9 terminal:

g++ --version

Si GCC no está instalado, puede instalarlo en un sistema basado en Ubuntu mediante los siguientes comandos:

sudo apt update sudo apt install build-essential sudo apt-get install manpages-dev

Ejecute g++ --version de nuevo para confirmar que se ha instalado el compilador.

Ahora instale los paquetes para las bibliotecas requeridas mediante el administrador de paquetes del sistema:

sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev

Puede comprobar si ya lo ha gcc instalado ejecutando el siguiente comando en la AWS Cloud9 terminal:

g++ --version

Si g++ no está instalado, puede instalarlo fácilmente como parte del grupo de paquetes denominado “Herramientas de desarrollo”. Estas herramientas se agregan a una instancia con el comando yum groupinstall:

sudo yum groupinstall "Development Tools"

Ejecute g++ --version de nuevo para confirmar que se ha instalado el compilador.

Ahora instale los paquetes para las bibliotecas requeridas mediante el administrador de paquetes del sistema:

sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel

Paso 2: Instalar CMake

Debe instalar la herramienta cmake, que automatiza el proceso de compilación de archivos ejecutables a partir del código fuente.

  1. En la ventana del terminal del IDE, ejecute el siguiente comando para obtener el archivo requerido:

    wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
  2. Extraiga los archivos del archivo y vaya al directorio que contiene los archivos desempaquetados:

    tar xzf cmake-3.18.0.tar.gz cd cmake-3.18.0
  3. A continuación, ejecute un script de arranque y ejecute los comandos siguientes para instalar cmake:

    ./bootstrap make sudo make install
  4. Para confirmar que ha instalado la herramienta, ejecute el comando siguiente:

    cmake --version

Paso 3: Obtener y compilar el SDK para C++

Para configurar el AWS SDK para C++, puedes compilarlo tú mismo directamente desde la fuente o descargar las bibliotecas mediante un administrador de paquetes. Encontrarás detalles sobre las opciones disponibles en Cómo empezar a usar el AWS SDK para C++ en la Guía para AWS SDK para C++ desarrolladores.

En esta muestra se explica cómo usar git para clonar el código fuente del SDK y cmake para crear el SDK para C++.

  1. Clone el repositorio remoto y obtenga todos los submódulos de Git repetidamente para su entorno de AWS Cloud9 ejecutando el siguiente comando en el terminal:

    git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
  2. Navega hasta el nuevo aws-sdk-cpp directorio, crea un subdirectorio en el que compilar el AWS SDK para C++ y, a continuación, navega hasta ese directorio:

    cd aws-sdk-cpp mkdir sdk_build cd sdk_build
  3. nota

    Para ahorrar tiempo, en este paso se crea solo la sección Amazon S3 del AWS SDK para C++. Si desea crear el SDK completo, omita el fragmento -DBUILD_ONLY=s3 del comando cmake.

    La creación del SDK completo para C++ puede tardar más de una hora en completarse, en función de los recursos informáticos disponibles para su EC2 instancia de Amazon o su propio servidor.

    Use cmake para compilar la sección Amazon S3 del SDK para C++ en el directorio sdk_build mediante la ejecución del siguiente comando:

    cmake .. -DBUILD_ONLY=s3
  4. A continuación, ejecute el comando make install para que se pueda acceder al SDK creado:

    sudo make install cd ..

Paso 4: Crea archivos de C++ y CMake Listas

En este paso va a crear un archivo de C++ que permita a los usuarios del proyecto interactuar con los buckets de Amazon S3.

También puede crear un archivo CMakeLists.txt con instrucciones que cmake utiliza para crear su biblioteca de C++.

  1. En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre s3-demo.cpp en la raíz (/) de su entorno.

    #include <iostream> #include <aws/core/Aws.h> #include <aws/s3/S3Client.h> #include <aws/s3/model/Bucket.h> #include <aws/s3/model/CreateBucketConfiguration.h> #include <aws/s3/model/CreateBucketRequest.h> #include <aws/s3/model/DeleteBucketRequest.h> // Look for a bucket among all currently available Amazon S3 buckets. bool FindTheBucket(const Aws::S3::S3Client &s3Client, const Aws::String &bucketName) { Aws::S3::Model::ListBucketsOutcome outcome = s3Client.ListBuckets(); if (outcome.IsSuccess()) { std::cout << "Looking for a bucket named '" << bucketName << "'..." << std::endl << std::endl; Aws::Vector<Aws::S3::Model::Bucket> bucket_list = outcome.GetResult().GetBuckets(); for (Aws::S3::Model::Bucket const &bucket: bucket_list) { if (bucket.GetName() == bucketName) { std::cout << "Found the bucket." << std::endl << std::endl; return true; } } std::cout << "Could not find the bucket." << std::endl << std::endl; } else { std::cerr << "listBuckets error: " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); } // Create an Amazon S3 bucket. bool CreateTheBucket(const Aws::S3::S3Client &s3Client, const Aws::String &bucketName, const Aws::String &region) { std::cout << "Creating a bucket named '" << bucketName << "'..." << std::endl << std::endl; Aws::S3::Model::CreateBucketRequest request; request.SetBucket(bucketName); if (region != "us-east-1") { Aws::S3::Model::CreateBucketConfiguration createBucketConfig; createBucketConfig.SetLocationConstraint( Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName( region)); request.SetCreateBucketConfiguration(createBucketConfig); } Aws::S3::Model::CreateBucketOutcome outcome = s3Client.CreateBucket(request); if (outcome.IsSuccess()) { std::cout << "Bucket created." << std::endl << std::endl; } else { std::cerr << "createBucket error: " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); } // Delete an existing Amazon S3 bucket. bool DeleteTheBucket(const Aws::S3::S3Client &s3Client, const Aws::String &bucketName) { std::cout << "Deleting the bucket named '" << bucketName << "'..." << std::endl << std::endl; Aws::S3::Model::DeleteBucketRequest request; request.SetBucket(bucketName); Aws::S3::Model::DeleteBucketOutcome outcome = s3Client.DeleteBucket(request); if (outcome.IsSuccess()) { std::cout << "Bucket deleted." << std::endl << std::endl; } else { std::cerr << "deleteBucket error: " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); } #ifndef EXCLUDE_MAIN_FUNCTION // Create an S3 bucket and then delete it. // Before and after creating the bucket, and again after deleting the bucket, // try to determine whether that bucket still exists. int main(int argc, char *argv[]) { if (argc < 3) { std::cout << "Usage: s3-demo <bucket name> <AWS Region>" << std::endl << "Example: s3-demo my-bucket us-east-1" << std::endl; return 1; } Aws::SDKOptions options; Aws::InitAPI(options); { Aws::String bucketName = argv[1]; Aws::String region = argv[2]; Aws::Client::ClientConfiguration config; config.region = region; Aws::S3::S3Client s3Client(config); if (!FindTheBucket(s3Client, bucketName)) { return 1; } if (!CreateTheBucket(s3Client, bucketName, region)) { return 1; } if (!FindTheBucket(s3Client, bucketName)) { return 1; } if (!DeleteTheBucket(s3Client, bucketName)) { return 1; } if (!FindTheBucket(s3Client, bucketName)) { return 1; } } Aws::ShutdownAPI(options); return 0; } #endif // EXCLUDE_MAIN_FUNCTION
  2. Cree un archivo con este contenido y guárdelo con el nombre CMakeLists.txt en la raíz (/) de su entorno. Este archivo le permite compilar el código en un archivo ejecutable.

    # A minimal CMakeLists.txt file for the AWS SDK for C++. # The minimum version of CMake that will work. cmake_minimum_required(VERSION 2.8) # The project name. project(s3-demo) # Locate the AWS SDK for C++ package. set(AWSSDK_ROOT_DIR, "/usr/local/") set(BUILD_SHARED_LIBS ON) find_package(AWSSDK REQUIRED COMPONENTS s3) # The executable name and its source files. add_executable(s3-demo s3-demo.cpp) # The libraries used by your executable. target_link_libraries(s3-demo ${AWSSDK_LINK_LIBRARIES})

Paso 5: Compilar y ejecutar el código de C++

  1. En el directorio raíz de su entorno en el que ha guardado los archivos s3-demo.cpp y CMakeLists.txt, ejecute cmake para crear su proyecto:

    cmake . make
  2. Ahora puede ejecutar el programa desde la línea de comandos. En el siguiente comando, reemplace my-unique-bucket-name por un nombre único para el bucket de Amazon S3 y, si es necesario, reemplace us-east-1 por el identificador de otra región de AWS en la que desee crear un bucket.

    ./s3-demo my-unique-bucket-name us-east-1

    Si el programa se ejecuta correctamente, se devolverá un resultado similar al siguiente:

    Looking for a bucket named 'my-unique-bucket-name'... Could not find the bucket. Creating a bucket named 'my-unique-bucket-name'... Bucket created. Looking for a bucket named 'my-unique-bucket-name'... Found the bucket. Deleting the bucket named 'my-unique-bucket-name'... Bucket deleted. Looking for a bucket named 'my-unique-bucket-name'... Could not find the bucket.

Paso 6: limpiar

Para evitar que se hagan cargos continuos a su AWS cuenta una vez que haya terminado con este ejemplo, elimine el entorno. Para obtener instrucciones, consulte Eliminar un entorno en AWS Cloud9.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.