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 de clientes de servicio en código de AWS SDK para C++
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 determinado tipo de Servicio de AWS o la configuración para una instancia de cliente de servicio específica.
El AWS SDK para C++ incluye clases de clientes de Servicio de AWS que proporcionan funciones para interactuar con los Servicios de AWS que se utilizan en la aplicación. En el SDK para C++, puede cambiar la configuración de cliente predeterminada. Esto le resultará útil si desea:
-
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++ para la que puede crear una instancia y utilizar en el código. El siguiente fragmento de código 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 estructura ClientConfiguration declara las siguientes variables de 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 las variables de configuración
En la siguiente lista se describen las variables de miembro de ClientConfiguration que puede utilizar para personalizar el comportamiento de clientes.
- accountId
-
Especifica el ID de la Cuenta de AWS para el enrutamiento de puntos de conexión basado en cuentas. Utilice el formato 111122223333. El enrutamiento de puntos de conexión basado en cuentas mejora el rendimiento de las solicitudes para algunos servicios.
- accountIdEndpointMode
-
Controla el comportamiento del enrutamiento de los puntos de conexión basado en cuentas. Los valores válidos son "required", "disabled" o "preferred". El valor predeterminado es "preferred". Configúrelo como "disabled" para desactivar el enrutamiento de puntos de conexión basado en cuentas cuando sea necesario.
- allowSystemProxy
-
Controla si el cliente HTTP descubre la configuración del proxy del sistema. El valor predeterminado es false. Establézcalo en true para habilitar la detección automática del proxy.
- IdAplicación
-
Indica un identificador opcional específico de la aplicación. Cuando se establece, este valor se añade al encabezado
User-Agentcon el formatoApp/{appId}. Puede establecer este valor mediante la variable de entornoAWS_SDK_UA_APP_IDo el atributo de perfil de configuración compartidosdk_ua_app_id. - 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_rehashde OpenSSL. No es necesario que configure 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
requestChecksumCalculationyresponseChecksumValidationcon el valor predeterminado WHEN_SUPPORTED. - configFactories
-
Especifica los métodos de fábrica para inicializar las clases de utilidades de cliente, como
ExecutoryRetryStrategy. Utiliza las fábricas predeterminadas a menos que se anulen. - requestTimeoutMs y connectTimeoutMs
-
Especifica la cantidad de tiempo en milisegundos que se debe esperar para que el tiempo de espera de una solicitud HTTP se agote. Por ejemplo, considere la posibilidad de aumentar estos tiempos cuando transfiera archivos de gran tamaño.
- credentialProviderConfig
-
Contiene las opciones de configuración de los proveedores de credenciales. Utilice esta estructura para personalizar la forma en que el SDK obtiene credenciales de AWS.
- disableExpectHeader
-
Aplicable solo a clientes HTTP CURL. De forma predeterminada, CURL añade el encabezado "Expect: 100-Continue" en una solicitud HTTP para que no se envíe la carga útil HTTP en los casos en los 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, CURL recibe la instrucción de enviar juntos el encabezado y la carga útil del cuerpo de la solicitud HTTP.
- disableIMDS
-
Controla si las llamadas al servicio de metadatos de instancias (IMDS) están deshabilitadas. El valor predeterminado es false. Establézcalo en true para deshabilitar las llamadas IMDS cuando se ejecutan fuera de las instancias EC2.
- disableImdsV1
-
Controla si las llamadas de IMDSv1 están deshabilitadas y, al mismo tiempo, se permiten las llamadas de IMDSv2. El valor predeterminado es false. Si se establece en true, solo se deshabilitan las llamadas de IMDSv1 para mejorar la seguridad.
- enableClockSkewAdjustment
-
Controla si el sesgo del reloj se ajusta después de cada intento HTTP. El valor predeterminado es false.
- enableEndpointDiscovery
-
Controla si se utiliza la detección de puntos de conexión. De forma predeterminada, se utilizan puntos de conexión regionales o anulados. Para habilitar la detección de puntos de conexión, establezca la variable en true.
- enableHostPrefixInjection
-
Controla si el host HTTP añade un prefijo "data-" a las solicitudes de DiscoverInstances. De manera predeterminada, el comportamiento está habilitado. Para deshabilitarlo, establezca la variable en false.
- enableHttpClientTrace
-
Controla si el rastreo de clientes HTTP está habilitado con fines de depuración. El valor predeterminado es false. Establézcalo en true para habilitar el registro detallado de solicitudes y respuestas HTTP.
- enableTcpKeepAlive
-
Controla si se envían paquetes TCP keep-alive. El valor predeterminado es true. Utilícelo junto con la variable
tcpKeepAliveIntervalMs. Esta variable no se aplica a WinInet ni al cliente IXMLHTTPRequest2. - endpointOverride
-
Especifica un punto de conexión HTTP de anulación con el que comunicarse con un servicio.
- executor
-
Hace referencia a la implementación del controlador Executor asíncrono. El comportamiento predeterminado es crear y separar un subproceso para cada llamada asíncrona. Para cambiar este comportamiento, implemente una subclase de la clase
Executory asigne una instancia a esta variable. - followRedirects
-
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.
- httpLibPerfMode
-
Especifica el modo de rendimiento de la biblioteca HTTP. El valor predeterminado es LOW_LATENCY. Puede ajustar esta configuración para optimizarla en función de distintas características de rendimiento.
- httpRequestTimeoutMs
-
Especifica el tiempo de espera de la solicitud HTTP en milisegundos. El valor predeterminado del tiempo de espera 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 1 byte/segundo. Esta variable solo se aplica a los clientes CURL.
- maxConnections
-
Especifica el número máximo de conexiones HTTP con un único servidor. El valor predeterminado es 25. No existe un valor máximo permitido que no sea el que pueda soportar razonablemente el ancho de banda.
- nonProxyHosts
-
Especifica un conjunto de nombres de host que deben omitir la configuración del proxy. Utilice esta configuración para excluir hosts específicos de la configuración del proxy.
- profileName
-
Especifica el nombre de perfil de AWS para usar en la configuración. El SDK carga los ajustes del perfil especificado en el archivo de configuración de AWS.
- proxyCaFile
-
Especifica la ruta al archivo de la entidad de certificación para las conexiones de proxy cuando es diferente de la predeterminada.
- proxyCaPath
-
Especifica la ruta al almacén de confianza de la autoridad de certificación para las conexiones de proxy cuando es diferente de la predeterminada.
- proxyScheme, proxyHost, proxyPort, proxyUserName y proxyPassword
-
Se utilizan 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.
- proxySSLCertPath
-
Especifica la ruta de acceso al archivo de certificado SSL para las conexiones de proxy que requieren certificados de cliente.
- proxySSLCertType
-
Especifica el tipo de certificado SSL para las conexiones de proxy. Los tipos más frecuentes incluyen PEM y DER.
- proxySSLKeyPassword
-
Especifica la contraseña de la clave privada SSL utilizada en las conexiones de proxy cuando la clave está protegida con contraseña.
- proxySSLKeyPath
-
Especifica la ruta de acceso al archivo de clave privada para las conexiones de proxy que requieren certificados de cliente.
- proxySSLKeyType
-
Especifica el tipo de clave privada SSL para las conexiones de proxy. Los tipos más frecuentes 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 limitación, implemente una subclase de
RateLimiterInterfacey asigne una instancia a estas variables. - region
-
Especifica la región de AWS que se va a utilizar; por ejemplo, us-east-1. De forma predeterminada, la región utilizada es la región predeterminada configurada en las credenciales de AWS aplicables.
- requestCompressionConfig
-
Contiene las opciones de configuración de la compresión de solicitudes. Utilice esta estructura para controlar cuándo y cómo se comprimen las solicitudes antes de la transmisión.
- retryStrategy
-
Hace referencia a la implementación de la estrategia de reintentos. La estrategia predeterminada implementa una política de retroceso exponencial. Para llevar a cabo una estrategia diferente, implemente una subclase de la clase
RetryStrategyy asigne una instancia a esta variable. - scheme
-
Especifica el esquema de direccionamiento URI: 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 keep-alive predeterminado es de 30 segundos. La configuración mínima es de 15 segundos. Esta variable no se aplica a WinInet ni al cliente IXMLHTTPRequest2.
- telemetryProvider
-
Hace referencia a la implementación del proveedor de telemetría para recopilar métricas y rastrear datos. Configure este ajuste para habilitar las características de observabilidad.
- userAgent
-
Para uso interno únicamente. No cambie la configuración de esta variable.
- useDualStack
-
Controla si se deben utilizar puntos de conexión IPv4 e IPv6 de doble pila. Tenga en cuenta que no todos los servicios de AWS admiten IPv6 en todas las regiones.
- useFIPS
-
Controla si se deben utilizar módulos criptográficos validados por los Estándares de procesamiento de la información federal (FIPS) 140-2. El valor predeterminado es false. Se establece en true cuando se requiere conformidad con FIPS.
- verifySSL
-
Controla si se deben verificar los certificados SSL. De forma predeterminada, los certificados SSL están verificados. Para deshabilitar la verificación, establezca la variable en false.
- versión
-
Especifica la versión HTTP que se va a utilizar con las solicitudes. La configuración predeterminada es HTTP_VERSION_2TLS (HTTP/2 sobre TLS).
- winHTTPOptions
-
Contiene opciones de configuración HTTP específicas de Windows. Incluye useAnonymousAuth con la configuración predeterminada false.