

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatur Wilayah AWS untuk AWS SDK for Rust
<a name="region"></a>

Anda dapat mengakses Layanan AWS yang beroperasi di wilayah geografis tertentu dengan menggunakan Wilayah AWS. Ini dapat berguna baik untuk redundansi dan untuk menjaga data dan aplikasi Anda berjalan dekat dengan tempat Anda dan pengguna Anda mengaksesnya. Untuk informasi selengkapnya tentang cara Wilayah digunakan, lihat [Wilayah AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)di *Panduan Referensi Alat AWS SDKs dan Alat*.

**penting**  
Sebagian besar sumber daya berada di tempat tertentu Wilayah AWS dan Anda harus menyediakan Wilayah yang benar untuk sumber daya saat menggunakan SDK.

Anda harus menetapkan default Wilayah AWS untuk SDK untuk Rust untuk digunakan untuk AWS permintaan. Default ini digunakan untuk setiap panggilan metode layanan SDK yang tidak ditentukan dengan Region. 

Untuk contoh tentang cara mengatur wilayah default melalui AWS `config` file bersama atau variabel lingkungan, lihat [Wilayah AWS](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)di *Panduan Referensi Alat AWS SDKs dan*.

## Wilayah AWS rantai penyedia
<a name="region-provider-chain"></a>

 Proses pencarian berikut digunakan saat memuat konfigurasi klien layanan dari lingkungan eksekusi. Nilai pertama yang ditemukan SDK set digunakan dalam konfigurasi klien. Untuk informasi selengkapnya tentang membuat klien layanan, lihat[Konfigurasikan klien dari lingkungan](config-code.md#configure-a-client-from-the-environment).

1. Setiap Wilayah eksplisit diatur secara terprogram.

1. Variabel `AWS_REGION` lingkungan diperiksa. 
   + Jika Anda menggunakan AWS Lambda layanan, variabel lingkungan ini diatur secara otomatis oleh AWS Lambda wadah.

1. `region`Properti dalam AWS `config` file bersama dicentang. 
   + Variabel `AWS_CONFIG_FILE` lingkungan dapat digunakan untuk mengubah lokasi `config` file bersama. Untuk mempelajari lebih lanjut tentang tempat penyimpanan file ini, lihat [Lokasi `credentials` file bersama `config` dan](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) di *Panduan Referensi Alat AWS SDKs dan*.
   + Variabel `AWS_PROFILE` lingkungan dapat digunakan untuk memilih profil bernama bukan default. Untuk mempelajari lebih lanjut tentang mengonfigurasi profil yang berbeda, lihat [Dibagikan `config` dan `credentials` file](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) di *Panduan Referensi Alat AWS SDKs dan Alat*.

1. SDK mencoba menggunakan Layanan Metadata Instans Amazon EC2 untuk menentukan Wilayah instans Amazon EC2 yang sedang berjalan.
   +  AWS SDK for Rust Satu-satunya dukungan IMDSv2.

Secara otomatis `RegionProviderChain` digunakan tanpa kode tambahan saat membuat konfigurasi dasar untuk digunakan dengan klien layanan:

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

## Mengatur kode Wilayah AWS dalam
<a name="RegionProgram"></a>

### Secara eksplisit mengatur Wilayah dalam kode
<a name="RegionNew"></a>

Gunakan `Region::new()` langsung dalam konfigurasi Anda ketika Anda ingin secara eksplisit mengatur Wilayah. 

Rantai penyedia Wilayah tidak digunakan - rantai ini tidak memeriksa lingkungan, `config` file bersama, atau Layanan Metadata Instans 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());
}
```

Pastikan Anda memasukkan string yang valid untuk Wilayah AWS; nilai yang diberikan tidak divalidasi.

### Menyesuaikan `RegionProviderChain`
<a name="regionProviderChain"></a>

Gunakan [Wilayah AWS rantai penyedia](#region-provider-chain) saat Anda ingin menyuntikkan Wilayah secara kondisional, menggantinya, atau menyesuaikan rantai resolusi.

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

 Konfigurasi sebelumnya akan:

1. Pertama lihat apakah ada string yang ditetapkan dalam variabel `CUSTOM_REGION` lingkungan.

1. Jika itu tidak tersedia, kembali ke rantai penyedia Wilayah default.

1. Jika gagal, gunakan “us-east-2" sebagai fallback terakhir.