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 SDK klien 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 HTTP klien 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();

HTTPklien

Perubahan penting

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

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

  • HTTPKlien 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()

HTTPproxy klien

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)
DNSpenyelesai
clientConfig.setDnsResolver(...) clientConfig.withDnsResolver(...)
Tidak Didukung (Fitur Permintaan)
TCPkeepalive
clientConfig.setUseTcpKeepAlive(...) clientConfig.withTcpKeepAlive(...)

Opsi ini sekarang ada di konfigurasi HTTP Klien

- 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() .httpClientBuilder(httpClientBuilder) .build()

Klien mengganti percobaan ulang

Pengaturan 1.x 2.x
ClientConfiguration clientConfig = new ClientConfiguration()
RetryPolicy.Builder retryPolicy = RetryPolicy.builder()
Kesalahan maks coba lagi
clientConfig.setMaxErrorRetry(...) clientConfig.withMaxErrorRetry(...)
retryPolicy.numRetries(...)
Gunakan percobaan ulang yang dibatasi
clientConfig.setUseThrottleRetries(...) clientConfig.withUseThrottleRetries(...)
Tidak didukung
Max percobaan ulang berturut-turut sebelum throttling
clientConfig.setMaxConsecutiveRetriesBeforeThrottling(...) clientConfig.withMaxConsecutiveRetriesBeforeThrottling(...)
Tidak didukung
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
DynamoDbClient.builder() .httpClientBuilder(httpClientBuilder) .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 secara HTTPS default. Untuk mengubah pengaturan, tentukan protokol yang mengatur HTTP titik akhir pada pembuat klien:

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