

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

# Konfigurasi klien
<a name="client-configuration"></a>

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`

**Example konfigurasi klien dalam versi 1.x**  

```
AmazonDynamoDBClientBuilder.standard()
.withClientConfiguration(clientConfiguration)
.build()
```

**Example 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();
```

**Example 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
<a name="client-configuration-http"></a>

### Perubahan penting
<a name="client-configuration-http-notables"></a>
+ 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
<a name="client-configuration-http-setting-diffs"></a>


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

## Proksi klien HTTP
<a name="client-configuration-http-proxy"></a>


| Pengaturan | 1.x | 2.x Sinkronisasi, Apache | 2.x Asinkron, Netty | 
| --- | --- | --- | --- | 
|  |  <pre>ClientConfiguration clientConfig =<br />    new ClientConfiguration()</pre>  |  <pre>ProxyConfiguration.Builder proxyConfig =<br />    ProxyConfiguration.builder()</pre>  |  <pre>ProxyConfiguration.Builder proxyConfig =<br />    ProxyConfiguration.builder()</pre>  | 
| Tuan rumah proxy |  <pre>clientConfig.setProxyHost(...)<br />clientConfig.withProxyHost(...)</pre>  |  <pre>proxyConfig.endpoint(...)</pre>  |  <pre>proxyConfig.host(...)</pre>  | 
| Port proxy |  <pre>clientConfig.setProxyPort(...)<br />clientConfig.withProxyPort(...)</pre>  |  <pre>proxyConfig.endpoint(...)</pre> [Port proxy](http-configuration-apache.md#http-configuration-apache-proxy-conf-ex) disematkan di `endpoint`  |  <pre>proxyConfig.port(...)</pre>  | 
| Nama pengguna proxy |  <pre>clientConfig.setProxyUsername(...)<br />clientConfig.withProxyUsername(...)</pre>  |  <pre>proxyConfig.username(...)</pre>  |  <pre>proxyConfig.username(...)</pre>  | 
| Kata sandi proxy |  <pre>clientConfig.setProxyPassword(...)<br />clientConfig.withProxyPassword(...)</pre>  |  <pre>proxyConfig.password(...)</pre>  |  <pre>proxyConfig.password(...)</pre>  | 
| Domain proxy |  <pre>clientConfig.setProxyDomain(...)<br />clientConfig.withProxyDomain(...)</pre>  |  <pre>proxyConfig.ntlmDomain(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Stasiun kerja proxy |  <pre>clientConfig.setProxyWorkspace(...)<br />clientConfig.withProxyWorkstation(...)</pre>  |  <pre>proxyConfig.ntlmWorkstation(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Metode otentikasi proxy |  <pre>clientConfig.setProxyAuthenticationMethods(...)<br />clientConfig.withProxyAuthenticationMethods(...)</pre>  |  [Tidak Didukung](https://github.com/aws/aws-sdk-java-v2/issues/858)  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Autentikasi proxy dasar preemptive |  <pre>clientConfig.setPreemptiveBasicProxyAuth(...)<br />clientConfig.withPreemptiveBasicProxyAuth(...)</pre>  |  <pre>proxyConfig.preemptiveBasicAuthenticationEnabled(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Host non-proxy |  <pre>clientConfig.setNonProxyHosts(...)<br />clientConfig.withNonProxyHosts(...)</pre>  |  <pre>proxyConfig.nonProxyHosts(...)</pre>  |  <pre>proxyConfig.nonProxyHosts(...)</pre>  | 
| Nonaktifkan proxy soket |  <pre>clientConfig.setDisableSocketProxy(...)<br />clientConfig.withDisableSocketProxy(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
|  |  <pre>AmazonDynamoDBClientBuilder.standard()<br />    .withClientConfiguration(clientConfiguration)<br />    .build()</pre>  |  <pre>httpClientBuilder.proxyConfiguration(<br />    proxyConfig.build())</pre>  |  <pre>httpClientBuilder.proxyConfiguration(<br />    proxyConfig.build())</pre>  | 

## Pengesampingan klien
<a name="client-override-config-diffs"></a>


| Pengaturan | 1.x | 2.x | 
| --- | --- | --- | 
|  |  <pre>ClientConfiguration clientConfig =<br />    new ClientConfiguration()</pre>  |  <pre>ClientOverrideConfiguration.Builder overrideConfig =<br />    ClientOverrideConfiguration.builder()</pre>  | 
| Awalan agen pengguna |  <pre>clientConfig.setUserAgentPrefix(...)<br />clientConfig.withUserAgentPrefix(...)</pre>  |  <pre>overrideConfig.advancedOption(<br />    SdkAdvancedClientOption.USER_AGENT_PREFIX, ...)</pre>  | 
| Akhiran agen pengguna |  <pre>clientConfig.setUserAgentSuffix(...)<br />clientConfig.withUserAgentSuffix(...)</pre>  |  <pre>overrideConfig.advancedOption(<br />    SdkAdvancedClientOption.USER_AGENT_SUFFIX, ...)</pre>  | 
| Signer |  <pre>clientConfig.setSignerOverride(...)<br />clientConfig.withSignerOverride(...)</pre>  |  <pre>overrideConfig.advancedOption(<br />    SdkAdvancedClientOption.SIGNER, ...)</pre>  | 
| Header tambahan |  <pre>clientConfig.addHeader(...)<br />clientConfig.withHeader(...)</pre>  |  <pre>overrideConfig.putHeader(...)</pre>  | 
| Permintaan waktu habis |  <pre>clientConfig.setRequestTimeout(...)<br />clientConfig.withRequestTimeout(...)</pre>  |  <pre>overrideConfig.apiCallAttemptTimeout(...)</pre>  | 
| Batas waktu eksekusi klien |  <pre>clientConfig.setClientExecutionTimeout(...)<br />clientConfig.withClientExecutionTimeout(...)</pre>  |  <pre>overrideConfig.apiCallTimeout(...)</pre>  | 
| Gunakan Gzip |  <pre>clientConfig.setUseGzip(...)<br />clientConfig.withGzip(...)</pre>  |  Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new))  | 
| Petunjuk ukuran penyangga soket |  <pre>clientConfig.setSocketBufferSizeHints(...)<br />clientConfig.withSocketBufferSizeHints(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Metadata respons cache |  <pre>clientConfig.setCacheResponseMetadata(...)<br />clientConfig.withCacheResponseMetadata(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| Ukuran cache metadata respons |  <pre>clientConfig.setResponseMetadataCacheSize(...)<br />clientConfig.withResponseMetadataCacheSize(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| DNS resolver |  <pre>clientConfig.setDnsResolver(...)<br />clientConfig.withDnsResolver(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
| TCP keepalive |  <pre>clientConfig.setUseTcpKeepAlive(...)<br />clientConfig.withTcpKeepAlive(...)</pre>  |  Opsi ini sekarang dalam konfigurasi HTTP Client <pre>- ApacheHttpClient.builder().tcpKeepAlive(true)<br />- NettyNioAsyncHttpClient.builder().tcpKeepAlive(true)</pre>  | 
| Amankan acak |  <pre>clientConfig.setSecureRandom(...)<br />clientConfig.withSecureRandom(...)</pre>  | Tidak Didukung ([Fitur Permintaan](https://github.com/aws/aws-sdk-java-v2/issues/new)) | 
|  |  <pre>AmazonDynamoDBClientBuilder.standard()<br />    .withClientConfiguration(clientConfiguration)<br />    .build()</pre>  |  <pre>DynamoDbClient.builder()<br />    .overrideConfiguration(overrideConfig.build())<br />    .build()</pre>  | 

## Klien mengganti percobaan ulang
<a name="client-override-retry-config-diffs"></a>


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

## Klien asinkron
<a name="client-async-config-diffs"></a>


| Pengaturan | 1.x | 2.x | 
| --- | --- | --- | 
|  |  |  <pre>ClientAsyncConfiguration.Builder asyncConfig =<br />    ClientAsyncConfiguration.builder()</pre>  | 
| Pelaksana |  <pre>AmazonDynamoDBAsyncClientBuilder.standard()<br />    .withExecutorFactory(...)<br />    .build()</pre>  |  <pre>asyncConfig.advancedOption(<br />    SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR, ...)</pre>  | 
|  |  |  <pre>DynamoDbAsyncClient.builder()<br />    .asyncConfiguration(asyncConfig)<br />    .build()</pre>  | 

## Perubahan klien lainnya
<a name="client-config-other-diffs"></a>

`ClientConfiguration`Opsi berikut dari 1.x telah berubah di 2.x SDK dan tidak memiliki ekuivalen langsung.


| Pengaturan | 1.x | 2.x setara | 
| --- | --- | --- | 
| Protokol |  <pre>clientConfig.setProtocol(Protocol.HTTP)<br />clientConfig.withProtocol(Protocol.HTTP)</pre>  |  Pengaturan protokol adalah HTTPS secara default. Untuk mengubah pengaturan, tentukan protokol yang mengatur titik akhir HTTP pada pembuat klien: <pre>clientBuilder.endpointOverride(<br />    URI.create("http://..."))</pre>  | 