Configuration du AWS SDK pour les clients du service C++ dans le code - AWS SDK pour C++

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

ClientConfigurationest 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-Agenten-tête au formatApp/{appId}. Vous pouvez définir cette valeur à l'aide de la variable d'AWS_SDK_UA_APP_IDenvironnement ou de l'attribut de profil de configuration sdk_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 et responseChecksumValidation 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.