AWS SDK for Rust를 사용하여 AWS 서비스 요청
프로그래밍 방식으로 AWS 서비스에 액세스하기 위해 AWS SDK for Rust는 각 AWS 서비스에 클라이언트 구조를 사용합니다. 예를 들어, 애플리케이션이 Amazon EC2에 액세스해야 하는 경우, 애플리케이션은 Amazon EC2 클라이언트 구조를 생성하여 해당 서비스와 인터페이스합니다. 그런 다음 서비스 클라이언트를 사용하여 요청을 AWS 서비스에 보내면 됩니다.
AWS 서비스에 요청하려면 먼저 서비스 클라이언트를 생성하고 구성해야 합니다. 코드가 사용하는 각 AWS 서비스에는 고유한 크레이트와 상호 작용을 위한 전용 유형이 있습니다. 클라이언트는 서비스에서 노출되는 각 API 작업에 대해 하나의 메서드를 노출합니다.
AWS SDK for Rust에서 AWS 서비스와 상호 작용하려면 서비스별 클라이언트를 생성하고, 유용한 빌더 스타일 체인과 함께 API 메서드를 사용하고, send()를 직접적으로 호출하여 요청을 실행합니다.
Client는 서비스에서 노출되는 각 API 작업에 대해 하나의 메서드를 노출합니다. 이러한 각 메서드의 반환 값은 'fluent builder'이며, 빌더 스타일 함수 직접 호출 체인에 의해 해당 API에 대한 다양한 입력이 추가됩니다. 서비스의 메서드를 직접 호출한 후 send()를 직접 호출하여 FutureSdkError로 이어집니다. SdkError에 대한 자세한 내용은 AWS SDK for Rust에서 오류 처리 섹션을 참조하세요.
다음 예제에서는 Amazon S3를 사용하여 us-west-2 AWS 리전에서 버킷을 생성하는 기본 작업을 보여줍니다.
let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config); let result = s3.create_bucket() // Set some of the inputs for the operation. .bucket("my-bucket") .create_bucket_configuration( CreateBucketConfiguration::builder() .location_constraint(aws_sdk_s3::types::BucketLocationConstraint::UsWest2) .build() ) // send() returns a Future that does nothing until awaited. .send() .await;
각 서비스 크레이트에는 다음과 같이 API 입력에 사용되는 추가 모듈이 있습니다.
-
types모듈에는 보다 복잡한 구조화된 정보를 제공하는 구조 또는 열거형이 있습니다. -
primitives모듈에는 날짜 시간 또는 이진 BLOB과 같은 데이터를 나타내는 더 간단한 유형이 있습니다.
자세한 크레이트 구성 및 정보는 서비스 크레이트의 API 참조 문서aws-sdk-s3 크레이트에는 여러 모듈