쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

클라이언트 엔드포인트

포커스 모드
클라이언트 엔드포인트 - AWS SDK for Rust

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

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

가를 AWS SDK for Rust 호출할 때 첫 번째 단계 AWS 서비스중 하나는 요청을 라우팅할 위치를 결정하는 것입니다. 이 프로세스를 엔드포인트 확인이라고 합니다.

서비스 클라이언트를 생성할 때 SDK에 대한 엔드포인트 확인을 구성할 수 있습니다. 엔드포인트 확인의 기본 구성은 일반적으로 좋지만 기본 구성을 수정하려는 몇 가지 이유가 있습니다. 두 가지 이유는 다음과 같습니다.

  • 서비스의 사전 릴리스 버전 또는 서비스의 로컬 배포를 요청하려면

  • SDK에서 아직 모델링되지 않은 특정 서비스 기능에 액세스하려면

주의

엔드포인트 확인은 고급 SDK 주제입니다. 기본 설정을 변경하면 코드가 해제될 위험이 있습니다. 기본 설정은 프로덕션 환경의 대부분의 사용자에게 적용됩니다.

사용자 지정 엔드포인트는 모든 서비스 요청에 사용되도록 전역적으로 설정하거나 특정에 대한 사용자 지정 엔드포인트를 설정할 수 있습니다 AWS 서비스.

사용자 지정 엔드포인트는 공유 AWS config 파일의 환경 변수 또는 설정을 사용하여 구성할 수 있습니다. 이 접근 방식에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 서비스별 엔드포인트를 참조하세요. AWS SDKs 모든에 대한 공유 config 파일 설정 및 환경 변수의 전체 목록은 서비스별 엔드포인트 식별자를 AWS 서비스참조하세요. https://docs.aws.amazon.com/sdkref/latest/guide/ss-endpoints-table.html

또는 다음 섹션과 같이 코드에서이 사용자 지정을 구성할 수도 있습니다.

사용자 지정 구성

클라이언트를 빌드할 때 사용할 수 있는 두 가지 방법으로 서비스 클라이언트의 엔드포인트 확인을 사용자 지정할 수 있습니다.

  1. endpoint_url(url: Into<String>)

  2. endpoint_resolver(resolver: impl crate::config::endpoint::ResolveEndpoint + `static)

두 속성을 모두 설정할 수 있습니다. 그러나 대부분 하나만 제공합니다. 일반적인 사용의 경우 endpoint_url는 가장 자주 사용자 지정됩니다.

엔드포인트 URL 설정

서비스의 "기본" 호스트 이름을 나타내endpoint_url도록 값을 설정할 수 있습니다. 그러나이 값은 클라이언트 ResolveEndpoint 인스턴스에 파라미터로 전달되므로 최종적인 것은 아닙니다. 그런 다음 ResolveEndpoint 구현은 해당 값을 검사하고 잠재적으로 수정하여 최종 엔드포인트를 결정할 수 있습니다.

엔드포인트 해석기 설정

서비스 클라이언트의 ResolveEndpoint 구현에 따라 SDK가 지정된 요청에 사용하는 최종 해결 엔드포인트가 결정됩니다. 서비스 클라이언트는 모든 요청에 대해 resolve_endpoint 메서드를 호출하고 더 이상 변경하지 않고 해석기가 반환하는 EndpointFuture 값을 사용합니다.

다음 예제에서는 스테이징 및 프로덕션과 같은 단계당 다른 엔드포인트를 해결하는 Amazon S3 클라이언트에 대한 사용자 지정 엔드포인트 해석기 구현을 제공하는 방법을 보여줍니다.

use aws_sdk_s3::config::endpoint::{ResolveEndpoint, EndpointFuture, Params, Endpoint}; #[derive(Debug)] struct StageResolver { stage: String } impl ResolveEndpoint for StageResolver { fn resolve_endpoint(&self, params: &Params) -> EndpointFuture<'_> { let stage = &self.stage; EndpointFuture::ready(Ok(Endpoint::builder().url(format!("{stage}.myservice.com")).build())) } } let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let resolver = StageResolver { stage: std::env::var("STAGE").unwrap() }; let s3_config = aws_sdk_s3::config::Builder::from(&config) .endpoint_resolver(resolver) .build(); let s3 = aws_sdk_s3::Client::from_conf(s3_config);
참고

엔드포인트 해석기 및 확장을 통해 ResolveEndpoint 특성은 각 서비스에 고유하므로 서비스 클라이언트 구성에서만 구성할 수 있습니다. 반면 엔드포인트 URL은 공유 구성을 사용하거나(공유된 모든 서비스에 적용) 특정 서비스에 대해 구성할 수 있습니다.

ResolveEndpoint 파라미터

resolve_endpoint 메서드는 엔드포인트 확인에 사용되는 속성을 포함하는 서비스별 파라미터를 허용합니다.

모든 서비스에는 다음과 같은 기본 속성이 포함됩니다.

명칭 유형 설명
region String 클라이언트의 AWS 리전
endpoint String 값 집합의 문자열 표현 endpointUrl
use_fips 클라이언트 구성에서 FIPS 엔드포인트가 활성화되어 있는지 여부
use_dual_stack 클라이언트 구성에서 듀얼 스택 엔드포인트가 활성화되었는지 여부

AWS 서비스 는 해상도에 필요한 추가 속성을 지정할 수 있습니다. 예를 들어 Amazon S3 엔드포인트 파라미터에는 버킷 이름과 여러 Amazon S3-specific 기능 설정이 포함됩니다. 예를 들어 force_path_style 속성은 가상 호스트 주소 지정을 사용할 수 있는지 여부를 결정합니다.

자체 공급자를 구현하는 경우 엔드포인트 파라미터의 자체 인스턴스를 구성할 필요가 없습니다. SDK는 각 요청에 대한 속성을 제공하고 이를 구현에 전달합니다resolve_endpoint.

를 사용한 endpoint_url와를 사용한 비교 endpoint_resolver

다음 두 가지 구성, 즉를 사용하는 구성endpoint_url과를 사용하는 구성은 동등한 엔드포인트 확인 동작을 가진 클라이언트를 생성하지 endpoint_resolver않는다는 점을 이해하는 것이 중요합니다.

use aws_sdk_s3::config::endpoint::{ResolveEndpoint, EndpointFuture, Params, Endpoint}; #[derive(Debug, Default)] struct CustomResolver; impl ResolveEndpoint for CustomResolver { fn resolve_endpoint(&self, _params: &Params) -> EndpointFuture<'_> { EndpointFuture::ready(Ok(Endpoint::builder().url("https://endpoint.example").build())) } } let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; // use endpoint url aws_sdk_s3::config::Builder::from(&config) .endpoint_url("https://endpoint.example") .build(); // Use endpoint resolver aws_sdk_s3::config::Builder::from(&config) .endpoint_resolver(CustomResolver::default()) .build();

를 설정하는 클라이언트는 엔드포인트 확인의 일부로 수정할 수 있는 (기본) 공급자에 전달되는 기본 URL을 endpoint_url 지정합니다.

를 설정하는 클라이언트는 Amazon S3 클라이언트가 사용하는 최종 URL을 endpoint_resolver 지정합니다.

예시

사용자 지정 엔드포인트는 종종 테스트에 사용됩니다. 클라우드 기반 서비스에 직접 호출하는 대신 로컬에서 호스팅되고 시뮬레이션된 서비스로 호출이 라우팅됩니다. 이러한 두 가지 옵션은 다음과 같습니다.

  • DynamoDB 로컬 - Amazon DynamoDB 서비스의 로컬 버전입니다.

  • LocalStack - 로컬 시스템의 컨테이너에서 실행되는 클라우드 서비스 에뮬레이터입니다.

다음 예제에서는 이러한 두 테스트 옵션을 사용할 사용자 지정 엔드포인트를 지정하는 두 가지 방법을 보여줍니다.

코드에서 DynamoDB 로컬 직접 사용

이전 섹션에서 설명한 대로 코드에서 endpoint_url 직접를 설정하여 로컬 DynamoDB 서버를 가리키도록 기본 엔드포인트를 재정의할 수 있습니다. 코드에서:

let config = aws_config::defaults(aws_config::BehaviorVersion::latest()) .test_credentials() // DynamoDB run locally uses port 8000 by default. .endpoint_url("http://localhost:8000") .load() .await; let dynamodb_local_config = aws_sdk_dynamodb::config::Builder::from(&config).build(); let client = aws_sdk_dynamodb::Client::from_conf(dynamodb_local_config);

전체 예제는 GitHub에서 확인할 수 있습니다.

config 파일을 사용하여 LocalStack 사용

공유 AWS config 파일에서 서비스별 엔드포인트를 설정할 수 있습니다. 다음 구성 프로필은 포트 localhost에서에 연결endpoint_url하도록 설정됩니다4566. LocalStack 구성에 대한 자세한 내용은 LocalStack 문서 웹 사이트의 엔드포인트 URL을 통한 LocalStack 액세스를 참조하세요.

[profile localstack] region=us-east-1 endpoint_url = http://localhost:4566

SDK는 공유 config 파일의 변경 사항을 선택하여 localstack 프로필을 사용할 때 SDK 클라이언트에 적용합니다. 이 접근 방식을 사용하면 코드가 엔드포인트에 대한 참조를 포함할 필요가 없으며 다음과 같습니다.

// set the environment variable `AWS_PROFILE=localstack` when running // the application to source `endpoint_url` and point the SDK at the // localstack instance let config = aws_config::defaults(BehaviorVersion::latest()).load().await; let s3_config = aws_sdk_s3::config::Builder::from(&config) .force_path_style(true) .build(); let s3 = aws_sdk_s3::Client::from_conf(s3_config);

전체 예제는 GitHub에서 확인할 수 있습니다.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.