Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Tutorial de C++ para AWS Cloud9

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

O AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. Saiba mais

O AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. Saiba mais

Este tutorial permite executar o código C++ em um ambiente de desenvolvimento do AWS Cloud9. O código também usa recursos fornecidos pelo AWS SDK for C++, uma biblioteca modular, multiplataforma e de código aberto que você pode usar para se conectar à Amazon Web Services.

Seguir este tutorial e criar este exemplo pode gerar cobranças em sua conta da AWS. Isso inclui possíveis cobranças por serviços como o Amazon EC2 e Amazon S3. Para obter mais informações, consulte Preço do Amazon EC2 e Preço do Amazon S3.

Pré-requisitos

Antes de usar esse exemplo, verifique se suas configurações cumprem os requisitos a seguir.

  • É necessário ter um ambiente existente de desenvolvimento do AWS Cloud9 EC2 Este exemplo pressupõe que você já tem um ambiente do EC2 conectado a uma instância do Amazon EC2 que executa Amazon Linux ou Ubuntu Server. Caso tenha um tipo diferente de ambiente ou sistema operacional, poderá ser necessário adaptar as instruções desse exemplo para configurar ferramentas relacionadas. Para ter mais informações, consulte Criar um ambiente no AWS Cloud9.

  • Você tem o IDE do AWS Cloud9 para o ambiente existente já aberto. Ao abrir um ambiente o AWS Cloud9 abre o IDE para esse ambiente em um navegador da web. Para ter mais informações, consulte Abrir um ambiente no AWS Cloud9.

Etapa 1: Instalar g++ e pacotes de desenvolvimento necessários

Para criar e executar uma aplicação C++, você precisa de um utilitário como o g++, que é um compilador C++ fornecido pelo GNU Complier Collection (GCC).

Você também precisa adicionar arquivos de cabeçalho (pacotes -dev) para libcurl, libopenssl, libuuid, zlib e, opcionalmente, libpulse para suporte do Amazon Polly.

O processo de instalação de ferramentas de desenvolvimento varia ligeiramente se você estiver usando uma instância do Amazon Linux/Amazon Linux 2 ou uma instância do Ubuntu.

Amazon Linux-based systems

Você pode verificar se já tem o gcc instalado, executando o seguinte comando no terminal do AWS Cloud9:

g++ --version

Se o g++ não estiver instalado, você pode instalá-lo facilmente como parte do grupo de pacotes chamado "Development Tools" (Ferramentas de desenvolvimento). Essas ferramentas são adicionadas a uma instância com o comando yum groupinstall:

sudo yum groupinstall "Development Tools"

Execute g++ --version novamente para confirmar se o compilador foi instalado.

Agora instale os pacotes para as bibliotecas necessárias usando o gerenciador de pacotes do sistema:

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

Você pode verificar se já tem o gcc instalado, executando o seguinte comando no terminal do AWS Cloud9:

g++ --version

Se o gcc não estiver instalado, você poderá instalá-lo em um sistema baseado em Ubuntu, executando os seguintes comandos:

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

Execute g++ --version novamente para confirmar se o compilador foi instalado.

Agora instale os pacotes para as bibliotecas necessárias usando o gerenciador de pacotes do sistema:

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

Você pode verificar se já tem o gcc instalado, executando o seguinte comando no terminal do AWS Cloud9:

g++ --version

Se o g++ não estiver instalado, você pode instalá-lo facilmente como parte do grupo de pacotes chamado "Development Tools" (Ferramentas de desenvolvimento). Essas ferramentas são adicionadas a uma instância com o comando yum groupinstall:

sudo yum groupinstall "Development Tools"

Execute g++ --version novamente para confirmar se o compilador foi instalado.

Agora instale os pacotes para as bibliotecas necessárias usando o gerenciador de pacotes do sistema:

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

Etapa 2: Instalar CMake

Você precisa instalar a ferramenta cmake, que automatiza o processo de construção de arquivos executáveis a partir do código-fonte.

  1. Na janela do terminal do IDE, execute o seguinte comando para obter o arquivamento necessário:

    wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
  2. Extraia os arquivos do arquivamento e navegue até o diretório que contém os arquivos descompactados:

    tar xzf cmake-3.18.0.tar.gz cd cmake-3.18.0
  3. Em seguida, execute um script bootstrap e instale cmake, executando os seguintes comandos:

    ./bootstrap make sudo make install
  4. Confirme se você instalou a ferramenta executando o seguinte comando:

    cmake --version

Etapa 3: Obter e compilar o SDK for C++

Para configurar o AWS SDK for C++, você pode criar o SDK diretamente da fonte ou pode baixar as bibliotecas usando um gerenciador de pacotes. Você pode obter detalhes sobre as opções disponíveis em Conceitos básicos do uso da AWS SDK for C++ no Manual do desenvolvedor do AWS SDK for C++.

Este exemplo demonstra o uso do git para clonar o código-fonte do SDK e cmake para compilar o SDK for C++.

  1. Clone o repositório remoto e obtenha todos os submódulos do Git recursivamente para o ambiente do AWS Cloud9, executando o seguinte comando no terminal:

    git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
  2. Navegue até o novo diretório do aws-sdk-cpp, crie um subdiretório no qual compilar o diretório AWS SDK for C++ e, em seguida, navegue até:

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

    Para economizar tempo, essa etapa cria apenas a parte do Amazon S3 doAWS SDK for C++. Se você quiser compilar o SDK completo, omita a propriedade -DBUILD_ONLY=s3 do comando cmake.

    A criação do SDK for C++ completo pode levar mais de uma hora, dependendo dos recursos de computação disponíveis para a instância do Amazon EC2 ou para o próprio servidor.

    Use o cmake para compilar a parte do Amazon S3 do SDK for C++ no sdk_buildexecutando o seguinte comando:

    cmake .. -DBUILD_ONLY=s3
  4. Agora, execute o comando make install para que o SDK integrado possa ser acessado:

    sudo make install cd ..

Etapa 4: Criar arquivos C++ e CMakelists

Nesta etapa, você criará um arquivo C++ que permite que os usuários do projeto interajam com buckets do Amazon S3.

Você também cria um arquivo CMakeLists.txt que fornece instruções que são usadas pelo cmake para criar sua biblioteca C++.

  1. No IDE do AWS Cloud9 crie um arquivo com esse conteúdo e salve-o com o nome s3-demo.cpp na raiz (/) do seu ambiente.

    #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. Crie um segundo arquivo com esse conteúdo e salve-o com o nome CMakeLists.txt na raiz (/) do seu ambiente. Esse arquivo permite compilar o código em um arquivo executável.

    # 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})

Etapa 5: Compilar e executar o código C++

  1. No diretório raiz do ambiente no qual você salvou a s3-demo.cpp e o CMakeLists.txt, execute cmake para compilar o projeto:

    cmake . make
  2. Agora você pode executar o programa da linha de comando. No comando a seguir, substitua my-unique-bucket-name por um nome exclusivo para o bucket do Amazon S3 e, se necessário, substitua us-east-1 pelo identificador de outra região da AWS onde você deseja criar um bucket.

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

    Se o programa for executado com êxito, você verá um resultado semelhante a este:

    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.

Etapa 6: limpar

Para evitar cobranças contínuas em sua conta da AWS, ao terminar de usar este exemplo, exclua o ambiente. Para obter instruções, consulte Excluir um ambiente no AWS Cloud9.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.