서비스 클라이언트 생성 - AWS SDK for Java 1.x

곧 출시될 end-of-support AWS SDK for Java (v1) 버전을 발표했습니다. AWS SDK for Java V2로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

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

서비스 클라이언트 생성

에 Amazon Web Services요청하려면 먼저 서비스 클라이언트 객체를 만들어야 합니다. 권장 방법은 서비스 클라이언트 빌더를 사용하는 것입니다.

각 AWS 서비스 인터페이스에는 서비스 API의 각 작업에 대한 메서드가 포함된 서비스 인터페이스가 있습니다. 예를 들어, DynamoDB용 서비스 인터페이스의 이름은 DbClient입니다. AmazonDynamo 각 서비스 인터페이스마다 서비스 인터페이스의 구현을 생성하는 데 사용할 수 있는 해당하는 클라이언트 빌더가 있습니다. 의 클라이언트 빌더 클래스의 이름은 DynamoDB DB입니다. AmazonDynamo ClientBuilder

클라이언트 빌더 가져오기

클라이언트 빌더의 인스턴스를 가져오려면 다음 예에서처럼 정적 팩토리 메서드인 standard를 사용합니다.

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

빌더가 있으면 빌더 API에서 여러 유용한 setter를 사용하여 클라이언트의 속성을 사용자 지정할 수 있습니다. 예를 들면 다음과 같이 사용자 지정 리전 및 사용자 지정 자격 증명 공급자를 설정할 수 있습니다.

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
참고

유용한 withXXX 메서드는 builder 객체를 반환하므로 보다 읽기 쉽고 편리하도록 메서드 호출을 묶을 수 있습니다. 원하는 속성을 구성한 후에는 build 메서드를 호출하여 클라이언트를 생성할 수 있습니다. 클라이언트는 한 번 생성되고 나면 변경할 수 없으며 setRegion 또는 setEndpoint 호출이 실패합니다.

빌더는 동일한 구성을 사용하여 여러 클라이언트를 생성할 수 있습니다. 애플리케이션을 작성할 때는 빌더가 변경 가능하며 스레드 세이프가 아님에 주의해야 합니다.

다음 코드에서는 빌더가 클라이언트 인스턴스의 팩토리로 사용됩니다.

public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }

빌더는 또한 ClientConfigurationRequestMetricCollector에 대한 유창한 설정자와 2개의 사용자 지정 목록을 제공합니다. RequestHandler

다음은 모든 구성 가능한 속성을 재정의하는 전체 예제입니다.

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000)) .withMetricsCollector(new MyCustomMetricsCollector()) .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler) .build();

비동기 클라이언트 생성

AWS SDK for Java 에는 모든 서비스 (제외) 에 대한 비동기 (또는 비동기) 클라이언트와 모든 서비스에 해당하는 비동기 클라이언트 Amazon S3빌더가 있습니다.

기본값을 사용하여 비동기 DynamoDB 클라이언트를 만들려면 ExecutorService

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();

동기 (또는 동기화) 클라이언트 빌더가 지원하는 구성 옵션 외에도 비동기 클라이언트를 사용하면 사용자 ExecutorFactory지정을 설정하여 비동기 클라이언트가 사용하는 옵션을 변경할 수 있습니다. ExecutorService ExecutorFactory는 함수형 인터페이스이므로 Java 8 Lambda 표현식 및 메서드 참조와 상호 운용됩니다.

사용자 지정 executor를 사용하여 비동기 클라이언트를 생성하려면

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();

사용: DefaultClient

동기 및 비동기 클라이언트 빌더에는 모두 defaultClient라는 또 다른 팩토리 메서드가 있습니다. 이 메서드는 기본 구성을 사용하여 서비스 클라이언트를 생성하며, 기본 공급자 체인을 사용하여 자격 증명 및 AWS 리전을 로드합니다. 자격 증명 또는 리전을 애플리케이션이 실행 중인 환경에서 확인할 수 없으면 defaultClient 호출이 실패합니다. AWS 자격 증명 및 지역 결정 방법에 대한 자세한 내용은 자격 증명 및 AWS 리전 선택 작업을 참조하십시오.

기본 서비스 클라이언트를 생성하려면

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

클라이언트 수명 주기

SDK의 서비스 클라이언트는 스레드 세이프이며, 성능을 최대화하려면 서비스 클라이언트를 수명이 긴 객체로 다루어야 합니다. 각 클라이언트마다 고유한 연결 풀 리소스가 있습니다. 더 이상 필요하지 않은 경우 리소스 누수를 방지하기 위해 클라이언트를 명시적으로 종료하십시오.

클라이언트를 명시적으로 종료하려면 shutdown 메서드를 호출합니다. shutdown을 호출한 후에는 모든 클라이언트 리소스가 해제되고 클라이언트를 사용할 수 없습니다.

클라이언트를 종료하려면

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable