Crear un cliente de servicio - AWS SDK para Rust

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.

Crear un cliente de servicio

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 un proveedor de credenciales Región de AWS y un proveedor de credenciales. El SDK usa estos valores para enviar solicitudes a la región correcta para 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 pensados para ser compartidos. Para facilitar esto, todas las Client estructuras se Clone implementan.

El SDK tiene una serie de lugares (o fuentes) que comprueba para encontrar un valor para los ajustes de configuración.

  1. Cualquier ajuste explícito establecido en el código o en el propio cliente de un servicio tiene prioridad sobre cualquier otra cosa.

  2. Variables de entorno

    • Para obtener más información sobre la configuración de las variables de entorno, consulte las variables de entorno en la Guía de referencia de herramientas AWS SDKs y herramientas.

  3. Archivos config y credentials compartidos

  4. Los valores predeterminados proporcionados por el propio código fuente del SDK se utilizan en último lugar.

    • Algunas propiedades, como la región, no tienen un valor predeterminado. Debe especificarlas de forma explícita en el código, en una configuración de entorno o en el config archivo compartido. Si el SDK no puede resolver la configuración requerida, las solicitudes de API pueden fallar en tiempo de ejecución.

La mayoría de las configuraciones de las variables de entorno config y de los credentials archivos las comparten varias AWS SDKs herramientas para garantizar un comportamiento coherente. Para ver todos los ajustes que el SDK puede resolver a partir de las variables de entorno o los archivos de configuración, consulta la referencia sobre los ajustes en la Guía de referencia de herramientas AWS SDKs y las herramientas.

Configure un cliente desde el entorno

Para crear un cliente con una configuración basada en el entorno, utilice métodos estáticos desde la aws-config caja:

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 o en cualquier otro contexto en el que la configuración de un cliente de servicio esté disponible directamente desde el entorno. AWS Lambda Esto desvincula el código del entorno en el que se ejecuta y facilita la implementación de la aplicación en varios Regiones de AWS sin cambiar el código.

Puedes 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. El siguiente ejemplo carga la configuración del entorno, pero anula explícitamente: 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 los obtiene el 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 que BehaviorVersion::latest() se muestra en los ejemplos anteriores indica la versión del SDK que se debe usar como predeterminada. BehaviorVersion::latest()es adecuado para la mayoría de los casos. Para obtener más información, consulte Versiones de comportamiento.

Utilice el patrón de creación 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, añadir específicamente las opciones adicionales. El patrón del constructor es un patrón común en las AWS SDK para Rust cajas. Primero debe cargar la configuración general utilizando el método yaws_config::defaults, a continuación, utilizar el from método para cargar esa configuración en el generador del servicio con el que está trabajando. A continuación, puede establecer cualquier valor de configuración único para ese servicio y llamadabuild. 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, for aws_sdk_s3::config::Builder.

Configuración avanzada y explícita del cliente

Para configurar un cliente de servicio con valores específicos en lugar de cargar una configuración del entorno, puede especificarlos en el Config generador de clientes, 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 conaws_sdk_s3::Config::builder(), no se carga ninguna configuración predeterminada. Los valores predeterminados solo se cargan al crear una configuración basada enaws_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 endpoint_resolver función en un cliente Amazon S3.