クライアント設定
1.x では、クライアントまたはクライアントビルダーで ClientConfiguration インスタンスを設定して、SDK クライアント設定が変更されていました。バージョン 2.x では、クライアント設定は別々の設定クラスに分割されています。別の設定クラスを使用することで、同期と非同期クライアントで異なる HTTP クライアントを設定したとしても、同じ ClientOverrideConfiguration クラスを使用できます。
例 バージョン 1.x のクライアント設定の場合
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
例 バージョン 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();
例 バージョン 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();
HTTP クライアント
重要な変更点
-
バージョン 2.x では、
clientBuilder.httpClientBuilderを使用して実装を指定することで、ランタイムに使用する HTTP クライアントを変更できます。 -
clientBuilder.httpClientを使用して HTTP クライアントをサービスクライアントビルダーに渡すと、サービスクライアントが閉じても HTTP クライアントはデフォルトで閉じられません。これにより、サービスクライアント間で HTTP クライアントを共有できます。 -
非同期 HTTP クライアントがノンブロッキング IO を使用するようになりました。
-
一部のオペレーションでは、パフォーマンスを向上させるために HTTP/2 を使用するようになりました。
設定の変更
| 設定 | 1.x | 2.x 同期、Apache | 2.x 非同期、Netty |
|---|---|---|---|
|
|
|
|
| 最大接続数 |
|
|
|
| 接続タイムアウト |
|
|
|
| ソケットタイムアウト |
|
|
|
| 接続 TTL |
|
|
|
| 接続の最大アイドル |
|
|
|
| アイドル状態後の検証 |
|
サポートされていません (リクエスト機能 |
サポートされていません (リクエスト機能 |
| ローカルアドレス |
|
|
サポートされていません |
| Expect-continue が有効 |
|
|
サポートされていません (リクエスト機能 |
| 接続リーパー |
|
|
|
|
|
|
HTTP クライアントプロキシ
| 設定 | 1.x | 2.x 同期、Apache | 2.x 非同期、Netty |
|---|---|---|---|
|
|
|
|
| プロキシのホスト |
|
|
|
| プロキシのポート |
|
プロキシポートが |
|
| プロキシユーザー名 |
|
|
|
| プロキシのパスワード |
|
|
|
| プロキシのドメイン |
|
|
サポートされていません (リクエスト機能 |
| プロキシのワークステーション |
|
|
サポートされていません (リクエスト機能 |
| プロキシの認証方法 |
|
サポートされていません (リクエスト機能 |
|
| プリエンプティブな基本プロキシ認証 |
|
|
サポートされていません (リクエスト機能 |
| 非プロキシホスト |
|
|
|
| ソケットプロキシの無効化 |
|
サポートされていません (リクエスト機能 |
サポートされていません (リクエスト機能 |
|
|
|
クライアントの上書き
| 設定 | 1.x | 2.x |
|---|---|---|
|
|
|
| ユーザーエージェントのプレフィックス |
|
|
| ユーザーエージェントのサフィックス |
|
|
| Signer |
|
|
| 追加のヘッダー |
|
|
| リクエストのタイムアウト |
|
|
| クライアントの実行タイムアウト |
|
|
| Gzip の使用 |
|
サポートされていません (リクエスト機能 |
| ソケットバッファのサイズに関するヒント |
|
サポートされていません (リクエスト機能 |
| レスポンスメタデータのキャッシュ |
|
サポートされていません (リクエスト機能 |
| レスポンスメタデータのキャッシュサイズ |
|
サポートされていません (リクエスト機能 |
| DNS リゾルバー |
|
サポートされていません (リクエスト機能 |
| TCP キープアライブ |
|
このオプションは HTTP クライアント設定になりました
|
| ランダムな保護 |
|
サポートされていません (リクエスト機能 |
|
|
クライアント上書きの再試行
| 設定 | 1.x | 2.x |
|---|---|---|
|
|
|
| 最大エラー再試行回数 |
|
|
| スロットリングされた再試行の使用 |
|
サポートされていません |
| スロットリング前の最大連続再試行回数 |
|
サポートされていません |
|
|
非同期クライアント
| 設定 | 1.x | 2.x |
|---|---|---|
|
||
| エグゼキュター |
|
|
|
その他のクライアントの変更
1.x の次の ClientConfiguration オプションは SDK の 2.x で変更されており、直接同等のオプションはありません。
| 設定 | 1.x | 2.x の同等オプション |
|---|---|---|
| プロトコル |
|
デフォルトでは、プロトコル設定は HTTPS です。設定を変更するには、クライアントビルダーで プロトコル設定に HTTP エンドポイントを指定します。
|