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 de AWS SDK para Rust 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 determinado tipo de Servicio de AWS o la configuración para una instancia de cliente de servicio específica.
Para realizar una solicitud a un Servicio de AWS, primero debe crear una instancia de un cliente para ese servicio. Puede configurar los ajustes comunes para los clientes del servicio, como los tiempos de espera, el cliente HTTP y la configuración de reintentos.
Cada cliente de servicio requiere una Región de AWS y un proveedor de credenciales. El SDK usa estos valores para enviar solicitudes a la región correcta de sus recursos y para firmar las solicitudes con las credenciales correctas. Puede especificar estos valores mediante programación en el código o hacer que se carguen automáticamente desde el entorno.
nota
Los clientes de servicio pueden ser costosos de construir y, por lo general, están destinados a compartirse. Para facilitarlo, todas las estructuras Client implementan Clone.
Configuración de un cliente basada en el entorno
Para crear un cliente con una configuración basada en el entorno, utilice métodos estáticos de la caja aws-config:
let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
Crear un cliente de esta manera resulta útil cuando se ejecuta en Amazon Elastic Compute Cloud, AWS Lambda, o en cualquier otro contexto en el que la configuración de un cliente de servicio esté disponible directamente desde el entorno. De esta forma, el código se desacopla del entorno en el que se está ejecutando y es más sencillo implementar la aplicación en varias Regiones de AWS sin cambiar el código.
Puede anular propiedades específicas de forma explícita. La configuración explícita tiene prioridad sobre la configuración resuelta desde el entorno de ejecución. En el siguiente ejemplo se carga la configuración desde el entorno, pero anula explícitamente la Región de AWS:
let config = aws_config::defaults(BehaviorVersion::latest()) .region("us-east-1") .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
nota
No todos los valores de configuración proceden del cliente en el momento de la creación. La capa del proveedor de credenciales accede a los ajustes relacionados con las credenciales, como las claves de acceso temporales y la configuración del IAM Identity Center, cuando se utiliza el cliente para realizar una solicitud.
El código BehaviorVersion::latest() que se muestra en los ejemplos anteriores indica la versión del SDK que se debe utilizar de forma predeterminada. BehaviorVersion::latest() es adecuado para la mayoría de los casos. Para obtener más información, consulte Uso de versiones de comportamiento en AWS SDK para Rust.
Uso del patrón de generador para la configuración específica del servicio
Hay algunas opciones que solo se pueden configurar en un tipo de cliente de servicio específico. Sin embargo, lo más frecuente es que desee cargar la mayor parte de la configuración desde el entorno y, a continuación, agregar de manera específica las opciones adicionales. El patrón de generador es un patrón común en las cajas AWS SDK para Rust. Primero cargue la configuración general utilizando aws_config::defaults, a continuación, utilice el método from para cargar esa configuración en el generador del servicio que utiliza. A continuación, puede establecer cualquier valor de configuración único para ese servicio y llamar a build. Por último, el cliente se crea a partir de esta configuración modificada.
// Call a static method on aws-config that sources default config values. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; // Use the Builder for S3 to create service-specific config from the default config. let s3_config = aws_sdk_s3::config::Builder::from(&config) .accelerate(true) // Set an S3-only configuration option .build(); // Create the client. let s3 = aws_sdk_s3::Client::from_conf(s3_config);
Una forma de descubrir los métodos adicionales que están disponibles para un tipo específico de cliente de servicio es utilizar la documentación de la API, por ejemplo, para aws_sdk_s3::config::Builder
Configuración avanzada y explícita de cliente
Para configurar un cliente de servicio con valores específicos en lugar de cargar una configuración desde el entorno, puede especificarlos en el generador de Config del cliente, como se muestra a continuación:
let conf = aws_sdk_s3::Config::builder() .region("us-east-1") .endpoint_resolver(my_endpoint_resolver) .build(); let s3 = aws_sdk_s3::Client::from_conf(conf);
Al crear una configuración de servicio con aws_sdk_s3::Config::builder(), no se carga ninguna configuración predeterminada. Los valores predeterminados solo se cargan al crear una configuración basada en aws_config::defaults.
Hay algunas opciones que solo se pueden configurar en un tipo de cliente de servicio específico. El ejemplo anterior muestra un ejemplo de esto mediante el uso de la función endpoint_resolver en un cliente Amazon S3.