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

Puede acceder a Servicios de AWS que operan en un área geográfica específica mediante Regiones de AWS. Esto puede ser útil para evitar redundancias y para que sus datos y aplicaciones se ejecuten cerca del lugar desde donde usted y los usuarios obtendrán acceso a ellos. Para obtener más información sobre cómo se utilizan las regiones, consulte Región de AWS en la Guía de referencia de herramientas y SDK de AWS.

importante

La mayoría de los recursos residen en una Región de AWS específica y debe proporcionar la región correcta para el recurso cuando utilice el SDK.

Debes establecer una Región de AWS predeterminada para que el SDK para Rust la utilice en las solicitudes de AWS. Este valor predeterminado se usa con las llamadas al método de servicio del SDK que no tengan especificada una región.

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

cadena de proveedores de Región de AWS

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 configurado se utiliza en la configuración del cliente. Para obtener más información, consulte Configuración de un cliente basada en el entorno.

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

  2. Se comprueba la variable de entorno AWS_REGION.

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

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

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

    • La variable de entorno AWS_PROFILE 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 Archivos config y credentials compartidos en la Guía de referencia de las herramientas y los SDK de AWS.

  4. El SDK intenta utilizar el Servicio de metadatos de instancias Amazon EC2 para determinar la región de la instancia de Amazon EC2 que está en ejecución en este momento.

    • AWS SDK para Rust solo admite IMDSv2.

RegionProviderChain se 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;

Configuración de la Región de AWS en el código

Configuración explícita de la región en el código

Utilice Region::new() directamente en la configuración cuando desee establecer la región de manera explícita.

La cadena de proveedores de regiones no se utiliza; no comprueba el entorno, el archivo config compartido ni el Servicio de metadatos de instancias Amazon EC2.

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 una Región de AWS; el valor proporcionado no está validado.

Personalización de la RegionProviderChain

Utilice la cadena de proveedores de Región de AWS 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 entorno CUSTOM_REGION.

  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.