As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configuração do cliente HTTP
Por padrão, o AWS SDK para Kotlin usa um cliente HTTP baseado em OkHttp
Atenção
Independentemente de qual mecanismo HTTP você usa, outras dependências em seu projeto podem ter dependências transitivas que entram em conflito com a versão específica do mecanismo exigida pelo SDK. Em particular, estruturas como o Spring Boot são conhecidas por gerenciar dependências OkHttp e confiar em versões mais antigas do que o SDK. Consulte Como faço para resolver conflitos de dependência? para obter mais informações.
nota
Por padrão, cada cliente de serviço usa sua própria cópia de um cliente HTTP. Se você usa vários serviços em seu aplicativo, talvez queira criar um único cliente HTTP e compartilhá-lo com todos os clientes de serviço.
Configuração básica
Ao configurar um cliente de serviço, você pode configurar o tipo de mecanismo padrão. O SDK gerencia o mecanismo do cliente HTTP resultante e o fecha automaticamente quando não é mais necessário.
O exemplo a seguir mostra a configuração de um cliente HTTP durante a inicialização de um cliente do DynamoDB.
Importações
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import kotlin.time.Duration.Companion.seconds
Código
DynamoDbClient { region = "us-east-2" httpClient { maxConcurrency = 64u connectTimeout = 10.seconds } }.use { ddb -> // Perform some actions with Amazon DynamoDB. }
Especifique um tipo de mecanismo HTTP
Para casos de uso mais avançados, você pode passar um parâmetro adicional httpClient
que especifica o tipo de mecanismo. Dessa forma, você pode definir parâmetros de configuração exclusivos desse tipo de mecanismo.
O exemplo a seguir especifica o OkHttpEngine
maxConcurrencyPerHost
Importações
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine
Código
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. }
Os valores possíveis para o tipo de motor são OkHttpEngine
OkHttp4Engine
CrtHttpEngine
Para usar parâmetros de configuração específicos de um mecanismo HTTP, você deve adicionar o mecanismo como uma dependência em tempo de compilação. Para oOkHttpEngine
, você adiciona a seguinte dependência usando o Gradle.
(Você pode navegar até o X.Y.Z
link para ver a versão mais recente disponível.)
implementation(platform("aws.smithy.kotlin:bom:
X.Y.Z
")) implementation("aws.smithy.kotlin:http-client-engine-okhttp")
Para oCrtHttpEngine
, adicione a seguinte dependência.
implementation(platform("aws.smithy.kotlin:bom:
X.Y.Z
")) implementation("aws.smithy.kotlin:http-client-engine-crt")
Usar a OkHttp4Engine
Use o OkHttp4Engine
se você não puder usar o padrãoOkHttpEngine
. O GitHub repositório smithy-kotlinOkHttp4Engine
Use um cliente HTTP explícito
Quando você usa um cliente HTTP explícito, você é responsável por sua vida útil, incluindo o fechamento quando não precisa mais dele. Um cliente HTTP deve durar pelo menos tanto quanto qualquer cliente de serviço que o use.
O exemplo de código a seguir mostra o código que mantém o cliente HTTP ativo enquanto o DynamoDbClient
está ativo. A use
Importações
import aws.sdk.kotlin.services.dynamodb.DynamoDbClient import aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine import kotlin.time.Duration.Companion.seconds
Código
OkHttpEngine { maxConcurrency = 64u connectTimeout = 10.seconds }.use { okHttpClient -> DynamoDbClient { region = "us-east-2" httpClient = okHttpClient }.use { ddb -> { // Perform some actions with Amazon DynamoDB. } } }