Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi AWS SDK for C++ klien layanan dalam kode
Ketika konfigurasi ditangani langsung dalam kode, lingkup konfigurasi terbatas pada aplikasi yang menggunakan kode itu. Di dalam aplikasi itu, ada opsi untuk konfigurasi global semua klien layanan, konfigurasi untuk semua klien dari Layanan AWS jenis tertentu, atau konfigurasi ke instance klien layanan tertentu.
AWS SDK untuk C++ Termasuk kelas Layanan AWS klien yang menyediakan fungsionalitas untuk berinteraksi dengan Layanan AWS yang Anda gunakan dalam aplikasi Anda. Dalam SDK for C++, Anda dapat mengubah konfigurasi klien default, yang sangat membantu ketika Anda ingin melakukan hal-hal seperti:
-
Connect ke Internet melalui proxy
-
Ubah pengaturan transport HTTP, seperti batas waktu koneksi dan permintaan percobaan ulang
-
Tentukan petunjuk ukuran buffer soket TCP
ClientConfigurationadalah struktur dalam SDK for C++ yang dapat Anda buat dan gunakan dalam kode Anda. Cuplikan berikut menggambarkan penggunaan kelas ini untuk mengakses Amazon S3 melalui proxy.
Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);
Deklarasi variabel konfigurasi
ClientConfigurationStruct mendeklarasikan variabel anggota berikut:
Aws::String accountId; Aws::String accountIdEndpointMode = "preferred"; bool allowSystemProxy = false; Aws::String appId; Aws::String caPath; Aws::String caFile; struct { RequestChecksumCalculation requestChecksumCalculation = RequestChecksumCalculation::WHEN_SUPPORTED; ResponseChecksumValidation responseChecksumValidation = ResponseChecksumValidation::WHEN_SUPPORTED; } checksumConfig; ProviderFactories configFactories = ProviderFactories::defaultFactories; long connectTimeoutMs = 1000; struct CredentialProviderConfiguration { Aws::String profile; Aws::String region; struct { long metadataServiceNumAttempts = 1; long metadataServiceTimeout = 1; std::shared_ptr<RetryStrategy> imdsRetryStrategy; bool disableImdsV1; bool disableImds; } imdsConfig; struct STSCredentialsCredentialProviderConfiguration { Aws::String roleArn; Aws::String sessionName; Aws::String tokenFilePath; std::chrono::milliseconds retrieveCredentialsFutureTimeout = std::chrono::seconds(10); } stsCredentialsProviderConfig; } credentialProviderConfig; bool disableExpectHeader = false; bool disableIMDS = false; bool disableImdsV1 = false; bool enableClockSkewAdjustment = true; Aws::Crt::Optional<bool> enableEndpointDiscovery; bool enableHostPrefixInjection = true; bool enableHttpClientTrace = false; bool enableTcpKeepAlive = true; Aws::String endpointOverride; std::shared_ptr<Aws::Utils::Threading::Executor> executor = nullptr; FollowRedirectsPolicy followRedirects; Aws::Http::TransferLibType httpLibOverride; Aws::Http::TransferLibPerformanceMode httpLibPerfMode = Http::TransferLibPerformanceMode::LOW_LATENCY; long httpRequestTimeoutMs = 0; unsigned long lowSpeedLimit = 1; unsigned maxConnections = 25; Aws::Utils::Array<Aws::String> nonProxyHosts; Aws::String profileName; Aws::String proxyCaFile; Aws::String proxyCaPath; Aws::Http::Scheme proxyScheme; Aws::String proxyHost; unsigned proxyPort = 0; Aws::String proxyUserName; Aws::String proxyPassword; Aws::String proxySSLCertPath; Aws::String proxySSLCertType; Aws::String proxySSLKeyPath; Aws::String proxySSLKeyType; Aws::String proxySSLKeyPassword; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> readRateLimiter = nullptr; Aws::String region; Aws::Client::RequestCompressionConfig requestCompressionConfig; long requestTimeoutMs = 0; std::shared_ptr<RetryStrategy> retryStrategy = nullptr; Aws::Http::Scheme scheme; unsigned long tcpKeepAliveIntervalMs = 30000; std::shared_ptr<smithy::components::tracing::TelemetryProvider> telemetryProvider; Aws::String userAgent; bool useDualStack = false; bool useFIPS = false; bool verifySSL = true; Aws::Http::Version version = Http::Version::HTTP_VERSION_2TLS; struct WinHTTPOptions { bool useAnonymousAuth = false; } winHTTPOptions; std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> writeRateLimiter = nullptr; static Aws::String LoadConfigFromEnvOrProfile(const Aws::String& envKey, const Aws::String& profile, const Aws::String& profileProperty, const Aws::Vector<Aws::String>& allowedValues, const Aws::String& defaultValue);
Deskripsi variabel konfigurasi
Daftar berikut menjelaskan variabel ClientConfiguration anggota yang dapat Anda gunakan untuk menyesuaikan perilaku klien.
- accountId
-
Menentukan Akun AWS ID untuk routing endpoint berbasis akun. Gunakan format 111122223333. Perutean endpoint berbasis akun meningkatkan kinerja permintaan untuk beberapa layanan.
- accountIdEndpointModus
-
Mengontrol perilaku routing endpoint berbasis akun. Nilai yang valid adalah “wajib”, “dinonaktifkan”, atau “disukai”. Nilai default adalah “disukai”. Setel ke “dinonaktifkan” untuk mematikan perutean titik akhir berbasis akun bila perlu.
- allowSystemProxy
-
Mengontrol apakah klien HTTP menemukan pengaturan proxy sistem. Pengaturan default adalah false. Setel ke true untuk mengaktifkan penemuan proxy otomatis.
- appId
-
Menentukan identifier khusus aplikasi opsional. Saat diatur, nilai ini ditambahkan ke
User-Agentheader dalam formatApp/{appId}. Anda dapat mengatur nilai ini menggunakan variabelAWS_SDK_UA_APP_IDlingkungan atau atribut profil konfigurasisdk_ua_app_idbersama. - Capath, Cafile
-
Menginstruksikan klien HTTP di mana menemukan toko kepercayaan sertifikat SSL Anda. Contoh trust store mungkin merupakan direktori yang disiapkan dengan utilitas OpenSSL
c_rehash. Variabel-variabel ini tidak perlu disetel kecuali lingkungan Anda menggunakan symlink. Variabel-variabel ini tidak berpengaruh pada sistem Windows dan macOS. - CheckSumConfig
-
Berisi perhitungan checksum dan pengaturan validasi. Termasuk
requestChecksumCalculationdanresponseChecksumValidationdengan nilai default WHEN_SUPPORTED. - ConfigFactories
-
Menentukan metode pabrik untuk menginisialisasi kelas utilitas klien seperti
Executordan.RetryStrategyMenggunakan pabrik default kecuali diganti. - requestTimeoutMs dan connectTimeoutMs
-
Menentukan jumlah waktu dalam milidetik untuk menunggu sebelum waktu keluar permintaan HTTP. Misalnya, pertimbangkan untuk meningkatkan waktu-waktu ini saat mentransfer file besar.
- credentialProviderConfig
-
Berisi pengaturan konfigurasi untuk penyedia kredensi. Gunakan struktur ini untuk menyesuaikan cara SDK memperoleh AWS kredensyal.
- disableExpectHeader
-
Hanya berlaku untuk klien HTTP CURL. Secara default, CURL menambahkan header “Expect: 100-Continue” dalam permintaan HTTP untuk menghindari pengiriman payload HTTP dalam situasi di mana server merespons dengan kesalahan segera setelah menerima header. Perilaku ini dapat menghemat perjalanan pulang pergi dan berguna dalam situasi di mana muatannya kecil dan latensi jaringan relevan. Pengaturan default variabel adalah false. Jika disetel ke true, CURL diinstruksikan untuk mengirim header permintaan HTTP dan muatan tubuh bersama-sama.
- Nonaktifkan IMDS
-
Mengontrol apakah panggilan Instance Metadata Service (IMDS) dinonaktifkan. Pengaturan default adalah false. Setel ke true untuk menonaktifkan panggilan IMDS saat berjalan di luar EC2 instance.
- NonaktifkanIMDSv1
-
Mengontrol apakah IMDSv1 panggilan dinonaktifkan saat mengizinkan IMDSv2. Pengaturan default adalah false. Setel ke true untuk menonaktifkan hanya IMDSv1 panggilan untuk keamanan yang ditingkatkan.
- enableClockSkewPenyesuaian
-
Mengontrol apakah kemiringan jam disesuaikan setelah setiap upaya HTTP. Pengaturan default adalah false.
- enableEndpointDiscovery
-
Mengontrol apakah penemuan titik akhir digunakan. Secara default, endpoint regional atau overridden digunakan. Untuk mengaktifkan penemuan titik akhir, atur variabel ke true.
- enableHostPrefixInjeksi
-
Mengontrol apakah host HTTP menambahkan awalan “data-” ke DiscoverInstances permintaan. Secara default, perilaku ini diaktifkan. Untuk menonaktifkannya, atur variabel ke false.
- enableHttpClientJejak
-
Mengontrol apakah penelusuran klien HTTP diaktifkan untuk tujuan debugging. Pengaturan default adalah false. Setel ke true untuk mengaktifkan permintaan HTTP terperinci dan pencatatan respons.
- enableTcpKeepHidup
-
Mengontrol apakah akan mengirim paket keep-alive TCP. Pengaturan default adalah benar. Gunakan dalam hubungannya dengan
tcpKeepAliveIntervalMsvariabel. Variabel ini tidak berlaku untuk Win INet dan IXMLHTTPRequest2 klien. - EndpointOverride
-
Menentukan endpoint HTTP utama yang dapat digunakan untuk berkomunikasi dengan layanan.
- pelaksana
-
Referensi implementasi asynchronous Executor handler. Perilaku defaultnya adalah membuat dan melepaskan utas untuk setiap panggilan asinkron. Untuk mengubah perilaku ini, menerapkan subclass dari
Executorkelas dan menetapkan instance untuk variabel ini. - FollowRedirects
-
Mengontrol perilaku saat menangani kode pengalihan HTTP 300.
- httpLibOverride
-
Menentukan implementasi HTTP dikembalikan oleh pabrik HTTP default. Klien HTTP default untuk Windows adalah WinHTTP. Klien HTTP default untuk semua platform lainnya adalah CURL.
- httpLibPerfModus
-
Menentukan modus kinerja perpustakaan HTTP. Pengaturan default adalah LOW_LATENCY. Anda dapat menyesuaikan pengaturan ini untuk mengoptimalkan karakteristik kinerja yang berbeda.
- httpRequestTimeoutNona
-
Menentukan batas waktu permintaan HTTP dalam milidetik. Nilai default adalah 0 (tidak ada batas waktu). Pertimbangkan untuk meningkatkan nilai ini saat mentransfer file besar.
- lowSpeedLimit
-
Menentukan kecepatan transfer minimum yang diizinkan dalam byte per detik. Jika kecepatan transfer turun di bawah kecepatan yang ditentukan, operasi transfer dibatalkan. Pengaturan default adalah 1 byte/detik. Variabel ini hanya berlaku untuk klien CURL.
- MaxConnections
-
Menentukan jumlah maksimum koneksi HTTP ke server tunggal. Nilai default adalah 25. Tidak ada nilai maksimum yang diizinkan selain yang dapat didukung oleh bandwidth Anda secara wajar.
- nonProxyHosts
-
Menentukan array nama host yang harus melewati pengaturan proxy. Gunakan pengaturan ini untuk mengecualikan host tertentu dari konfigurasi proxy.
- ProfileName
-
Menentukan nama AWS profil yang akan digunakan untuk konfigurasi. SDK memuat pengaturan dari profil yang ditentukan dalam file AWS konfigurasi.
- proxyCaFile
-
Menentukan jalur ke file otoritas sertifikat untuk koneksi proxy ketika berbeda dari default.
- proxyCaPath
-
Menentukan jalur ke penyimpanan kepercayaan otoritas sertifikat untuk koneksi proxy ketika berbeda dari default.
- ProxyScheme, ProxyHost, ProxyPort, dan ProxyPassword proxyUserName
-
Digunakan untuk mengatur dan mengkonfigurasi proxy untuk semua komunikasi dengan AWS. Contoh kapan fungsi ini mungkin berguna termasuk debugging bersama dengan Burp suite, atau menggunakan proxy untuk terhubung ke Internet.
- SSLCertJalur proxy
-
Menentukan jalur ke file sertifikat SSL untuk koneksi proxy yang memerlukan sertifikat klien.
- SSLCertJenis proxy
-
Menentukan jenis sertifikat SSL untuk koneksi proxy. Jenis umum termasuk PEM dan DER.
- SSLKeyKata Sandi proxy
-
Menentukan kata sandi untuk kunci pribadi SSL yang digunakan dalam koneksi proxy saat kunci dilindungi kata sandi.
- SSLKeyJalur proxy
-
Menentukan jalur ke file kunci pribadi SSL untuk koneksi proxy yang memerlukan sertifikat klien.
- SSLKeyJenis proxy
-
Menentukan jenis kunci pribadi SSL untuk koneksi proxy. Jenis umum termasuk PEM dan DER.
- writeRateLimiter dan readRateLimiter
-
Referensi untuk implementasi pembatas kecepatan baca dan tulis yang digunakan untuk membatasi bandwidth yang digunakan oleh lapisan transport. Secara default, tingkat baca dan tulis tidak dibatasi. Untuk memperkenalkan throttling, implementasikan subclass dari
RateLimiterInterfacedan tetapkan instance ke variabel-variabel ini. - region
-
Menentukan AWS Wilayah yang akan digunakan, seperti us-east-1. Secara default, Region yang digunakan adalah Region default yang dikonfigurasi dalam AWS kredensi yang berlaku.
- requestCompressionConfig
-
Berisi pengaturan konfigurasi untuk kompresi permintaan. Gunakan struktur ini untuk mengontrol kapan dan bagaimana permintaan dikompresi sebelum transmisi.
- RetryStrategy
-
Referensi implementasi strategi coba lagi. Strategi default mengimplementasikan kebijakan backoff eksponensial. Untuk melakukan strategi yang berbeda, menerapkan subclass dari
RetryStrategykelas dan menetapkan instance untuk variabel ini. - skema
-
Menentukan skema pengalamatan URI, baik HTTP atau HTTPS. Skema default adalah HTTPS.
- tcpKeepAliveIntervalMs
-
Menentukan interval waktu dalam milidetik untuk mengirim paket keep-alive melalui koneksi TCP. Interval default adalah 30 detik. Pengaturan minimum adalah 15 detik. Variabel ini tidak berlaku untuk Win INet dan IXMLHTTPRequest2 klien.
- TeleMetryProvider
-
Mereferensikan implementasi penyedia telemetri untuk mengumpulkan metrik dan melacak data. Konfigurasikan pengaturan ini untuk mengaktifkan fitur observabilitas.
- UserAgent
-
Untuk penggunaan internal saja. Jangan mengubah pengaturan variabel ini.
- useDualStack
-
Mengontrol apakah akan menggunakan tumpukan ganda IPv4 dan IPv6 titik akhir. Perhatikan bahwa tidak semua AWS layanan mendukung IPv6 di semua Wilayah.
- UseFIPS
-
Mengontrol apakah akan menggunakan Federal Information Processing Standards (FIPS) 140-2 modul kriptografi yang divalidasi. Pengaturan default adalah false. Setel ke true saat kepatuhan FIPS diperlukan.
- VerifySSL
-
Mengontrol apakah akan memverifikasi sertifikat SSL. Secara default sertifikat SSL diverifikasi. Untuk menonaktifkan verifikasi, atur variabel ke false.
- versi
-
Menentukan versi HTTP untuk digunakan untuk permintaan. Pengaturan default adalah HTTP_VERSION_2TLS (HTTP/2 melalui TLS).
- menang HTTPOptions
-
Berisi opsi konfigurasi HTTP khusus Windows. Termasuk useAnonymousAuth dengan pengaturan default false.