

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에 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 요청에 AWS 리전 사용할 SDK for Rust의 기본값을 설정해야 합니다. 이 기본값은 리전이 지정되지 않은 모든 SDK 서비스 메서드 직접 호출에 사용됩니다.

공유 AWS `config` 파일 또는 환경 변수를 통해 기본 리전을 설정하는 방법에 대한 예제는 SDK 및 도구 참조 안내서[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’를 최종 폴백으로 사용합니다.