AWS SDK for Java 2.x 외부에서에 대한 서비스 클라이언트 구성 - AWS SDK for Java 2.x

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

AWS SDK for Java 2.x 외부에서에 대한 서비스 클라이언트 구성

코드 외부에서 많은 구성 설정을 처리할 수 있습니다. 구성을 외부에서 처리할 때 동일한 Java 프로세스의 모든 애플리케이션에 적용할 수 있습니다. 대부분의 구성 설정은 환경 변수, JVM 시스템 속성 또는 별도의 공유 AWS config 파일로 설정할 수 있습니다. 공유 config 파일은 프로파일이라는 별도의 설정 세트를 유지하여 다양한 환경 또는 테스트에 대해 다양한 구성을 제공할 수 있습니다.

대부분의 환경 변수와 공유 config 파일 설정은 다양한 프로그래밍 언어 및 애플리케이션에서 일관된 기능을 지원하기 위해 AWS SDKs 및 도구 간에 표준화되고 공유됩니다. 대부분의 경우 Java용 SDK가 사용할 수 있는 JVM 시스템 속성은 환경 변수를 미러링합니다.

이러한 메AWS SDKs 및 도구 참조 가이드를 참조하세요. 환경 변수, JVM 시스템 속성 또는 구성 파일에서 SDK가 확인할 수 있는 모든 설정을 보려면 SDK 및 도구 참조 안내서의 설정 참조를 참조하세요. AWS SDKs

클라이언트 구성을 위한 구성 공급자 체인

SDK는 여러 위치(또는 소스)를 확인하여 구성 값을 찾습니다.

  1. 코드나 서비스 클라이언트 자체에 설정된 모든 명시적 설정은 다른 모든 설정보다 우선합니다.

  2. JVM 시스템 속성

  3. 환경 변수

    • 환경 변수 설정에 대한 자세한 내용은 SDK 및 도구 참조 안내서의 환경 변수를 참조하세요. AWS SDKs

    • 시스템 전체, 사용자 전체, 특정 터미널 세션 등 다양한 수준의 쉘에 대한 환경 변수를 구성할 수 있습니다.

  4. 공유 configcredentials 파일

  5. SDK 소스 코드 자체에서 제공하는 모든 기본값이 마지막으로 사용됩니다.

    • 리전과 같은 일부 속성에는 기본값이 없습니다. 코드, 환경 설정 또는 공유 config 파일에 명시적으로 지정해야 합니다. SDK가 필요한 구성을 해결할 수 없는 경우 API 요청은 런타임에 실패할 수 있습니다.

이 일반 구성 체인 외에도 Java 2.x용 SDK는 자격 증명 공급자 체인 및 공급자 체인을 포함한 특수 공급자 체인도 사용합니다. AWS 리전 이러한 특수 체인은 SDK가 실행 중인 환경을 고려하는 추가 공급자를 추가합니다. 컨테이너 또는 EC2 인스턴스를 예로 들 수 있습니다.

외부 설정을 사용하여 구성된 서비스 클라이언트 생성

와 통신하려면 애플리케이션에서 서비스 클라이언트를 생성해야 합니다 AWS 서비스. 서비스 클라이언트는에 대한 필수 연결이므로 복잡한 통신 세부 정보를 모두 AWS 서비스처리하므로 걱정할 필요가 없습니다. 보안, 오류 처리 및 재시도와 같은 중요한 작업을 자동으로 처리하므로 기술적 복잡성을 처리하는 대신 애플리케이션 구축에 집중할 수 있습니다.

create() 메서드 사용

필요한 모든 구성 설정이 외부 소스에서 가져온 경우 간단한 방법으로 서비스 클라이언트를 생성할 수 있습니다.

S3Client s3Client = S3Client.create();

이전 코드 조각은 S3Client 인스턴스를 생성합니다. 생성 중에 SDK는 구성 공급자 체인에서 설정을 찾습니다. SDK가 설정 값을 찾으면 나중에 체인에 있는 구성이 있더라도 값이 사용됩니다.

예를 들어 사용자가 시스템 속성를 설정 AWS 리전 하여에 대한 JVM 설정을 한다고 가정합니다-Daws.region=us-west-2. AWS_REGION 환경 변수도 설정된 경우 해당 값은 무시됩니다.

기본 리전 공급자 체인과 기본 자격 증명 공급자 체인도 생성 프로세스에 사용됩니다. 체인의 어딘가에서 SDK는 사용할 AWS 리전 를 확인하고 요청에 서명하기 위한 자격 증명을 검색할 수 있는 설정을 찾아야 합니다. 이러한 값을 찾기 위한 SDKs 파일이 있으면 클라이언트 생성이 실패합니다.

이 빈 빌더 패턴을 사용하여 클라이언트를 생성할 수 있지만 코드에 구성을 추가하려는 경우 일반적으로이 패턴을 사용합니다.

SDK for Java 2.x 환경 변수 및 JVM 시스템 속성

대부분의 AWS SDKs에서 지원하는 Cross-sdk 설정 외에도 Java 2.x용 SDK는 다음 설정을 제공합니다.

참고

이러한 환경 변수 및 JVM 시스템 속성은 주로 고급 사용 사례, 테스트 또는 특정 배포 시나리오를 위한 것입니다. 대부분의 애플리케이션 코드에서는 유형 안전 및 IDE 지원을 개선하기 위해 SDK의 클라이언트 빌더가 제공하는 프로그래밍 방식 구성 옵션을 사용하는 것이 좋습니다.

컨테이너 자격 증명 공급자 환경 변수

SDK는 참조 가이드에 설명된 표준 컨테이너 자격 증명 환경 변수 외에도 다음을 지원합니다.

AWS_CONTAINER_SERVICE_ENDPOINT-이 환경 변수는 컨테이너 자격 증명 공급자를 사용할 때 컨테이너 메타데이터 서비스의 엔드포인트를 지정합니다.

Java 시스템 속성: aws.containerServiceEndpoint

기본 값: http://169.254.170.2

HTTP 클라이언트 구현 환경 변수

SYNC_HTTP_SERVICE_IMPL- SDK가 사용할 기본 동기 HTTP 구현을 명시적으로 식별합니다. 이는 클래스 경로에 여러 구현이 있거나 성능 최적화로 구현 검색에 클래스 경로 스캔이 필요하기 때문에 유용합니다.

Java 시스템 속성: software.amazon.awssdk.http.service.impl

ASYNC_HTTP_SERVICE_IMPL- SDK가 사용할 기본 비동기 HTTP 구현을 명시적으로 식별합니다. 이는 클래스 경로에 여러 구현이 있거나 성능 최적화로 구현 검색에 클래스 경로 스캔이 필요하기 때문에 유용합니다.

Java 시스템 속성: software.amazon.awssdk.http.async.service.impl