

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á.

# Configurando o Região da AWS para o AWS SDK para Rust
<a name="region"></a>

Você pode acessar Serviços da AWS essa operação em uma área geográfica específica usando 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 [Região da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)o *Guia de referência de ferramentas AWS SDKs e ferramentas*.

**Importante**  
A maioria dos recursos reside em um local específico Região da AWS e você deve fornecer a região correta para o recurso ao usar o SDK.

Você deve definir um padrão Região da AWS para o SDK do Rust usar nas solicitações 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 obter exemplos de como definir a região padrão por meio do AWS `config` arquivo compartilhado ou das variáveis de ambiente, consulte [Região da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)o *Guia de referência de ferramentas AWS SDKs e ferramentas*.

## Região da AWS cadeia de fornecedores
<a name="region-provider-chain"></a>

 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](config-code.md#configure-a-client-from-the-environment).

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

1. A variável de ambiente `AWS_REGION` está marcada. 
   + Se você estiver usando o AWS Lambda serviço, essa variável de ambiente será definida automaticamente pelo AWS Lambda contêiner.

1. A `region` propriedade no AWS `config` arquivo compartilhado é 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 `credentials` arquivos compartilhados `config`AWS SDKs e](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) *do Guia de referência de ferramentas*.
   + 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 perfis diferentes, consulte [Compartilhados `config` e `credentials` arquivos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) no *Guia de referência de ferramentas AWS SDKs e ferramentas*.

1. 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.
   + Os AWS SDK para Rust únicos suportes 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;
```

## Configurando o código Região da AWS de entrada
<a name="RegionProgram"></a>

### Definir explicitamente a região no código
<a name="RegionNew"></a>

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

Certifique-se de inserir uma string válida para um Região da AWS; o valor fornecido não está validado.

### Personalizar o `RegionProviderChain`
<a name="regionProviderChain"></a>

Use [Região da AWS cadeia de fornecedores](#region-provider-chain) 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`.

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

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