호스트 접두사 삽입 - AWS SDKs 및 도구

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

호스트 접두사 삽입

참고

설정 페이지의 레이아웃을 이해하거나 다음에 나오는 Support AWS SDKs이 안내서의 설정 페이지의 이해.

호스트 접두사 삽입은 AWS SDKs가 특정 API 작업에 대한 서비스 엔드포인트의 호스트 이름 앞에 접두사를 자동으로 추가하는 기능입니다. 이 접두사는 정적 문자열이거나 요청 매개변수의 데이터를 포함하는 동적 값일 수 있습니다.

예를 들어 Amazon Simple Storage Service를 사용하여 Amazon S3 객체 또는 버킷에 대한 작업을 수행하는 경우 SDK는 최종 API 엔드포인트에서 버킷 이름과 AWS 계정 ID를 대체합니다.

이 동작은 일반 AWS 서비스 엔드포인트에 필요하지만 VPC 엔드포인트 또는 로컬 테스트 도구와 같은 사용자 지정 엔드포인트를 사용할 때 문제가 발생할 수 있습니다. 이러한 경우 호스트 접두사 삽입을 비활성화해야 할 수 있습니다.

다음을 사용하여 이 기능을 구성하십시오.

disable_host_prefix_injection - 공유 AWS config 파일 설정
AWS_DISABLE_HOST_PREFIX_INJECTION - 환경 변수
aws.disableHostPrefixInjection - JVM 시스템 속성: Java/Kotlin만 해당

이 설정은 SDK나 도구가 SDK의 클라이언트 객체나 변수에 정의된 대로 호스트 접두사를 앞에 추가하여 엔드포인트 호스트 이름을 수정할지 여부를 제어합니다.

기본값: false

유효한 값:

  • true - 호스트 접두사 삽입을 비활성화합니다. SDK는 엔드포인트 호스트 이름을 수정하지 않습니다.

  • false - 호스트 접두사 삽입을 활성화합니다. SDK는 엔드포인트 호스트 이름 앞에 호스트 접두사를 추가합니다.

config 파일에서 이 값을 설정하는 예:

[default] disable_host_prefix_injection = true

명령 행을 통한 환경 변수 설정의 Linux/macOS 예제:

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

명령줄을 통해 환경 변수를 설정하는 Windows 예제:

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

호스트 접두사 삽입의 예

아래 예시 표는 호스트 접두사 삽입이 활성화된 경우와 비활성화된 경우, SDK가 최종 엔드포인트를 어떻게 수정하는지를 보여줍니다.

  • 호스트 접두사: 코드에서 SDK의 클라이언트 객체 또는 변수에 설정되는 호스트 접두사 속성 문자열의 템플릿입니다.

  • 입력: SDK의 클라이언트 객체 또는 코드의 변수에 설정된 추가 입력입니다.

  • 클라이언트 엔드포인트: 클라이언트의 파생 엔드포인트입니다.

  • 설정 값: 이전 설정의 해결된 값입니다.

  • 결과 엔드포인트: SDK 클라이언트가 API 직접 호출에 사용하는 결과 엔드포인트입니다.

호스트 접두사 입력 클라이언트 엔드포인트 설정 값 결과 엔드포인트
"data." {} ‘https://service.us-west-2.amazonaws.com’ false ‘https://data.service.us-west-2.amazonaws.com’
"{Bucket}-{AccountId}." Bucket: "amzn-s3-demo-bucket1", AccountId:"123456789012" ‘https://service.us-west-2.amazonaws.com’ false ‘https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com’
"data." {} ‘https://override.us-west-2.amazonaws.com’ (as an override endpoint) true ‘https://override.us-west-2.amazonaws.com’

AWS SDKs 도구 지원

다음 SDK는 이 주제에서 설명하는 기능 및 설정을 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 AWS SDK for Java 및 AWS SDK for Kotlin 에서만 지원됩니다.

SDK 지원됨 참고 또는 추가 정보
AWS CLI v2
SDK for C++ 아니요 설정은 지원되지 않지만 enableHostPrefixInjection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Go V2 (1.x) 아니요 미들웨어를 사용하여 비활성화할 수 있습니다.
SDK for Go 1.x (V1) 아니요
SDK for Java 2.x 아니요 설정은 지원되지 않지만 SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Java 1.x 아니요 설정은 지원되지 않지만 withDisableHostPrefixInjection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for JavaScript 3.x 아니요 설정은 지원되지 않지만 disableHostPrefix를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for JavaScript 2.x 아니요 설정은 지원되지 않지만 hostPrefixEnabled를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Kotlin 아니요
.NET 4.x용 SDK 아니요 설정은 지원되지 않지만 DisableHostPrefixInjection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for .NET 3.x 아니요 설정은 지원되지 않지만 DisableHostPrefixInjection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for PHP 3.x 아니요 설정은 지원되지 않지만 disable_host_prefix_injection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Python (Boto3) inject_host_prefix를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Ruby 3.x 아니요 설정은 지원되지 않지만 disable_host_prefix_injection를 사용하여 클라이언트의 코드에서 구성할 수 있습니다.
SDK for Rust 아니요
SDK for Swift 아니요
PowerShell V5용 도구 아니요 설정은 지원되지 않지만 -ClientConfig @{DisableHostPrefixInjection = $true} 매개변수를 사용하여 특정 cmdlet에 포함시킬 수 있습니다.
PowerShell V4용 도구 아니요 설정은 지원되지 않지만 -ClientConfig @{DisableHostPrefixInjection = $true} 매개변수를 사용하여 특정 cmdlet에 포함시킬 수 있습니다.