Definir a Região da AWS para o AWS SDK para Rust - AWS SDK para Rust

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Definir a Região da AWS para o AWS SDK para Rust

Você pode acessar os Serviços da AWS que operam em uma área geográfica específica usando o Regiões da AWS. Isso pode ser útil para redundância e para manter os dados e as aplicações em execução próximo ao lugar onde você e os usuários as acessarão. Para obter mais informações sobre como as regiões são usadas, consulte no Região da AWS no Guia de referência de ferramentas e SDKs da AWS.

Importante

A maioria dos recursos reside em uma Região da AWS específica e você deve fornecer a região correta para o recurso ao usar o SDK.

Você deve definir uma Região da AWS padrão para o SDK do Rust usar nas solicitações da AWS. Esse padrão é usado para todas as chamadas do método de serviço do SDK que não são especificadas com uma região.

Para ver exemplos de como definir a região padrão por meio do arquivo compartilhado config da AWS ou das variáveis de ambiente, consulte o Região da AWS no Guia de referência de ferramentas e AWS SDKs.

Cadeia de fornecedores da Região da AWS

O processo de pesquisa a seguir é usado ao carregar a configuração de um cliente de serviço do ambiente de execução. O primeiro valor que o SDK encontra como definido é usado na configuração do cliente. Para obter mais informações sobre a criação de clientes de serviço, consulte Configurar um cliente do ambiente.

  1. Qualquer região explícita é definida programaticamente.

  2. A variável de ambiente AWS_REGION está marcada.

    • Se você estiver usando o serviço do AWS Lambda, essa variável de ambiente será definida automaticamente pelo contêiner do AWS Lambda.

  3. A propriedade region no arquivo compartilhado config da AWS é verificada.

    • A variável de ambiente AWS_CONFIG_FILE pode ser usada para alterar o local do arquivo de configuração config compartilhado. Para saber mais sobre onde esse arquivo é mantido, consulte Localização dos arquivos compartilhados config e credentials no Guia de referência de SDKs e ferramentas da AWS.

    • A variável de ambiente AWS_PROFILE pode ser usada para selecionar um perfil nomeado em vez do padrão. Para saber mais sobre como configurar diferentes perfis, consulte Arquivos compartilhados config e credentials no Guia de referência de SDKs e ferramentas da AWS.

  4. O SDK tenta usar o serviço de metadados da instância do Amazon EC2 para determinar a região da instância do Amazon EC2 em execução no momento.

    • O AWS SDK para Rust é compatível apenas com IMDSv2.

O RegionProviderChain é usado automaticamente sem código adicional ao criar uma configuração básica para ser usada com um cliente de serviço:

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

Definir a Região da AWS no código

Definir explicitamente a região no código

Use Region::new() diretamente na sua configuração quando quiser definir explicitamente a região.

A cadeia de fornecedores da região não é usada. Ela não verifica o ambiente, o arquivo compartilhado config ou o serviço de metadados da instância do 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()); }

Insira uma string válida para uma Região da AWS; o valor fornecido não é validado.

Personalizar o RegionProviderChain

Use Cadeia de fornecedores da Região da AWS quando quiser injetar uma região condicionalmente, substituí-la ou personalizar a cadeia de resolução.

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()); }

A configuração anterior irá:

  1. Ver se há uma string definida na variável de ambiente CUSTOM_REGION.

  2. Se isso não estiver disponível, retornar à cadeia de fornecedores padrão da região.

  3. Se isso falhar, usar “us-east-2" como o fallback final.