Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración del AWS SDK para clientes de servicios de C++ en código
Cuando la configuración se gestiona directamente en el código, el alcance de la configuración se limita a la aplicación que utiliza ese código. Dentro de esa aplicación, hay opciones para la configuración global de todos los clientes de servicio, la configuración para todos los clientes de un Servicio de AWS tipo determinado o la configuración para una instancia de cliente de servicio específica.
AWS SDK para C++ Incluye clases de Servicio de AWS clientes que proporcionan funciones para interactuar con las Servicios de AWS que se utilizan en la aplicación. En el SDK para C++, puedes cambiar la configuración predeterminada del cliente, lo que resulta útil cuando quieres hacer cosas como las siguientes:
-
Conectarse a Internet a través del proxy
-
Cambiar la configuración del transporte HTTP, como el tiempo de espera y los reintentos de solicitud de conexión
-
Especificar sugerencias del tamaño del búfer del socket TCP
ClientConfiguration
es una estructura del SDK para C++ que puede instanciar y utilizar en el código. El siguiente fragmento ilustra el uso de esta clase para acceder a Amazon S3 a través de un proxy.
Aws::Client::ClientConfiguration clientConfig; clientConfig.proxyHost = "localhost"; clientConfig.proxyPort = 1234; clientConfig.proxyScheme = Aws::Http::Scheme::HTTPS; Aws::S3::S3Client(clientConfig);
Declaraciones de variables de configuración
La ClientConfiguration
estructura declara las siguientes variables miembro:
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);
Descripciones de variables de configuración
En la siguiente lista se describen las variables ClientConfiguration
miembros que puede utilizar para personalizar el comportamiento del cliente.
- accountId
-
Especifica el Cuenta de AWS ID del enrutamiento de puntos finales basado en cuentas. Utilice el formato 111122223333. El enrutamiento de puntos finales basado en cuentas mejora el rendimiento de las solicitudes de algunos servicios.
- accountIdEndpointModo
-
Controla el comportamiento del enrutamiento de los puntos finales basado en cuentas. Los valores válidos son «obligatorio», «deshabilitado» o «preferido». El valor predeterminado es «preferido». Configúrelo en «inhabilitado» para desactivar el enrutamiento de puntos finales basado en cuentas cuando sea necesario.
- allowSystemProxy
-
Controla si el cliente HTTP descubre la configuración del proxy del sistema. La configuración predeterminada es false. Configúrelo en true para habilitar la detección automática del proxy.
- appId
-
Especifica un identificador opcional específico de la aplicación. Cuando se establece, este valor se añade al
User-Agent
encabezado en el formato.App/{appId}
Puede establecer este valor mediante la variable deAWS_SDK_UA_APP_ID
entorno o el atributo de perfil de configuraciónsdk_ua_app_id
compartido. - CApath, CAfile
-
Indica al cliente HTTP dónde encontrar el almacén de confianza de certificados SSL. Un ejemplo de almacén de confianza podría ser un directorio preparado con la utilidad
c_rehash
OpenSSL. No debería ser necesario configurar estas variables a menos que su entorno utilice enlaces simbólicos. Estas variables no tienen ningún efecto en los sistemas Windows y macOS. - CheckSumConfig
-
Contiene la configuración de cálculo y validación de la suma de verificación. Incluye
requestChecksumCalculation
y tiene el valor predeterminadoresponseChecksumValidation
WHEN_SUPPORTED. - Config Factories
-
Especifica los métodos de fábrica para inicializar las clases de utilidades del cliente, como y.
Executor
RetryStrategy
Utiliza las fábricas predeterminadas a menos que se anulen. - requestTimeoutMs y connectTimeoutMs
-
Especifica la cantidad de tiempo en milisegundos que se debe esperar antes de que se agote el tiempo de espera de una solicitud HTTP. Por ejemplo, considere la posibilidad de aumentar estos tiempos al transferir archivos de gran tamaño.
- credentialProviderConfig
-
Contiene los ajustes de configuración para los proveedores de credenciales. Utilice esta estructura para personalizar la forma en que el SDK obtiene AWS las credenciales.
- disableExpectHeader
-
Aplicable solo a los clientes HTTP CURL. De forma predeterminada, CURL añade el encabezado «Expect: 100-Continue» en una solicitud HTTP para evitar enviar la carga HTTP en situaciones en las que el servidor responde con un error inmediatamente después de recibir el encabezado. Este comportamiento puede ahorrar un viaje de ida y vuelta y resulta útil en situaciones en las que la carga útil es pequeña y la latencia de la red es relevante. La configuración predeterminada de la variable es false. Si se establece en true, se indica a CURL que envíe juntos el encabezado de la solicitud HTTP y la carga útil del cuerpo.
- Deshabilite los IMDS
-
Controla si las llamadas al Servicio de metadatos de instancias (IMDS) están deshabilitadas. La configuración predeterminada es falsa. Establézcalo en true para deshabilitar las llamadas de IMDS cuando se ejecutan fuera de las EC2 instancias.
- Deshabilite IMDS v1
-
Controla si las IMDSv1 llamadas se deshabilitan mientras se permiten. IMDSv2 La configuración predeterminada es falsa. Configúrelo en verdadero para deshabilitar solo IMDSv1 las llamadas para mejorar la seguridad.
- enableClockSkewAjuste
-
Controla si la inclinación del reloj se ajusta después de cada intento de HTTP. La configuración predeterminada es falsa.
- enableEndpointDiscovery
-
Controla si se utiliza la detección de puntos finales. De forma predeterminada, se utilizan puntos finales regionales o anulados. Para habilitar la detección de puntos finales, defina la variable en true.
- enableHostPrefixInyección
-
Controla si el host HTTP añade un prefijo «data-» a DiscoverInstances las solicitudes. De forma predeterminada, este comportamiento está habilitado. Para deshabilitarlo, defina la variable en false.
- enableHttpClientRastrear
-
Controla si el rastreo de clientes HTTP está habilitado con fines de depuración. La configuración predeterminada es falsa. Establézcalo en true para habilitar el registro detallado de solicitudes y respuestas HTTP.
- enableTcpKeep¡Vivo
-
Controla si se envían paquetes TCP keep-alive. La configuración predeterminada es true. Utilícelo junto con la
tcpKeepAliveIntervalMs
variable. Esta variable no se aplica a Win INet ni al IXMLHTTPRequest2 cliente. - Anulación de Endpoint
-
Especifica un punto final HTTP principal con el que comunicarse con un servicio.
- albacea
-
Hace referencia a la implementación del controlador Executor asíncrono. El comportamiento predeterminado es crear y separar un hilo para cada llamada asíncrona. Para cambiar este comportamiento, implementa una subclase de la
Executor
clase y asigna una instancia a esta variable. - Sigue los redireccionamientos
-
Controla el comportamiento al gestionar los códigos de redireccionamiento HTTP 300.
- httpLibOverride
-
Especifica la implementación HTTP devuelta por la fábrica HTTP predeterminada. El cliente HTTP predeterminado para Windows es WinHTTP. El cliente HTTP predeterminado para todas las demás plataformas es CURL.
- httpLibPerfModo
-
Especifica el modo de rendimiento de la biblioteca HTTP. La configuración predeterminada es LOW_LATENCY. Puede ajustar esta configuración para optimizarla según diferentes características de rendimiento.
- httpRequestTimeoutSra
-
Especifica el tiempo de espera de la solicitud HTTP en milisegundos. El valor predeterminado es 0 (sin tiempo de espera). Considere la posibilidad de aumentar este valor al transferir archivos grandes.
- lowSpeedLimit
-
Especifica la velocidad de transferencia mínima permitida en bytes por segundo. Si la velocidad de transferencia es inferior a la velocidad especificada, la operación de transferencia se interrumpe. La configuración predeterminada es de 1 byte/segundo. Esta variable solo se aplica a los clientes CURL.
- Conexiones máximas
-
Especifica el número máximo de conexiones HTTP a un único servidor. El valor predeterminado es 25. No existe un valor máximo permitido que no sea el que su ancho de banda pueda soportar razonablemente.
- nonProxyHosts
-
Especifica un conjunto de nombres de host que deben omitir la configuración del proxy. Use esta configuración para excluir hosts específicos de la configuración del proxy.
- profileName
-
Especifica el nombre del AWS perfil que se va a usar en la configuración. El SDK carga los ajustes del perfil especificado en el archivo AWS de configuración.
- proxyCaFile
-
Especifica la ruta al archivo de la entidad emisora de certificados para las conexiones proxy cuando es diferente de la predeterminada.
- proxyCaPath
-
Especifica la ruta al almacén de confianza de la entidad emisora de certificados para las conexiones proxy cuando es diferente de la predeterminada.
- ProxyScheme, ProxyHost, ProxyPort y ProxyPassword proxyUserName
-
Se utiliza para instalar y configurar un proxy para todas las comunicaciones con. AWS Algunos ejemplos de casos en los que esta funcionalidad puede resultar útil son la depuración junto con la suite Burp o el uso de un proxy para conectarse a Internet.
- Ruta del proxy SSLCert
-
Especifica la ruta al archivo de certificado SSL para las conexiones proxy que requieren certificados de cliente.
- SSLCerttipo de proxy
-
Especifica el tipo de certificado SSL para las conexiones proxy. Los tipos más comunes incluyen PEM y DER.
- Contraseña de proxy SSLKey
-
Especifica la contraseña de la clave privada SSL utilizada en las conexiones proxy cuando la clave está protegida con contraseña.
- Ruta de proxy SSLKey
-
Especifica la ruta al archivo de clave privada SSL para las conexiones proxy que requieren certificados de cliente.
- SSLKeytipo de proxy
-
Especifica el tipo de clave privada SSL para las conexiones proxy. Los tipos más comunes incluyen PEM y DER.
- writeRateLimiter y readRateLimiter
-
Referencias a las implementaciones de limitadores de velocidad de lectura y escritura que se utilizan para reducir el ancho de banda utilizado por la capa de transporte. De forma predeterminada, las velocidades de lectura y escritura no están limitadas. Para introducir la regulación, implementa una subclase de
RateLimiterInterface
y asigna una instancia a estas variables. - region
-
Especifica la AWS región que se va a utilizar, como us-east-1. De forma predeterminada, la región utilizada es la región predeterminada configurada en las credenciales aplicables AWS .
- requestCompressionConfig
-
Contiene los ajustes de configuración para la compresión de solicitudes. Utilice esta estructura para controlar cuándo y cómo se comprimen las solicitudes antes de la transmisión.
- Estrategia de reintento
-
Hace referencia a la implementación de la estrategia de reintento. La estrategia predeterminada implementa una política de retroceso exponencial. Para llevar a cabo una estrategia diferente, implementa una subclase de la
RetryStrategy
clase y asigna una instancia a esta variable. - scheme
-
Especifica el esquema de direccionamiento de la URI, ya sea HTTP o HTTPS. El esquema predeterminado es HTTPS.
- tcpKeepAliveIntervalMs
-
Especifica el intervalo de tiempo en milisegundos en el que se debe enviar un paquete Keep-Alive a través de una conexión TCP. El intervalo predeterminado es de 30 segundos. La configuración mínima es de 15 segundos. Esta variable no se aplica a Win INet ni al IXMLHTTPRequest2 cliente.
- Proveedor de telemetría
-
Hace referencia a la implementación del proveedor de telemetría para recopilar métricas y rastrear datos. Configure este ajuste para habilitar las funciones de observabilidad.
- userAgent
-
Para uso interno únicamente. No cambie la configuración de esta variable.
- useDualStack
-
Controla si se debe utilizar la doble pila IPv4 y los IPv6 puntos finales. Tenga en cuenta que no todos los AWS servicios son compatibles IPv6 en todas las regiones.
- Utilice FIPS
-
Controla si se utilizan módulos criptográficos validados por las Normas Federales de Procesamiento de Información (FIPS) 140-2. La configuración predeterminada es falsa. Se establece en true cuando se requiere el cumplimiento de la norma FIPS.
- Verifica el SSL
-
Controla si se deben verificar los certificados SSL. De forma predeterminada, los certificados SSL están verificados. Para deshabilitar la verificación, defina la variable en false.
- versión
-
Especifica la versión HTTP que se va a utilizar para las solicitudes. La configuración predeterminada es HTTP_VERSION_2TLS (HTTP/2 sobre TLS).
- ganar HTTPOptions
-
Contiene opciones de configuración HTTP específicas de Windows. Incluye useAnonymousAuth el valor predeterminado false.