Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS SDK for C++ C++-Serviceclients im Code konfigurieren
Wenn die Konfiguration direkt im Code abgewickelt wird, ist der Konfigurationsbereich auf die Anwendung beschränkt, die diesen Code verwendet. Innerhalb dieser Anwendung gibt es Optionen für die globale Konfiguration aller Service-Clients, die Konfiguration für alle Clients eines bestimmten AWS-Service Typs oder die Konfiguration für eine bestimmte Service-Client-Instanz.
AWS SDK für C++ Dazu gehören AWS-Service Clientklassen, die Funktionen für die Interaktion mit den Client-Klassen bereitstellen AWS-Services , die Sie in Ihrer Anwendung verwenden. Im SDK for C++ können Sie die Standard-Client-Konfiguration ändern, was hilfreich ist, wenn Sie Dinge tun möchten wie:
-
Herstellen einer Internetverbindung über einen Proxy
-
Ändern von HTTP-Transport-Einstellungen, z. B. Verbindungstimeout und wiederholte Anforderungsversuche
-
Angabe von TCP-Socketpuffer-Größenhinweisen
ClientConfigurationist eine Struktur im SDK for C++, die Sie instanziieren und in Ihrem Code verwenden können. Der folgende Ausschnitt veranschaulicht die Verwendung dieser Klasse für den Zugriff auf Amazon S3 über einen Proxy.
Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);
Deklarationen von Konfigurationsvariablen
Die ClientConfiguration Struktur deklariert die folgenden Mitgliedsvariablen:
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);
Beschreibungen der Konfigurationsvariablen
In der folgenden Liste werden die ClientConfiguration Mitgliedsvariablen beschrieben, mit denen Sie das Client-Verhalten anpassen können.
- accountId
-
Gibt die AWS-Konto ID für das kontobasierte Endpunkt-Routing an. Verwenden Sie das Format 111122223333. Das kontobasierte Endpunkt-Routing verbessert die Anforderungsleistung für einige Dienste.
- accountIdEndpointModus
-
Steuert das kontobasierte Endpunkt-Routing-Verhalten. Gültige Werte sind „erforderlich“, „deaktiviert“ oder „bevorzugt“. Der Standardwert ist „bevorzugt“. Stellen Sie ihn auf „deaktiviert“ ein, um das kontobasierte Endpunkt-Routing bei Bedarf zu deaktivieren.
- allowSystemProxy
-
Steuert, ob der HTTP-Client die Proxyeinstellungen des Systems erkennt. Die Standardeinstellung ist falsch. Auf true setzen, um die automatische Proxyerkennung zu aktivieren.
- appId
-
Gibt einen optionalen anwendungsspezifischen Bezeichner an. Wenn dieser Wert gesetzt ist, wird er im Format an den
User-AgentHeader angehängt.App/{appId}Sie können diesen Wert mit derAWS_SDK_UA_APP_IDUmgebungsvariablen oder demsdk_ua_app_idShared Config-Profilattribut festlegen. - cPath, CA-Datei
-
Weist den HTTP-Client an, wo er den Vertrauensspeicher für Ihr SSL-Zertifikat findet. Ein Beispiel für einen Trust Store könnte ein Verzeichnis sein, das mit dem
c_rehashOpenSSL-Hilfsprogramm erstellt wurde. Diese Variablen sollten nicht gesetzt werden müssen, es sei denn, Ihre Umgebung verwendet Symlinks. Diese Variablen haben keine Auswirkung auf Windows- und MacOS-Systeme. - ChecksumConfig
-
Enthält Einstellungen für die Berechnung und Validierung von Prüfsummen. Beinhaltet
requestChecksumCalculationundresponseChecksumValidationmit dem Standardwert WHEN_SUPPORTED. - ConfigFactories
-
Spezifiziert Factory-Methoden für die Initialisierung von Client-Hilfsklassen wie und
Executor.RetryStrategyVerwendet Standard-Factorys, sofern sie nicht überschrieben werden. - requestTimeoutMs und connectTimeoutMs
-
Gibt die Wartezeit in Millisekunden an, bis bei einer HTTP-Anfrage ein Timeout eintritt. Erwägen Sie beispielsweise, diese Zeiten bei der Übertragung großer Dateien zu verlängern.
- credentialProviderConfig
-
Enthält Konfigurationseinstellungen für Anmeldeinformationsanbieter. Verwenden Sie diese Struktur, um anzupassen, wie das SDK Anmeldeinformationen erhält AWS .
- disableExpectHeader
-
Gilt nur für CURL-HTTP-Clients. Standardmäßig fügt CURL einer HTTP-Anfrage den Header „Expect: 100-Continue“ hinzu, um zu verhindern, dass die HTTP-Payload in Situationen gesendet wird, in denen der Server unmittelbar nach Erhalt des Headers mit einem Fehler antwortet. Dieses Verhalten kann eine Hin- und Rückfahrt ersparen und ist in Situationen nützlich, in denen die Nutzlast gering ist und die Netzwerklatenz relevant ist. Die Standardeinstellung der Variablen ist False. Wenn der Wert auf true gesetzt ist, wird CURL angewiesen, sowohl den HTTP-Request-Header als auch den Hauptteil zusammen zu senden.
- IMDs deaktivieren
-
Steuert, ob IMDS-Aufrufe (Instance Metadata Service) deaktiviert sind. Die Standardeinstellung ist falsch. Auf true setzen, um IMDS-Aufrufe zu deaktivieren, wenn sie außerhalb von EC2 Instanzen ausgeführt werden.
- IMDSv1 deaktivieren
-
Steuert, ob IMDSv1 Anrufe beim Zulassen deaktiviert sind. IMDSv2 Die Standardeinstellung ist falsch. Auf true setzen, um aus Sicherheitsgründen nur IMDSv1 Anrufe zu deaktivieren.
- enableClockSkewAnpassung
-
Steuert, ob der Taktversatz nach jedem HTTP-Versuch angepasst wird. Die Standardeinstellung ist falsch.
- enableEndpointDiscovery
-
Steuert, ob Endpoint Discovery verwendet wird. Standardmäßig werden regionale oder überschriebene Endpunkte verwendet. Um die Endpunkterkennung zu aktivieren, setzen Sie die Variable auf true.
- enableHostPrefixInjektion
-
Steuert, ob der HTTP-Host DiscoverInstances Anfragen ein „data-“ -Präfix hinzufügt. Dieses Verhalten ist standardmäßig aktiviert. Um es zu deaktivieren, setzen Sie die Variable auf False.
- enableHttpClientTrace
-
Steuert, ob die HTTP-Client-Ablaufverfolgung für Debugging-Zwecke aktiviert ist. Die Standardeinstellung ist falsch. Auf true setzen, um eine detaillierte Protokollierung von HTTP-Anfragen und -Antworten zu aktivieren.
- enableTcpKeepLebendig
-
Steuert, ob TCP-Keep-Alive-Pakete gesendet werden sollen. Die Standardeinstellung ist true. In Verbindung mit der
tcpKeepAliveIntervalMsVariablen verwenden. Diese Variable gilt nicht für Win INet und den IXMLHTTPRequest2 Client. - EndpointOverride
-
Gibt einen übergeordneten HTTP-Endpunkt an, mit dem mit einem Dienst kommuniziert werden soll.
- Testamentsvollstrecker
-
Verweist auf die Implementierung des asynchronen Executor-Handlers. Das Standardverhalten besteht darin, für jeden asynchronen Aufruf einen Thread zu erstellen und zu trennen. Um dieses Verhalten zu ändern, implementieren Sie eine Unterklasse der
ExecutorKlasse und weisen Sie dieser Variablen eine Instanz zu. - Folgen Sie Weiterleitungen
-
Steuert das Verhalten beim Umgang mit HTTP 300-Weiterleitungscodes.
- httpLibOverride
-
Gibt die HTTP-Implementierung an, die von der Standard-HTTP-Factory zurückgegeben wird. Der Standard-HTTP-Client für Windows ist WinHTTP. Der Standard-HTTP-Client für alle anderen Plattformen ist CURL.
- httpLibPerfModus
-
Gibt den Leistungsmodus der HTTP-Bibliothek an. Die Standardeinstellung ist LOW_LATENCY. Sie können diese Einstellung anpassen, um sie für verschiedene Leistungsmerkmale zu optimieren.
- httpRequestTimeoutFrau
-
Gibt das Timeout für HTTP-Anfragen in Millisekunden an. Der Standardwert ist 0 (kein Timeout). Erwägen Sie, diesen Wert zu erhöhen, wenn Sie große Dateien übertragen.
- lowSpeedLimit
-
Gibt die minimal zulässige Übertragungsgeschwindigkeit in Byte pro Sekunde an. Wenn die Übertragungsgeschwindigkeit unter die angegebene Geschwindigkeit fällt, wird der Übertragungsvorgang abgebrochen. Die Standardeinstellung ist 1 Byte/Sekunde. Diese Variable gilt nur für CURL-Clients.
- MaxConnections
-
Gibt die maximale Anzahl von HTTP-Verbindungen zu einem einzelnen Server an. Der Standardwert ist 25. Es gibt keinen anderen zulässigen Höchstwert als den, den Ihre Bandbreite vernünftigerweise unterstützen kann.
- nonProxyHosts
-
Gibt eine Reihe von Hostnamen an, die die Proxyeinstellungen umgehen sollen. Verwenden Sie diese Einstellung, um bestimmte Hosts von der Proxykonfiguration auszuschließen.
- Profilname
-
Gibt den AWS Profilnamen an, der für die Konfiguration verwendet werden soll. Das SDK lädt Einstellungen aus dem angegebenen Profil in die AWS Konfigurationsdatei.
- proxyCaFile
-
Gibt den Pfad zur Zertifizierungsstellendatei für Proxyverbindungen an, falls dieser vom Standard abweicht.
- proxyCaPath
-
Gibt den Pfad zum Vertrauensspeicher der Zertifizierungsstelle für Proxyverbindungen an, falls dieser vom Standard abweicht.
- ProxyScheme, ProxyHost, ProxyPort und ProxyPassword proxyUserName
-
Wird verwendet, um einen Proxy für die gesamte Kommunikation mit einzurichten und zu konfigurieren. AWS Diese Funktionalität könnte beispielsweise beim Debuggen in Verbindung mit der Burp-Suite oder bei der Verwendung eines Proxys für die Verbindung mit dem Internet nützlich sein.
- Proxy-Pfad SSLCert
-
Gibt den Pfad zur SSL-Zertifikatsdatei für Proxyverbindungen an, für die Client-Zertifikate erforderlich sind.
- SSLCertProxy-Typ
-
Gibt den SSL-Zertifikatstyp für Proxyverbindungen an. Zu den gängigen Typen gehören PEM und DER.
- Proxy-Passwort SSLKey
-
Gibt das Passwort für den privaten SSL-Schlüssel an, der bei Proxyverbindungen verwendet wird, wenn der Schlüssel kennwortgeschützt ist.
- Proxy-Pfad SSLKey
-
Gibt den Pfad zur privaten SSL-Schlüsseldatei für Proxyverbindungen an, für die Client-Zertifikate erforderlich sind.
- SSLKeyProxy-Typ
-
Gibt den Typ des privaten SSL-Schlüssels für Proxyverbindungen an. Zu den gängigen Typen gehören PEM und DER.
- writeRateLimiter und readRateLimiter
-
Verweise auf die Implementierungen von Lese- und Schreibratenbegrenzern, die zur Drosselung der von der Transportschicht verwendeten Bandbreite verwendet werden. Standardmäßig werden die Lese- und Schreibraten nicht gedrosselt. Um die Drosselung einzuführen, implementieren Sie eine Unterklasse von
RateLimiterInterfaceund weisen Sie diesen Variablen eine Instanz zu. - Region
-
Gibt die zu verwendende AWS Region an, z. B. us-east-1. Standardmäßig ist die verwendete Region die Standardregion, die in den entsprechenden AWS Anmeldeinformationen konfiguriert ist.
- requestCompressionConfig
-
Enthält Konfigurationseinstellungen für die Komprimierung von Anfragen. Verwenden Sie diese Struktur, um zu steuern, wann und wie Anfragen vor der Übertragung komprimiert werden.
- Strategie erneut versuchen
-
Verweist auf die Implementierung der Wiederholungsstrategie. Die Standardstrategie implementiert eine exponentielle Backoff-Richtlinie. Um eine andere Strategie auszuführen, implementieren Sie eine Unterklasse der
RetryStrategyKlasse und weisen Sie dieser Variablen eine Instanz zu. - scheme
-
Gibt das URI-Adressierungsschema an, entweder HTTP oder HTTPS. Das Standardschema ist HTTPS.
- tcpKeepAliveIntervalMs
-
Gibt das Zeitintervall in Millisekunden an, in dem ein Keep-Alive-Paket über eine TCP-Verbindung gesendet werden soll. Das Standardintervall beträgt 30 Sekunden. Die Mindesteinstellung ist 15 Sekunden. Diese Variable gilt nicht für Win INet und den IXMLHTTPRequest2 Client.
- Telemetrieanbieter
-
Verweist auf die Implementierung des Telemetrieanbieters zum Sammeln von Metriken und Nachverfolgungsdaten. Konfigurieren Sie diese Einstellung, um Observability-Funktionen zu aktivieren.
- userAgent
-
Nur zur internen Verwendung. Ändern Sie die Einstellung dieser Variablen nicht.
- useDualStack
-
Steuert, ob Dual-Stack IPv4 und IPv6 Endpoints verwendet werden sollen. Beachten Sie, dass nicht alle AWS Dienste IPv6 in allen Regionen unterstützt werden.
- Verwenden Sie FIPS
-
Steuert, ob nach den Federal Information Processing Standards (FIPS) 140-2 validierte kryptografische Module verwendet werden sollen. Die Standardeinstellung ist False. Wird auf „true“ gesetzt, wenn FIPS-Konformität erforderlich ist.
- SSL verifizieren
-
Steuert, ob SSL-Zertifikate verifiziert werden sollen. Standardmäßig werden SSL-Zertifikate verifiziert. Um die Überprüfung zu deaktivieren, setzen Sie die Variable auf false.
- version
-
Gibt die HTTP-Version an, die für Anfragen verwendet werden soll. Die Standardeinstellung ist HTTP_VERSION_2TLS (HTTP/2 über TLS).
- gewinnen HTTPOptions
-
Enthält Windows-spezifische HTTP-Konfigurationsoptionen. Beinhaltet useAnonymousAuth mit der Standardeinstellung false.