

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS リージョン の の設定 AWS SDK for Rust
<a name="region"></a>

を使用して、特定の地域 AWS のサービス で動作する にアクセスできます AWS リージョン。これは、冗長性を確保するためや、ユーザーがアクセスする場所の近くでのデータとアプリケーションの実行を維持するために有効です。リージョンの使用の詳細については、「*AWS SDK とツールのリファレンスガイド*」の「[AWS リージョン](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)」を参照してください。

**重要**  
ほとんどのリソースは特定の に存在し AWS リージョン 、SDK を使用するときにリソースに正しいリージョンを指定する必要があります。

 AWS リクエストに使用する SDK for Rust AWS リージョン のデフォルトを設定する必要があります。このデフォルトは、リージョンが指定されていないすべての SDK サービスメソッドの呼び出しに使用されます。

共有 AWS `config`ファイルまたは環境変数を使用してデフォルトのリージョンを設定する方法の例については、 [AWS リージョン](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html) *AWS SDKs*「」を参照してください。

## AWS リージョン プロバイダーチェーン
<a name="region-provider-chain"></a>

 サービスクライアントの設定を実行環境から読み込む場合は、次の検索プロセスが使用されます。SDK が最初に設定されている値が検出されると、その値がクライアントの設定に使用されます。サービスクライアントの作成の詳細については、「[環境からクライアントを設定する](config-code.md#configure-a-client-from-the-environment)」を参照してください。

1. プログラムによって設定された明示的なリージョン。

1. `AWS_REGION` 環境変数が確認されます。
   +  AWS Lambda サービスを使用している場合、この環境変数は AWS Lambda コンテナによって自動的に設定されます。

1. 共有 AWS `config`ファイルの `region`プロパティがチェックされます。
   + `AWS_CONFIG_FILE` 環境変数を使用すると、共有 `config` ファイルの場所を変更できます。このファイルの保存場所の詳細については、「*AWS SDK とツールのリファレンスガイド*」の「[共有 `config` と `credentials` ファイルの場所](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)」を参照してください。
   + `AWS_PROFILE` 環境変数を使用すると、デフォルトの代わりに名前付きプロファイルを選択できます。名前付きプロファイルの設定の詳細については、「*AWS SDK とツールのリファレンスガイド*」の「[共有 `config` と `credentials` ファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)」を参照してください。

1. SDK は、Amazon EC2 インスタンスメタデータサービスを使用して、現在実行中の Amazon EC2 インスタンスのリージョンを決定しようとします。
   + は IMDSv2 AWS SDK for Rust のみをサポートします。

`RegionProviderChain` は、サービスクライアントで使用する基本設定を作成する際に、追加のコードなしで自動的に使用されます。

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

## コード AWS リージョン での の設定
<a name="RegionProgram"></a>

### コードでリージョンを明示的に設定する
<a name="RegionNew"></a>

リージョンを明示的に設定する場合は、設定で `Region::new()` を直接使用します。

リージョンプロバイダーチェーンは、環境、共有 `config` ファイル、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());
}
```

に有効な文字列を入力していることを確認してください AWS リージョン。指定された値は検証されません。

### `RegionProviderChain` のカスタマイズ
<a name="regionProviderChain"></a>

リージョンを条件付きで挿入したり、上書きしたり、解決チェーンをカスタマイズしたりする場合は、[AWS リージョン プロバイダーチェーン](#region-provider-chain) を使用します。

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

 前の設定では、以下のようになります。

1. まず、`CUSTOM_REGION` 環境変数に文字列が設定されているかどうかを確認します。

1. 利用できない場合は、デフォルトのリージョンプロバイダーチェーンにフォールバックします。

1. 失敗した場合は、最終的なフォールバックとして「us-east-2」を使用します。