Valores predeterminados de configuración inteligente - SDK y herramientas de AWS

Valores predeterminados de configuración inteligente

nota

Para obtener ayuda para comprender el diseño de las páginas de configuración o para interpretar la tabla Soporte mediante herramientas y SDK de AWS que aparece a continuación, consulte Comprender las páginas de configuración de esta guía.

Con la característica de valores predeterminados de configuración inteligente, los AWS SDK pueden proporcionar valores predeterminados optimizados y predefinidos para otros ajustes de configuración.

Configure esta funcionalidad mediante lo siguiente:

defaults_mode: configuración de archivos config de AWS compartidos
AWS_DEFAULTS_MODE: variable de entorno
aws.defaultsMode: propiedad del sistema JVM: solo en Java/Kotlin

Con esta configuración, puede elegir un modo que se alinee con la arquitectura de la aplicación y, a continuación, proporcionar valores predeterminados optimizados para la aplicación. Si una configuración del AWS SDK tiene un valor establecido de forma explícita, ese valor siempre tiene prioridad. Si una configuración del AWS SDK no tiene un valor establecido de forma explícita y no es igual al defaults_mode antiguo, esta característica puede proporcionar diferentes valores predeterminados para diversas configuraciones optimizadas para tu aplicación. La configuración puede incluir lo siguiente: la configuración de comunicación HTTP, el comportamiento de los reintentos, la configuración del punto de conexión regional del servicio y, posiblemente, cualquier configuración relacionada con el SDK. Los clientes que utilizan esta característica pueden obtener nuevos valores predeterminados de configuración adaptados a los escenarios de uso habituales. Si su defaults_mode no es igual a su legacy, le recomendamos que realice pruebas en la aplicación cuando actualice el SDK, ya que los valores predeterminados proporcionados podrían cambiar a medida que evolucionen las prácticas recomendadas.

Valor predeterminado: legacy

Nota: Las nuevas versiones principales de los SDK se establecerán de forma predeterminada en standard.

Valores válidos:

  • legacy: proporciona una configuración predeterminada que varía según el SDK y que existía antes de la creación de defaults_mode.

  • standard: proporciona los últimos valores predeterminados recomendados que deberían poder ejecutarse de forma segura en la mayoría de los escenarios.

  • in-region: se basa en el modo estándar e incluye una optimización adaptada a las aplicaciones que llaman a Servicios de AWS desde la misma Región de AWS.

  • cross-region: se basa en el modo estándar e incluye una optimización adaptada a las aplicaciones que llaman a Servicios de AWS en una región diferente.

  • mobile: se basa en el modo estándar e incluye una optimización adaptada a las aplicaciones móviles.

  • auto: se basa en el modo estándar e incluye funciones experimentales. El SDK intenta descubrir el tiempo de ejecución para determinar automáticamente la configuración adecuada. La detección automática se basa en la heurística y no proporciona una precisión del 100 %. Si no se puede determinar el tiempo de ejecución, se utiliza el modo standard. La autodetección puede consultar los metadatos de la instancia y datos de usuario, lo que puede introducir latencia. Si la startup es fundamental para tu aplicación, te recomendamos que elijas un defaults_mode explícito en su lugar.

Ejemplo de configuración de este valor en el archivo config:

[default] defaults_mode = standard

Los siguientes parámetros pueden optimizarse en función de la selección de defaults_mode:

  • retryMode: especifica cómo el SDK intenta volver a intentarlo. Consulte Comportamiento de los reintentos.

  • stsRegionalEndpoints: especifica cómo el SDK determina el punto de conexión de Servicio de AWS que utiliza para comunicarse con AWS Security Token Service (AWS STS). Consulte Puntos de conexión regionales de AWS STS.

  • s3UsEast1RegionalEndpoints: especifica cómo el SDK determina el punto de conexión del servicio de AWS que utiliza para comunicarse con Amazon S3 para la región us-east-1.

  • connectTimeoutInMillis: tras realizar un intento de conexión inicial en un socket, el tiempo transcurrido hasta que se agote el tiempo de espera. Si el cliente no recibe la finalización del apretón de manos de conexión, se da por vencido y no se realiza la operación.

  • tlsNegotiationTimeoutInMillis: el tiempo máximo que puede tardar un protocolo de enlace TLS desde el momento en que se envía el mensaje CLIENT HELLO hasta el momento en que el cliente y el servidor han negociado completamente los cifrados e intercambiado claves.

El valor predeterminado de cada configuración cambia en función del valor defaults_mode seleccionado para la aplicación. Estos valores se configuran actualmente de la siguiente manera (sujetos a cambios):

Parámetro modo standard modo in-region modo cross-region modo mobile
retryMode standard standard standard standard
stsRegionalEndpoints regional regional regional regional
s3UsEast1RegionalEndpoints regional regional regional regional
connectTimeoutInMillis 3100 1 100 3100 30000
tlsNegotiationTimeoutInMillis 3100 1 100 3100 30000

Por ejemplo, si el defaults_mode que ha seleccionado es standard, entonces el valor standard se asignará para retry_mode (de las opciones retry_mode válidas) y el valor regional se asignará para stsRegionalEndpoints (de las opciones stsRegionalEndpoints válidas).

Soporte mediante SKD y herramientas de AWS

Los siguientes SDK admiten las características y los ajustes descritos en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK para Java y AWS SDK para Kotlin únicamente.

SDK Compatible Notas o más información
AWS CLI v2 No
SDK para C++ Parámetros no optimizados: stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis.
SDK para Go V2 (1.x) Parámetros no optimizados: retryMode, stsRegionalEndpoints, s3UsEast1RegionalEndpoints.
SDK para Go 1.x (V1) No
SDK para Java 2.x Parámetros no optimizados: stsRegionalEndpoints.
SDK para Java 1.x No
SDK para JavaScript 3.x Parámetros no optimizados: stsRegionalEndpoints, s3UsEast1RegionalEndpoints, tlsNegotiationTimeoutInMillis. connectTimeoutInMillis se llama connectionTimeout.
SDK para JavaScript 2.x No
SDK de para Kotlin No
SDK para .NET 4.x Parámetros no optimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.
SDK para .NET 3.x Parámetros no optimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.
SDK para PHP 3.x Parámetros no optimizados: tlsNegotiationTimeoutInMillis.
SDK para Python (Boto3) Parámetros no optimizados: tlsNegotiationTimeoutInMillis.
SDK para Ruby 3.x
SDK de para Rust No
SDK de para Swift No
Herramientas para PowerShell V5 Parámetros no optimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.
Herramientas para PowerShell V4 Parámetros no optimizados: connectTimeoutInMillis, tlsNegotiationTimeoutInMillis.