기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HTTP 클라이언트 구성
기본적으로는 OkHttp
주의
사용하는 HTTP 엔진에 관계없이 프로젝트의 다른 종속성에는 SDK에 필요한 특정 엔진 버전과 충돌하는 전이적 종속성이 있을 수 있습니다. 특히 Spring Boot와 같은 프레임워크는 OkHttp와 같은 종속성을 관리하고 SDK보다 이전 버전을 사용하는 것으로 알려져 있습니다. 자세한 내용은 종속성 충돌을 해결하려면 어떻게 해야 합니까? 단원을 참조하십시오.
참고
기본적으로 각 서비스 클라이언트는 HTTP 클라이언트의 자체 복사본을 사용합니다. 애플리케이션에서 여러 서비스를 사용하는 경우 단일 HTTP 클라이언트를 구성하고 모든 서비스 클라이언트에서 공유할 수 있습니다.
기본 구성
서비스 클라이언트를 구성할 때 기본 엔진 유형을 구성할 수 있습니다. SDK는 결과 HTTP 클라이언트 엔진을 관리하고 더 이상 필요하지 않을 때 자동으로 닫습니다.
다음 예제에서는 DynamoDB 클라이언트를 초기화하는 동안 HTTP 클라이언트의 구성을 보여줍니다.
가져오기
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import kotlin.time.Duration.Companion.seconds
코드
DynamoDbClient { region = "us-east-2" httpClient { maxConcurrency = 64u connectTimeout = 10.seconds } }.use { ddb -> // Perform some actions with Amazon DynamoDB. }
HTTP 엔진 유형 지정
고급 사용 사례의 경우 엔진 유형을 httpClient
지정하는 추가 파라미터를에 전달할 수 있습니다. 이렇게 하면 해당 엔진 유형에 고유한 구성 파라미터를 설정할 수 있습니다.
다음 예제에서는 maxConcurrencyPerHost
OkHttpEngine
가져오기
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine
코드
DynamoDbClient { region = "us-east-2" httpClient(OkHttpEngine) { // The first parameter specifies the HTTP engine type. // The following parameter is generic HTTP configuration available in any engine type. maxConcurrency = 64u // The following parameter is OkHttp-specific configuration. maxConcurrencyPerHost = 32u } }.use { ddb -> // Perform some actions with Amazon DynamoDB. }
엔진 유형에 사용할 수 있는 값은 OkHttpEngine
, OkHttp4Engine
CrtHttpEngine
HTTP 엔진과 관련된 구성 파라미터를 사용하려면 엔진을 컴파일 시간 종속성으로 추가해야 합니다. 의 OkHttpEngine
경우 Gradle을 사용하여 다음 종속성을 추가합니다.
(X.Y.Z
링크로 이동하여 사용 가능한 최신 버전을 볼 수 있습니다.)
implementation(platform("aws.smithy.kotlin:bom:
X.Y.Z
")) implementation("aws.smithy.kotlin:http-client-engine-okhttp")
에 대해 다음 종속성을 CrtHttpEngine
추가합니다.
implementation(platform("aws.smithy.kotlin:bom:
X.Y.Z
")) implementation("aws.smithy.kotlin:http-client-engine-crt")
OkHttp4Engine
사용
기본를 사용할 수 없는 OkHttp4Engine
경우를 사용합니다OkHttpEngine
. smithy-kotlin GitHub 리포지토리OkHttp4Engine
.
명시적 HTTP 클라이언트 사용
명시적 HTTP 클라이언트를 사용하는 경우 더 이상 필요하지 않은 종료를 포함하여 클라이언트의 수명에 대한 책임은 사용자에게 있습니다. HTTP 클라이언트는 최소한 이를 사용하는 서비스 클라이언트만큼 지속되어야 합니다.
다음 코드 예제는 DynamoDbClient
가 활성 상태인 동안 HTTP 클라이언트가 활성 상태를 유지하는 코드를 보여줍니다. use
가져오기
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine import kotlin.time.Duration.Companion.seconds
코드
OkHttpEngine { maxConcurrency = 64u connectTimeout = 10.seconds }.use { okHttpClient -> DynamoDbClient { region = "us-east-2" httpClient = okHttpClient }.use { ddb -> { // Perform some actions with Amazon DynamoDB. } } }