Configurazione dell' AWS SDK per i client del servizio C++ nel codice - AWS SDK per C++

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione dell' AWS SDK per i client del servizio C++ nel codice

Quando la configurazione viene gestita direttamente nel codice, l'ambito della configurazione è limitato all'applicazione che utilizza quel codice. All'interno di tale applicazione, sono disponibili opzioni per la configurazione globale di tutti i client di servizio, la configurazione per tutti i client di un determinato Servizio AWS tipo o la configurazione per un'istanza specifica del client di servizio.

AWS SDK per C++ Include classi Servizio AWS client che forniscono funzionalità per interagire con Servizi AWS quelle utilizzate nell'applicazione. Nell'SDK for C++, puoi modificare la configurazione predefinita del client, il che è utile quando vuoi fare cose come:

  • Connect a Internet tramite proxy

  • Modifica le impostazioni di trasporto HTTP, ad esempio il timeout della connessione e i nuovi tentativi di richiesta

  • Specificare i suggerimenti sulla dimensione del buffer del socket TCP

ClientConfigurationè una struttura dell'SDK for C++ che puoi istanziare e utilizzare nel tuo codice. Il seguente frammento illustra l'utilizzo di questa classe per accedere ad Amazon S3 tramite un proxy.

Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);

Dichiarazioni delle variabili di configurazione

La ClientConfiguration struttura dichiara le seguenti variabili membro:

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);

Descrizioni delle variabili di configurazione

L'elenco seguente descrive le variabili ClientConfiguration membro che è possibile utilizzare per personalizzare il comportamento del client.

accountId

Speciifica l' Account AWS ID per il routing degli endpoint basato sull'account. Usa il formato 111122223333. Il routing degli endpoint basato sull'account migliora le prestazioni delle richieste per alcuni servizi.

accountIdEndpointModalità

Controlla il comportamento di routing degli endpoint basato sull'account. I valori validi sono «obbligatorio», «disabilitato» o «preferito». Il valore predefinito è «preferito». Imposta su «disabilitato» per disattivare il routing degli endpoint basato sull'account quando necessario.

allowSystemProxy

Controlla se il client HTTP rileva le impostazioni del proxy di sistema. L'impostazione predefinita è false. Impostare su true per abilitare l'individuazione automatica dei proxy.

appId

Specifica un identificatore facoltativo specifico dell'applicazione. Quando impostato, questo valore viene aggiunto all'intestazione nel formato. User-Agent App/{appId} È possibile impostare questo valore utilizzando la variabile di AWS_SDK_UA_APP_ID ambiente o l'attributo sdk_ua_app_id shared config profile.

CapAth, un file

Indica al client HTTP dove trovare l'archivio attendibile con i certificati SSL. Un esempio di trust store potrebbe essere una directory preparata con l'utilità c_rehash OpenSSL. Non dovrebbe essere necessario impostare queste variabili a meno che l'ambiente non utilizzi collegamenti simbolici. Queste variabili non hanno effetto sui sistemi Windows e macOS.

CheckSumConfig

Contiene le impostazioni di calcolo e convalida del checksum. Include requestChecksumCalculation e responseChecksumValidation con valore predefinito WHEN_SUPPORTED.

ConfigFactories

Specifica i metodi di fabbrica per inizializzare le classi di utilità client come e. Executor RetryStrategy Utilizza le factory predefinite a meno che non venga sovrascritto.

requestTimeoutMs e connectTimeoutMs

Speciifica la quantità di tempo in millisecondi di attesa prima del timeout di una richiesta HTTP. Ad esempio, è consigliabile aumentare questi tempi per il trasferimento di file di grandi dimensioni.

credentialProviderConfig

Contiene le impostazioni di configurazione per i provider di credenziali. Utilizza questa struttura per personalizzare il modo in cui l'SDK ottiene AWS le credenziali.

disableExpectHeader

Applicabile solo ai client HTTP CURL. Per impostazione predefinita, CURL aggiunge un'intestazione «Expect: 100-Continue» in una richiesta HTTP per evitare di inviare il payload HTTP in situazioni in cui il server risponde con un errore subito dopo aver ricevuto l'intestazione. Questo comportamento può salvare un viaggio di andata e ritorno ed è utile in situazioni in cui il payload è ridotto e la latenza di rete è rilevante. L'impostazione predefinita della variabile è false. Se impostato su true, CURL riceve istruzioni per inviare contemporaneamente sia l'intestazione della richiesta HTTP che il payload del corpo.

Disabilita gli IMD

Controlla se le chiamate IMDS (Instance Metadata Service) sono disabilitate. L'impostazione predefinita è false. Imposta su true per disabilitare le chiamate IMDS quando vengono eseguite al di fuori delle EC2 istanze.

Disabilita IMDS v1

Controlla se le IMDSv1 chiamate sono disabilitate mentre sono consentite. IMDSv2 L'impostazione predefinita è false. Imposta su true per disabilitare solo IMDSv1 le chiamate per una maggiore sicurezza.

enableClockSkewRegolazione

Controlla se l'inclinazione dell'orologio viene regolata dopo ogni tentativo HTTP. L'impostazione predefinita è false.

enableEndpointDiscovery

Controlla se viene utilizzato l'endpoint discovery. Per impostazione predefinita, vengono utilizzati endpoint regionali o sostituiti. Per abilitare il rilevamento degli endpoint, imposta la variabile su true.

enableHostPrefixIniezione

Controlla se l'host HTTP aggiunge un prefisso «data-» alle DiscoverInstances richieste. Per impostazione predefinita, questo comportamento è abilitato. Per disabilitarlo, imposta la variabile su false.

enableHttpClientTraccia

Controlla se il tracciamento del client HTTP è abilitato per scopi di debug. L'impostazione predefinita è false. Imposta su true per abilitare la registrazione dettagliata delle richieste e delle risposte HTTP.

enableTcpKeepVivo

Controlla se inviare pacchetti TCP keep-alive. L'impostazione predefinita è true. Utilizzare in combinazione con la tcpKeepAliveIntervalMs variabile. Questa variabile non è applicabile a Win INet e al IXMLHTTPRequest2 client.

EndpointOverride

Specifica un endpoint HTTP prioritario con cui comunicare con un servizio.

esecutore

Fa riferimento all'implementazione del gestore asincrono Executor. Il comportamento predefinito consiste nel creare e scollegare un thread per ogni chiamata asincrona. Per modificare questo comportamento, implementate una sottoclasse della Executor classe e assegnate un'istanza a questa variabile.

Segui i reindirizzamenti

Controlla il comportamento durante la gestione dei codici di reindirizzamento HTTP 300.

httpLibOverride

Speciifica l'implementazione HTTP restituita dalla fabbrica HTTP predefinita. Il client HTTP predefinito per Windows è WinHTTP. Il client HTTP predefinito per tutte le altre piattaforme è CURL.

httpLibPerfModo

Speciifica la modalità di prestazioni della libreria HTTP. L'impostazione predefinita è LOW_LATENCY. È possibile regolare questa impostazione per ottimizzare le diverse caratteristiche prestazionali.

httpRequestTimeoutSig.ra

Specifica il timeout della richiesta HTTP in millisecondi. Il valore predefinito è 0 (nessun timeout). Valuta la possibilità di aumentare questo valore quando trasferisci file di grandi dimensioni.

lowSpeedLimit

Speciifica la velocità di trasferimento minima consentita in byte al secondo. Se la velocità di trasferimento scende al di sotto della velocità specificata, l'operazione di trasferimento viene interrotta. L'impostazione predefinita è 1 byte/secondo. Questa variabile è applicabile solo ai client CURL.

MaxConnections

Speciifica il numero massimo di connessioni HTTP a un singolo server. Il valore predefinito è 25. Non esiste un valore massimo consentito diverso da quello che la larghezza di banda può ragionevolmente supportare.

nonProxyHosts

Speciifica un array di nomi host che devono ignorare le impostazioni del proxy. Utilizzate questa impostazione per escludere host specifici dalla configurazione del proxy.

Nome del profilo

Speciifica il nome del AWS profilo da utilizzare per la configurazione. L'SDK carica le impostazioni dal profilo specificato nel file di AWS configurazione.

proxyCaFile

Speciifica il percorso del file dell'autorità di certificazione per le connessioni proxy quando è diverso da quello predefinito.

proxyCaPath

Speciifica il percorso dell'archivio attendibile dell'autorità di certificazione per le connessioni proxy quando è diverso da quello predefinito.

ProxyScheme, ProxyHost, ProxyPort e ProxyPassword proxyUserName

Utilizzato per impostare e configurare un proxy per tutte le comunicazioni con. AWS Esempi di casi in cui questa funzionalità potrebbe essere utile includono il debug in combinazione con la suite Burp o l'utilizzo di un proxy per la connessione a Internet.

percorso del proxy SSLCert

Speciifica il percorso del file del certificato SSL per le connessioni proxy che richiedono certificati client.

Tipo di proxy SSLCert

Speciifica il tipo di certificato SSL per le connessioni proxy. I tipi più comuni includono PEM e DER.

password proxy SSLKey

Speciifica la password per la chiave privata SSL utilizzata nelle connessioni proxy quando la chiave è protetta da password.

percorso del proxy SSLKey

Speciifica il percorso del file di chiave privata SSL per le connessioni proxy che richiedono certificati client.

Tipo di proxy SSLKey

Speciifica il tipo di chiave privata SSL per le connessioni proxy. I tipi più comuni includono PEM e DER.

writeRateLimiter e readRateLimiter

Riferimenti alle implementazioni dei limitatori di velocità di lettura e scrittura utilizzati per limitare la larghezza di banda utilizzata dal livello di trasporto. Per impostazione predefinita, le velocità di lettura e scrittura non sono limitate. Per introdurre la limitazione, implementate una sottoclasse di RateLimiterInterface e assegnate un'istanza a queste variabili.

Regione

Specifica la AWS regione da utilizzare, ad esempio us-east-1. Per impostazione predefinita, la regione utilizzata è la regione predefinita configurata nelle credenziali applicabili. AWS

requestCompressionConfig

Contiene le impostazioni di configurazione per la compressione delle richieste. Utilizzate questa struttura per controllare quando e come le richieste vengono compresse prima della trasmissione.

Riprova Strategia

Fa riferimento all'implementazione della strategia Retry. La strategia predefinita implementa una politica di backoff esponenziale. Per eseguire una strategia diversa, implementate una sottoclasse della RetryStrategy classe e assegnate un'istanza a questa variabile.

scheme

Speciifica lo schema di indirizzamento URI, HTTP o HTTPS. Lo schema predefinito è HTTPS.

tcpKeepAliveIntervalMs

Speciifica l'intervallo di tempo in millisecondi in cui inviare un pacchetto keep-alive tramite una connessione TCP. L'intervallo predefinito è 30 secondi. L'impostazione minima è di 15 secondi. Questa variabile non è applicabile a Win INet e al IXMLHTTPRequest2 client.

Provider di telemetria

Fa riferimento all'implementazione del provider di telemetria per la raccolta di metriche e il tracciamento dei dati. Configura questa impostazione per abilitare le funzionalità di osservabilità.

userAgent

Solo per uso interno. Non modificate l'impostazione di questa variabile.

useDualStack

Controlla se utilizzare il dual stack IPv4 e gli IPv6 endpoint. Tieni presente che non tutti i AWS servizi sono supportati IPv6 in tutte le regioni.

Usa FIPS

Controlla se utilizzare moduli crittografici convalidati dagli standard federali di elaborazione delle informazioni (FIPS) 140-2. L'impostazione predefinita è false. Impostata su true quando è richiesta la conformità FIPS.

Verifica SSL

Controlla se verificare i certificati SSL. Per impostazione predefinita, i certificati SSL vengono verificati. Per disabilitare la verifica, imposta la variabile su false.

version

Speciifica la versione HTTP da utilizzare per le richieste. L'impostazione predefinita è HTTP_VERSION_2TLS (HTTP/2 over TLS).

vincere HTTPOptions

Contiene opzioni di configurazione HTTP specifiche per Windows. Include useAnonymousAuth con l'impostazione predefinita false.