Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration du AWS SDK pour les clients du service C++ dans le code
Lorsque la configuration est gérée directement dans le code, l'étendue de la configuration est limitée à l'application qui utilise ce code. Dans cette application, il existe des options pour la configuration globale de tous les clients de service, la configuration pour tous les clients d'un certain Service AWS type ou la configuration pour une instance de client de service spécifique.
AWS SDK pour C++ Il inclut des classes Service AWS clientes qui fournissent des fonctionnalités permettant d'interagir avec Services AWS celles que vous utilisez dans votre application. Dans le SDK pour C++, vous pouvez modifier la configuration du client par défaut, ce qui est utile lorsque vous souhaitez effectuer des opérations telles que :
-
Se connecter à Internet via un proxy
-
Modifier les paramètres de transport HTTP, tels que le délai de connexion et les nouvelles tentatives de demande
-
Spécifier des conseils sur la taille de la mémoire tampon du socket TCP
ClientConfiguration
est une structure du SDK pour C++ que vous pouvez instancier et utiliser dans votre code. L'extrait suivant illustre l'utilisation de cette classe pour accéder à Amazon S3 via un proxy.
Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);
Déclarations de variables de configuration
La ClientConfiguration
structure déclare les variables membres suivantes :
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);
Descriptions des variables de configuration
La liste suivante décrit les variables ClientConfiguration
membres que vous pouvez utiliser pour personnaliser le comportement du client.
- accountId
-
Spécifie l' Compte AWS ID pour le routage des points de terminaison basé sur le compte. Utilisez le format 111122223333. Le routage des points de terminaison basé sur le compte améliore les performances des demandes pour certains services.
- accountIdEndpointMode
-
Contrôle le comportement de routage des terminaux basé sur le compte. Les valeurs valides sont « obligatoire », « désactivé » ou « préféré ». La valeur par défaut est « préféré ». Réglez sur « désactivé » pour désactiver le routage des terminaux basé sur le compte lorsque cela est nécessaire.
- allowSystemProxy
-
Contrôle si le client HTTP découvre les paramètres du proxy du système. Le paramètre par défaut est faux. Définissez ce paramètre sur true pour activer la découverte automatique des proxys.
- appId
-
Spécifie un identifiant facultatif spécifique à l'application. Lorsqu'elle est définie, cette valeur est ajoutée à l'
User-Agent
en-tête au formatApp/{appId}
. Vous pouvez définir cette valeur à l'aide de la variable d'AWS_SDK_UA_APP_ID
environnement ou de l'attribut de profil de configurationsdk_ua_app_id
partagé. - CAPath, CAfile
-
Indique au client HTTP où trouver le magasin d'approbation de vos certificats SSL. Un exemple de trust store peut être un répertoire préparé avec l'utilitaire
c_rehash
OpenSSL. Il n'est pas nécessaire de définir ces variables, sauf si votre environnement utilise des liens symboliques. Ces variables n'ont aucun effet sur les systèmes Windows et macOS. - Vérifiez SumConfig
-
Contient les paramètres de calcul et de validation de la somme de contrôle. Inclut
requestChecksumCalculation
etresponseChecksumValidation
avec la valeur par défaut WHEN_SUPPORTED. - Configurez les usines
-
Spécifie les méthodes d'usine pour initialiser les classes utilitaires clientes telles que
Executor
etRetryStrategy
. Utilise les usines par défaut sauf si elles sont remplacées. - requestTimeoutMs et connectTimeoutMs
-
Spécifie le temps d'attente en millisecondes avant l'expiration d'une requête HTTP. Par exemple, pensez à augmenter ces délais lors du transfert de fichiers volumineux.
- credentialProviderConfig
-
Contient les paramètres de configuration pour les fournisseurs d'informations d'identification. Utilisez cette structure pour personnaliser la manière dont le SDK obtient AWS les informations d'identification.
- disableExpectHeader
-
Applicable uniquement aux clients HTTP CURL. Par défaut, CURL ajoute un en-tête « Expect : 100-Continue » dans une requête HTTP afin d'éviter d'envoyer la charge utile HTTP dans les situations où le serveur répond par une erreur immédiatement après avoir reçu l'en-tête. Ce comportement permet d'économiser un aller-retour et est utile dans les situations où la charge utile est faible et où la latence du réseau est importante. Le paramètre par défaut de la variable est faux. S'il est défini sur true, CURL reçoit l'instruction d'envoyer à la fois l'en-tête de la requête HTTP et la charge utile du corps de la requête.
- Désactiver IMDS
-
Contrôle si les appels du service de métadonnées d'instance (IMDS) sont désactivés. Le paramètre par défaut est faux. Définissez cette valeur sur true pour désactiver les appels IMDS lorsqu'ils sont exécutés en dehors des EC2 instances.
- Désactiver IMDS V1
-
Contrôle si IMDSv1 les appels sont désactivés pendant l'autorisation IMDSv2. Le paramètre par défaut est faux. Définissez ce paramètre sur true pour désactiver uniquement les IMDSv1 appels afin de renforcer la sécurité.
- enableClockSkewAjustement
-
Contrôle si l'inclinaison de l'horloge est ajustée après chaque tentative HTTP. Le paramètre par défaut est faux.
- enableEndpointDiscovery
-
Contrôle si la découverte des terminaux est utilisée. Par défaut, des points de terminaison régionaux ou remplacés sont utilisés. Pour activer la découverte des terminaux, définissez la variable sur true.
- enableHostPrefixInjection
-
Contrôle si l'hôte HTTP ajoute un préfixe « data- » aux DiscoverInstances requêtes. Ce comportement est activé par défaut. Pour le désactiver, définissez la variable sur false.
- enableHttpClientTracer
-
Contrôle si le suivi du client HTTP est activé à des fins de débogage. Le paramètre par défaut est faux. Définissez ce paramètre sur true pour activer la journalisation détaillée des requêtes et réponses HTTP.
- enableTcpKeepVivant
-
Contrôle s'il faut envoyer des paquets TCP Keep-Alive. Le paramètre par défaut est vrai. À utiliser en conjonction avec la
tcpKeepAliveIntervalMs
variable. Cette variable ne s'applique ni à Win INet ni au IXMLHTTPRequest2 client. - Dérogation du point de terminaison
-
Spécifie un point de terminaison HTTP de remplacement avec lequel communiquer avec un service.
- exécuteur testamentaire
-
Fait référence à l'implémentation du gestionnaire asynchrone Executor. Le comportement par défaut consiste à créer et à détacher un thread pour chaque appel asynchrone. Pour modifier ce comportement, implémentez une sous-classe de la
Executor
classe et attribuez une instance à cette variable. - Suivez les redirections
-
Contrôle le comportement lors de la gestion des codes de redirection HTTP 300.
- httpLibOverride
-
Spécifie l'implémentation HTTP renvoyée par la fabrique HTTP par défaut. Le client HTTP par défaut pour Windows est WinHTTP. Le client HTTP par défaut pour toutes les autres plateformes est CURL.
- httpLibPerfMode
-
Spécifie le mode de performance de la bibliothèque HTTP. Le paramètre par défaut est LOW_LATENCY. Vous pouvez ajuster ce paramètre pour optimiser les différentes caractéristiques de performance.
- httpRequestTimeoutMme
-
Spécifie le délai d'expiration de la requête HTTP en millisecondes. La valeur par défaut est 0 (aucun délai d'attente). Envisagez d'augmenter cette valeur lors du transfert de fichiers volumineux.
- lowSpeedLimit
-
Spécifie la vitesse de transfert minimale autorisée en octets par seconde. Si la vitesse de transfert tombe en dessous de la vitesse spécifiée, l'opération de transfert est interrompue. Le paramètre par défaut est de 1 octet/seconde. Cette variable s'applique uniquement aux clients CURL.
- Connexions maximales
-
Spécifie le nombre maximal de connexions HTTP à un seul serveur. La valeur par défaut est 25. Il n'existe aucune valeur maximale autorisée autre que celle que votre bande passante peut raisonnablement supporter.
- nonProxyHosts
-
Spécifie un tableau de noms d'hôtes qui doivent contourner les paramètres du proxy. Utilisez ce paramètre pour exclure des hôtes spécifiques de la configuration du proxy.
- Nom du profil
-
Spécifie le nom du AWS profil à utiliser pour la configuration. Le SDK charge les paramètres à partir du profil spécifié dans le fichier AWS de configuration.
- proxyCaFile
-
Spécifie le chemin d'accès au fichier d'autorité de certification pour les connexions proxy lorsqu'il est différent du chemin par défaut.
- proxyCaPath
-
Spécifie le chemin d'accès au magasin de confiance de l'autorité de certification pour les connexions proxy lorsqu'il est différent du chemin par défaut.
- ProxyScheme, ProxyHost, ProxyPort et ProxyPassword proxyUserName
-
Utilisé pour installer et configurer un proxy pour toutes les communications avec AWS. Cette fonctionnalité peut être utile par exemple pour le débogage en conjonction avec la suite Burp ou l'utilisation d'un proxy pour se connecter à Internet.
- SSLCertChemin du proxy
-
Spécifie le chemin d'accès au fichier de certificat SSL pour les connexions proxy qui nécessitent des certificats clients.
- SSLCertType de proxy
-
Spécifie le type de certificat SSL pour les connexions proxy. Les types courants incluent PEM et DER.
- Mot de SSLKey passe du proxy
-
Spécifie le mot de passe de la clé privée SSL utilisée dans les connexions proxy lorsque la clé est protégée par mot de passe.
- SSLKeyChemin du proxy
-
Spécifie le chemin d'accès au fichier de clé privée SSL pour les connexions proxy qui nécessitent des certificats clients.
- SSLKeyType de proxy
-
Spécifie le type de clé privée SSL pour les connexions proxy. Les types courants incluent PEM et DER.
- writeRateLimiter et readRateLimiter
-
Références aux implémentations de limiteurs de taux de lecture et d'écriture utilisés pour limiter la bande passante utilisée par la couche de transport. Par défaut, les taux de lecture et d'écriture ne sont pas limités. Pour introduire la régulation, implémentez une sous-classe de
RateLimiterInterface
et attribuez une instance à ces variables. - region
-
Spécifie la AWS région à utiliser, telle que us-east-1. Par défaut, la région utilisée est la région par défaut configurée dans les AWS informations d'identification applicables.
- requestCompressionConfig
-
Contient les paramètres de configuration pour la compression des demandes. Utilisez cette structure pour contrôler quand et comment les demandes sont compressées avant leur transmission.
- Stratégie de réessayer
-
Fait référence à la mise en œuvre de la stratégie de nouvelle tentative. La stratégie par défaut met en œuvre une politique de ralentissement exponentiel. Pour appliquer une stratégie différente, implémentez une sous-classe de la
RetryStrategy
classe et attribuez une instance à cette variable. - scheme
-
Spécifie le schéma d'adressage URI, HTTP ou HTTPS. Le schéma par défaut est HTTPS.
- tcpKeepAliveIntervalMs
-
Spécifie l'intervalle de temps en millisecondes pendant lequel un paquet de maintien en vie doit être envoyé via une connexion TCP. L'intervalle par défaut est de 30 secondes. Le réglage minimum est de 15 secondes. Cette variable ne s'applique ni à Win INet ni au IXMLHTTPRequest2 client.
- Fournisseur de télémétrie
-
Fait référence à la mise en œuvre du fournisseur de télémétrie pour la collecte de mesures et le suivi des données. Configurez ce paramètre pour activer les fonctionnalités d'observabilité.
- userAgent
-
Pour utilisation interne uniquement. Ne modifiez pas le réglage de cette variable.
- useDualStack
-
Détermine s'il faut utiliser la double pile IPv4 et les IPv6 points de terminaison. Notez que tous les AWS services ne sont pas pris IPv6 en charge dans toutes les régions.
- Utilisez FIPS
-
Contrôle s'il faut utiliser les modules cryptographiques validés par les normes fédérales de traitement de l'information (FIPS) 140-2. Le paramètre par défaut est faux. Défini sur true lorsque la conformité à la norme FIPS est requise.
- Vérifier le protocole SSL
-
Contrôle s'il faut vérifier les certificats SSL. Par défaut, les certificats SSL sont vérifiés. Pour désactiver la vérification, définissez la variable sur false.
- version
-
Spécifie la version HTTP à utiliser pour les requêtes. Le paramètre par défaut est HTTP_VERSION_2TLS (HTTP/2 sur TLS).
- gagner HTTPOptions
-
Contient des options de configuration HTTP spécifiques à Windows. Inclut useAnonymousAuth avec le paramètre par défaut false.