Konfigurasi klien - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasi klien

Di 1.x, konfigurasi klien SDK dimodifikasi dengan menyetel ClientConfiguration instance pada klien atau pembuat klien. Dalam versi 2.x, konfigurasi klien dibagi menjadi kelas konfigurasi terpisah. Dengan kelas konfigurasi terpisah, Anda dapat mengonfigurasi klien HTTP yang berbeda untuk klien async versus sinkron tetapi masih menggunakan kelas yang sama. ClientOverrideConfiguration

contoh konfigurasi klien dalam versi 1.x
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
contoh konfigurasi klien sinkron di versi 2.x
ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder(); ApacheHttpClient.Builder httpClientBuilder = ApacheHttpClient.builder() .proxyConfiguration(proxyConfig.build()); ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder(); DynamoDbClient client = DynamoDbClient.builder() .httpClientBuilder(httpClientBuilder) .overrideConfiguration(overrideConfig.build()) .build();
contoh konfigurasi klien asinkron di versi 2.x
NettyNioAsyncHttpClient.Builder httpClientBuilder = NettyNioAsyncHttpClient.builder(); ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder(); ClientAsyncConfiguration.Builder asyncConfig = ClientAsyncConfiguration.builder(); DynamoDbAsyncClient client = DynamoDbAsyncClient.builder() .httpClientBuilder(httpClientBuilder) .overrideConfiguration(overrideConfig.build()) .asyncConfiguration(asyncConfig.build()) .build();

Klien HTTP

Perubahan penting

  • Di versi 2.x, Anda dapat mengubah klien HTTP mana yang akan digunakan saat runtime dengan menentukan implementasi yang digunakan. clientBuilder.httpClientBuilder

  • Ketika Anda meneruskan klien HTTP dengan menggunakan clientBuilder.httpClient ke pembuat klien layanan, klien HTTP tidak ditutup secara default jika klien layanan ditutup. Ini memungkinkan Anda untuk berbagi klien HTTP antara klien layanan.

  • Klien HTTP asinkron sekarang menggunakan IO non-pemblokiran.

  • Beberapa operasi sekarang menggunakan HTTP/2 untuk meningkatkan kinerja.

Pengaturan berubah

Pengaturan 1.x 2.x Sinkronisasi, Apache 2.x Asinkron, Netty
ClientConfiguration clientConfig = new ClientConfiguration()
ApacheHttpClient.Builder httpClientBuilder = ApacheHttpClient.builder()
NettyNioAsyncHttpClient.Builder httpClientBuilder = NettyNioAsyncHttpClient.builder()
Koneksi maks
clientConfig.setMaxConnections(...) clientConfig.withMaxConnections(...)
httpClientBuilder.maxConnections(...)
httpClientBuilder.maxConcurrency(...)
Batas waktu koneksi
clientConfig.setConnectionTimeout(...) clientConfig.withConnectionTimeout(...)
httpClientBuilder.connectionTimeout(...) httpClientBuilder.connectionAcquisitionTimeout(...)
httpClientBuilder.connectionTimeout(...)
Batas waktu soket
clientConfig.setSocketTimeout(...) clientConfig.withSocketTimeout(...)
httpClientBuilder.socketTimeout(...)
httpClientBuilder.writeTimeout(...) httpClientBuilder.readTimeout(...)
Koneksi TTL
clientConfig.setConnectionTTL(...) clientConfig.withConnectionTTL(...)
httpClientBuilder.connectionTimeToLive(...)
httpClientBuilder.connectionTimeToLive(...)
Koneksi maks idle
clientConfig.setConnectionMaxIdleMillis(...) clientConfig.withConnectionMaxIdleMillis(...)
httpClientBuilder.connectionMaxIdleTime(...)
httpClientBuilder.connectionMaxIdleTime(...)
Validasi setelah tidak aktif
clientConfig.setValidateAfterInactivityMillis(...) clientConfig.withValidateAfterInactivityMillis(...)
Tidak didukung (Fitur Permintaan) Tidak didukung (Fitur Permintaan)
Alamat lokal
clientConfig.setLocalAddress(...) clientConfig.withLocalAddress(...)
httpClientBuilder.localAddress(...)
Tidak didukung
Harapan-lanjutkan diaktifkan
clientConfig.setUseExpectContinue(...) clientConfig.withUseExpectContinue(...)
httpClientBuilder.expectContinueEnabled(...)
Tidak didukung (Fitur Permintaan)
Penuai koneksi
clientConfig.setUseReaper(...) clientConfig.withReaper(...)
httpClientBuilder.useIdleConnectionReaper(...)
httpClientBuilder.useIdleConnectionReaper(...)
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
DynamoDbClient.builder() .httpClientBuilder(httpClientBuilder) .build()
DynamoDbAsyncClient.builder() .httpClientBuilder(httpClientBuilder) .build()

Proksi klien HTTP

Pengaturan 1.x 2.x Sinkronisasi, Apache 2.x Asinkron, Netty
ClientConfiguration clientConfig = new ClientConfiguration()
ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder()
ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder()
Tuan rumah proxy
clientConfig.setProxyHost(...) clientConfig.withProxyHost(...)
proxyConfig.endpoint(...)
proxyConfig.host(...)
Port proxy
clientConfig.setProxyPort(...) clientConfig.withProxyPort(...)
proxyConfig.endpoint(...)

Port proxy disematkan di endpoint

proxyConfig.port(...)
Nama pengguna proxy
clientConfig.setProxyUsername(...) clientConfig.withProxyUsername(...)
proxyConfig.username(...)
proxyConfig.username(...)
Kata sandi proxy
clientConfig.setProxyPassword(...) clientConfig.withProxyPassword(...)
proxyConfig.password(...)
proxyConfig.password(...)
Domain proxy
clientConfig.setProxyDomain(...) clientConfig.withProxyDomain(...)
proxyConfig.ntlmDomain(...)
Tidak Didukung (Fitur Permintaan)
Stasiun kerja proxy
clientConfig.setProxyWorkspace(...) clientConfig.withProxyWorkstation(...)
proxyConfig.ntlmWorkstation(...)
Tidak Didukung (Fitur Permintaan)
Metode otentikasi proxy
clientConfig.setProxyAuthenticationMethods(...) clientConfig.withProxyAuthenticationMethods(...)

Tidak Didukung

Tidak Didukung (Fitur Permintaan)
Autentikasi proxy dasar preemptive
clientConfig.setPreemptiveBasicProxyAuth(...) clientConfig.withPreemptiveBasicProxyAuth(...)
proxyConfig.preemptiveBasicAuthenticationEnabled(...)
Tidak Didukung (Fitur Permintaan)
Host non-proxy
clientConfig.setNonProxyHosts(...) clientConfig.withNonProxyHosts(...)
proxyConfig.nonProxyHosts(...)
proxyConfig.nonProxyHosts(...)
Nonaktifkan proxy soket
clientConfig.setDisableSocketProxy(...) clientConfig.withDisableSocketProxy(...)
Tidak Didukung (Fitur Permintaan) Tidak Didukung (Fitur Permintaan)
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
httpClientBuilder.proxyConfiguration( proxyConfig.build())
httpClientBuilder.proxyConfiguration( proxyConfig.build())

Pengesampingan klien

Pengaturan 1.x 2.x
ClientConfiguration clientConfig = new ClientConfiguration()
ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder()
Awalan agen pengguna
clientConfig.setUserAgentPrefix(...) clientConfig.withUserAgentPrefix(...)
overrideConfig.advancedOption( SdkAdvancedClientOption.USER_AGENT_PREFIX, ...)
Akhiran agen pengguna
clientConfig.setUserAgentSuffix(...) clientConfig.withUserAgentSuffix(...)
overrideConfig.advancedOption( SdkAdvancedClientOption.USER_AGENT_SUFFIX, ...)
Signer
clientConfig.setSignerOverride(...) clientConfig.withSignerOverride(...)
overrideConfig.advancedOption( SdkAdvancedClientOption.SIGNER, ...)
Header tambahan
clientConfig.addHeader(...) clientConfig.withHeader(...)
overrideConfig.putHeader(...)
Batas waktu permintaan
clientConfig.setRequestTimeout(...) clientConfig.withRequestTimeout(...)
overrideConfig.apiCallAttemptTimeout(...)
Batas waktu eksekusi klien
clientConfig.setClientExecutionTimeout(...) clientConfig.withClientExecutionTimeout(...)
overrideConfig.apiCallTimeout(...)
Gunakan Gzip
clientConfig.setUseGzip(...) clientConfig.withGzip(...)

Tidak Didukung (Fitur Permintaan)

Petunjuk ukuran penyangga soket
clientConfig.setSocketBufferSizeHints(...) clientConfig.withSocketBufferSizeHints(...)
Tidak Didukung (Fitur Permintaan)
Metadata respons cache
clientConfig.setCacheResponseMetadata(...) clientConfig.withCacheResponseMetadata(...)
Tidak Didukung (Fitur Permintaan)
Ukuran cache metadata respons
clientConfig.setResponseMetadataCacheSize(...) clientConfig.withResponseMetadataCacheSize(...)
Tidak Didukung (Fitur Permintaan)
DNS resolver
clientConfig.setDnsResolver(...) clientConfig.withDnsResolver(...)
Tidak Didukung (Fitur Permintaan)
TCP keepalive
clientConfig.setUseTcpKeepAlive(...) clientConfig.withTcpKeepAlive(...)

Opsi ini sekarang dalam konfigurasi HTTP Client

- ApacheHttpClient.builder().tcpKeepAlive(true) - NettyNioAsyncHttpClient.builder().tcpKeepAlive(true)
Amankan acak
clientConfig.setSecureRandom(...) clientConfig.withSecureRandom(...)
Tidak Didukung (Fitur Permintaan)
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
DynamoDbClient.builder() .overrideConfiguration(overrideConfig.build()) .build()

Klien mengganti percobaan ulang

Pengaturan 1.x 2.x
ClientConfiguration clientConfig = new ClientConfiguration()
ClientOverrideConfiguration.Builder overrideConfigBuilder = ClientOverrideConfiguration.builder();
Kesalahan maks coba lagi
clientConfig.setMaxErrorRetry(...) clientConfig.withMaxErrorRetry(...)
// Configure the default retry strategy. overrideConfigBuilder.retryStrategy(b -> b.maxAttempts(...));
Gunakan percobaan ulang yang dibatasi
clientConfig.setUseThrottleRetries(...) clientConfig.withUseThrottleRetries(...)
Tidak didukung
Maks percobaan ulang berturut-turut sebelum throttling
clientConfig.setMaxConsecutiveRetriesBeforeThrottling(...) clientConfig.withMaxConsecutiveRetriesBeforeThrottling(...)
Tidak didukung
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
DynamoDbClient.builder() .overrideConfiguration(overrideConfigBuilder.build()) .build(); // You also have the option to use a lambda expression to configure and // build the 'ClientOverrideConfiguration.Builder'. DynamoDbClient client = DynamoDbClient.builder() .overrideConfiguration(o -> o.retryStrategy(b -> b.maxAttempts(5))) .build();

Klien asinkron

Pengaturan 1.x 2.x
ClientAsyncConfiguration.Builder asyncConfig = ClientAsyncConfiguration.builder()
Pelaksana
AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(...) .build()
asyncConfig.advancedOption( SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR, ...)
DynamoDbAsyncClient.builder() .asyncConfiguration(asyncConfig) .build()

Perubahan klien lainnya

ClientConfigurationOpsi berikut dari 1.x telah berubah di 2.x SDK dan tidak memiliki ekuivalen langsung.

Pengaturan 1.x 2.x setara
Protokol
clientConfig.setProtocol(Protocol.HTTP) clientConfig.withProtocol(Protocol.HTTP)

Pengaturan protokol adalah HTTPS secara default. Untuk mengubah pengaturan, tentukan protokol yang mengatur titik akhir HTTP pada pembuat klien:

clientBuilder.endpointOverride( URI.create("http://..."))