기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
서비스 클라이언트 생성
에 요청하려면 먼저 해당 서비스의 클라이언트를 인스턴스화 AWS 서비스합니다. 제한 시간, HTTP 클라이언트 및 재시도 구성과 같은 서비스 클라이언트에 대한 공통 설정을 구성할 수 있습니다.
각 서비스 클라이언트에는 AWS 리전 및 자격 증명 공급자가 필요합니다. SDK는 이러한 값을 사용하여 리소스의 올바른 리전으로 요청을 보내고 올바른 자격 증명으로 요청에 서명합니다. 이러한 값을 프로그래밍 방식으로 코드로 지정하거나 환경에서 자동으로 로드할 수 있습니다.
참고
서비스 클라이언트는 구성 비용이 많이 들 수 있으며 일반적으로 공유해야 합니다. 이를 용이하게 Client
하기 위해 모든 구조체는를 구현합니다Clone
.
SDK에는 구성 설정 값을 찾기 위해 확인하는 일련의 위치(또는 소스)가 있습니다.
-
코드나 서비스 클라이언트 자체에 설정된 모든 명시적 설정은 다른 모든 설정보다 우선합니다.
-
환경 변수
-
환경 변수 설정에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 환경 변수를 참조하세요. AWS SDKs
-
-
공유
config
및credentials
파일-
이러한 파일 설정에 대한 자세한 내용은 SDK
config
및 도구 참조 안내서의 공유 및credentials
파일을 참조하세요. AWS SDKs
-
-
SDK 소스 코드 자체에서 제공하는 모든 기본값이 마지막으로 사용됩니다.
-
리전과 같은 일부 속성에는 기본값이 없습니다. 코드, 환경 설정 또는 공유
config
파일에 명시적으로 지정해야 합니다. SDK가 필요한 구성을 해결할 수 없는 경우 API 요청은 런타임에 실패할 수 있습니다.
-
대부분의 환경 변수 설정과 config
및 credentials
파일 설정은 일관된 동작을 위해 다중 AWS SDKs 및 도구에서 공유됩니다. 환경 변수 또는 구성 파일에서 SDK가 확인할 수 있는 모든 설정을 보려면 SDK 및 도구 참조 안내서의 설정 참조를 참조하세요. AWS SDKs
환경에서 클라이언트 구성
환경 기반 구성으로 클라이언트를 생성하려면 aws-config
크레이트의 정적 메서드를 사용합니다.
let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
이러한 방식으로 클라이언트를 생성하면 Amazon Elastic Compute Cloud AWS Lambda또는 서비스 클라이언트의 구성을 환경에서 직접 사용할 수 있는 기타 컨텍스트에서 실행할 때 유용합니다. 이렇게 하면 실행 중인 환경에서 코드를 분리하여 코드를 변경 AWS 리전 하지 않고도 애플리케이션을 여러에 더 쉽게 배포할 수 있습니다.
특정 속성을 명시적으로 재정의할 수 있습니다. 명시적 구성은 실행 환경에서 확인된 구성보다 우선합니다. 다음 예제에서는 환경에서 구성을 로드하지만를 명시적으로 재정의합니다. AWS 리전
let config = aws_config::defaults(BehaviorVersion::latest()) .region("us-east-1") .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
참고
모든 구성 값이 생성 시 클라이언트에 의해 소싱되는 것은 아닙니다. 임시 액세스 키 및 IAM Identity Center 구성과 같은 자격 증명 관련 설정은 클라이언트를 사용하여 요청할 때 자격 증명 공급자 계층에서 액세스합니다.
이전 예제에 BehaviorVersion::latest()
표시된 코드는 기본값에 사용할 SDK 버전을 나타냅니다. BehaviorVersion::latest()
는 대부분의 경우에 적합합니다. 세부 정보는 동작 버전을 참조하세요.
서비스별 설정에 빌더 패턴 사용
특정 서비스 클라이언트 유형에만 구성할 수 있는 몇 가지 옵션이 있습니다. 그러나 대부분의 경우 환경에서 대부분의 구성을 로드한 다음 특히 추가 옵션을 추가해야 합니다. 빌더 패턴은 AWS SDK for Rust 상자 내의 일반적인 패턴입니다. 먼저를 사용하여 일반 구성을 로드한 aws_config::defaults
다음 from
메서드를 사용하여 해당 구성을 작업 중인 서비스의 빌더에 로드합니다. 그런 다음 해당 서비스에 대한 고유한 구성 값을 설정하고를 호출할 수 있습니다build
. 마지막으로 클라이언트는이 수정된 구성에서 생성됩니다.
// Call a static method on aws-config that sources default config values. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; // Use the Builder for S3 to create service-specific config from the default config. let s3_config = aws_sdk_s3::config::Builder::from(&config) .accelerate(true) // Set an S3-only configuration option .build(); // Create the client. let s3 = aws_sdk_s3::Client::from_conf(s3_config);
특정 유형의 서비스 클라이언트에 사용할 수 있는 추가 메서드를 검색하는 한 가지 방법은 용와 같은 API 설명서를 사용하는 것입니다aws_sdk_s3::config::Builder
고급 명시적 클라이언트 구성
환경에서 구성을 로드하는 대신 특정 값으로 서비스 클라이언트를 구성하려면 다음과 같이 클라이언트 Config
빌더에서 해당 값을 지정할 수 있습니다.
let conf = aws_sdk_s3::Config::builder() .region("us-east-1") .endpoint_resolver(my_endpoint_resolver) .build(); let s3 = aws_sdk_s3::Client::from_conf(conf);
를 사용하여 서비스 구성을 생성하면 기본 구성이 로드aws_sdk_s3::Config::builder()
되지 않습니다. 기본값은를 기반으로 구성을 생성할 때만 로드됩니다aws_config::defaults
.
특정 서비스 클라이언트 유형에만 구성할 수 있는 몇 가지 옵션이 있습니다. 이전 예제에서는 Amazon S3 클라이언트에서 endpoint_resolver
함수를 사용하여이 예제를 보여줍니다.