Configuración del Región de AWS para el AWS SDK para Rust - 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.

Configuración del Región de AWS para el AWS SDK para Rust

Puede acceder a Servicios de AWS los que operan en un área geográfica específica utilizando Regiones de AWS. Esto puede resultar útil tanto por motivos de redundancia como para mantener sus datos y aplicaciones funcionando cerca del lugar donde usted y sus usuarios acceden a ellos. Para obtener más información sobre cómo se utilizan las regiones, consulte la Guía Región de AWSde referencia de herramientas AWS SDKs y herramientas.

importante

La mayoría de los recursos residen en una región específica Región de AWS y, al utilizar el SDK, debes proporcionar la región correcta para el recurso.

Debes establecer un SDK predeterminado Región de AWS para que Rust lo utilice en AWS las solicitudes. Este valor predeterminado se usa para cualquier llamada a un método de servicio del SDK que no esté especificada en una región.

Para ver ejemplos sobre cómo configurar la región predeterminada mediante el AWS config archivo compartido o las variables de entorno, consulta Región de AWSla Guía de referencia de herramientas AWS SDKs y herramientas.

Región de AWS cadena de proveedores

El siguiente proceso de búsqueda se utiliza al cargar la configuración de un cliente de servicio desde el entorno de ejecución. El primer valor que el SDK encuentra establecido se utiliza en la configuración del cliente. Para obtener más información sobre la creación de clientes de servicio, consulteConfigure un cliente desde el entorno.

  1. Cualquier región explícita establecida mediante programación.

  2. Se comprueba la variable de entorno AWS_REGION.

    • Si está utilizando el AWS Lambda servicio, el contenedor establece automáticamente esta variable de entorno. AWS Lambda

  3. La region propiedad del AWS config archivo compartido está marcada.

    • La variable de AWS_CONFIG_FILE entorno se puede utilizar para cambiar la ubicación del config archivo compartido. Para obtener más información sobre dónde se guarda este archivo, consulte Ubicación de los credentials archivos config y archivos compartidos en la Guía de referencia de AWS SDKs and Tools.

    • La variable de AWS_PROFILE entorno se puede utilizar para seleccionar un perfil con nombre en lugar del predeterminado. Para obtener más información sobre la configuración de diferentes perfiles, consulte credentialsArchivos config y compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.

  4. El SDK intenta utilizar el Amazon EC2 Instance Metadata Service para determinar la región de la EC2 instancia de Amazon que se está ejecutando actualmente.

    • El AWS SDK para Rust único soporte IMDSv2.

RegionProviderChainSe usa automáticamente sin código adicional al crear una configuración básica para usarla con un cliente de servicio:

let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await;

Configurar el código Región de AWS de entrada

Establecer explícitamente la región en el código

Úselo Region::new() directamente en su configuración cuando desee establecer la región de forma explícita.

La cadena de proveedores de regiones no se utiliza; no comprueba el entorno, el config archivo compartido ni el Amazon EC2 Instance Metadata Service.

use aws_config::{defaults, BehaviorVersion}; use aws_sdk_s3::config::Region; #[tokio::main] async fn main() { let config = defaults(BehaviorVersion::latest()) .region(Region::new("us-west-2")) .load() .await; println!("Using Region: {}", config.region().unwrap()); }

Asegúrese de introducir una cadena válida para un Región de AWS; el valor proporcionado no está validado.

Personalizar el RegionProviderChain

Úselo Región de AWS cadena de proveedores cuando desee inyectar una región de forma condicional, anularla o personalizar la cadena de resolución.

use aws_config::{defaults, BehaviorVersion}; use aws_config::meta::region::RegionProviderChain; use aws_sdk_s3::config::Region; use std::env; #[tokio::main] async fn main() { let region_provider = RegionProviderChain::first_try(env::var("CUSTOM_REGION").ok().map(Region::new)) .or_default_provider() .or_else(Region::new("us-east-2")); let config = aws_config::defaults(BehaviorVersion::latest()) .region(region_provider) .load() .await; println!("Using Region: {}", config.region().unwrap()); }

La configuración anterior permitirá:

  1. Primero, compruebe si hay una cadena establecida en la variable de CUSTOM_REGION entorno.

  2. Si no está disponible, recurra a la cadena de proveedores regionales predeterminada.

  3. Si eso no funciona, utilice «us-east-2" como alternativa final.