AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial C++ untuk AWS Cloud9
Tutorial ini memungkinkan Anda untuk menjalankan kode C ++ di lingkungan AWS Cloud9 pengembangan. Kode ini juga menggunakan sumber daya yang disediakan oleh AWS SDK for C++, pustaka sumber terbuka lintas platform termodulasi yang dapat Anda gunakan untuk terhubung ke Amazon Web Services.
Mengikuti tutorial ini dan membuat sampel ini dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk layanan seperti Amazon EC2 dan Amazon S3. Untuk informasi selengkapnya, lihat EC2Harga Amazon dan Harga
Topik
Prasyarat
Sebelum Anda menggunakan sampel ini, pastikan pengaturan Anda memenuhi persyaratan berikut:
-
Anda harus memiliki lingkungan AWS Cloud9 EC2 pengembangan yang ada. Contoh ini mengasumsikan bahwa Anda sudah memiliki EC2 lingkungan yang terhubung ke EC2 instans Amazon yang menjalankan Amazon Linux atau Ubuntu Server. Jika Anda memiliki jenis lingkungan atau sistem operasi yang berbeda, Anda mungkin perlu menyesuaikan petunjuk sampel ini untuk menyiapkan alat terkait. Untuk informasi selengkapnya, lihat Menciptakan lingkungan di AWS Cloud9.
-
Anda memiliki AWS Cloud9 IDE untuk lingkungan yang ada sudah terbuka. Ketika Anda membuka lingkungan, AWS Cloud9 buka IDE untuk lingkungan itu di browser web Anda. Untuk informasi selengkapnya, lihat Membuka lingkungan di AWS Cloud9.
Langkah 1: Pasang g++ dan paket dev yang diperlukan
Untuk membangun dan menjalankan aplikasi C++, Anda memerlukan utilitas sepertig++
, yang merupakan kompiler C++ yang disediakan oleh GNUComplier
Anda juga perlu menambahkan file header (paket -dev
) untuk libcurl
, libopenssl
, libuuid
, zlib
dan, secara opsional, libpulse
untuk dukungan Amazon Polly.
Proses memasang alat developer sedikit berbeda tergantung pada apakah Anda menggunakan instans Amazon Linux/Amazon Linux 2 atau instans Ubuntu.
Langkah 2: Instal CMake
Anda perlu memasang alat cmake
, yang mengotomatisasi proses pembangunan file yang dapat dieksekusi dari kode sumber.
-
Di jendela IDE terminal, jalankan perintah berikut untuk mendapatkan arsip yang diperlukan:
wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
-
Ekstrak file dari arsip dan arahkan ke direktori yang berisi file yang belum dibongkar:
tar xzf cmake-3.18.0.tar.gz cd cmake-3.18.0
-
Selanjutnya, jalankan skrip bootstrap dan pasang
cmake
dengan menjalankan perintah berikut:./bootstrap make sudo make install
-
Konfirmasikan bahwa Anda telah memasang alat dengan menjalankan perintah berikut:
cmake --version
Langkah 3: Dapatkan dan bangun SDK untuk C ++
Untuk mengatur AWS SDK untuk C ++, Anda dapat membangun SDK sendiri langsung dari sumber atau mengunduh pustaka menggunakan manajer paket. Anda dapat menemukan detail tentang opsi yang tersedia di Memulai Menggunakan AWS SDK untuk C++ di Panduan AWS SDK for C++ Pengembang.
Contoh ini menunjukkan penggunaan git
untuk mengkloning kode SDK sumber dan membangun cmake
untuk C++SDK.
-
Kloning repositori jarak jauh dan dapatkan semua submodul git secara rekursif untuk AWS Cloud9 lingkungan Anda dengan menjalankan perintah berikut di terminal:
git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
-
Arahkan ke
aws-sdk-cpp
direktori baru, buat sub-direktori untuk membangun C++ ke dalam, dan kemudian arahkan ke itu: AWS SDKcd aws-sdk-cpp mkdir sdk_build cd sdk_build
-
catatan
Untuk menghemat waktu, langkah ini hanya membangun bagian Amazon S3 dari AWS SDK for C++. Jika Anda ingin membangun yang lengkapSDK, hilangkan
cmake
perintah-DBUILD_ONLY=s3
dari.Membangun lengkap SDK untuk C ++ dapat memakan waktu lebih dari satu jam untuk diselesaikan, tergantung pada sumber daya komputasi yang tersedia untuk EC2 instans Amazon Anda atau server Anda sendiri.
Gunakan
cmake
untuk membangun bagian Amazon S3 dari C++ ke dalamsdk_build
direktori dengan menjalankan perintah berikut: SDKcmake .. -DBUILD_ONLY=s3
-
Sekarang jalankan
make install
perintah sehingga build SDK dapat diakses:sudo make install cd ..
Langkah 4: Buat C ++ dan file CMakeLists
Pada langkah ini, Anda membuat file C++
yang memungkinkan pengguna proyek berinteraksi dengan bucket Amazon S3.
Anda juga membuat file CMakeLists.txt
yang menyediakan instruksi yang digunakan oleh cmake
untuk membangun pustaka C++ Anda.
-
Di AWS Cloud9 IDE, buat file dengan konten ini, dan simpan file dengan nama
s3-demo.cpp
di root (/
) lingkungan Anda.#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 ®ion) { 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
-
Buat file kedua dengan konten ini, dan simpan file dengan nama
CMakeLists.txt
di root (/
) lingkungan Anda. File ini memungkinkan Anda untuk membangun kode Anda menjadi file yang dapat dieksekusi.# 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})
Langkah 5: Membangun dan menjalankan kode C++
-
Di direktori root lingkungan Anda tempat Anda menyimpan
s3-demo.cpp
danCMakeLists.txt
, jalankancmake
untuk membangun proyek Anda:cmake . make
-
Anda sekarang dapat menjalankan program Anda dari baris perintah. Dalam perintah berikut, ganti
my-unique-bucket-name
dengan nama unik untuk bucket Amazon S3 dan, jika perlu, gantius-east-1
dengan pengenal Wilayah AWS lain tempat Anda ingin membuat bucket../s3-demo my-unique-bucket-name us-east-1
Jika program berhasil dijalankan, output yang mirip dengan berikut akan dikembalikan:
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.
Langkah 6: Bersihkan
Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda setelah Anda selesai dengan sampel ini, hapus lingkungan. Untuk petunjuk, lihat Menghapus lingkungan di AWS Cloud9.