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.
-
Cualquier ajuste explícito establecido en el código o en el propio cliente de un servicio tiene prioridad sobre cualquier otra cosa.
-
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.
-
-
Archivos
config
ycredentials
compartidos-
Para obtener más información sobre la configuración de estos archivos, consulte los
credentials
archivos compartidosconfig
y de la AWS SDKs Guía de referencia de herramientas.
-
-
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.