

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS SDK for Java 2.x
<a name="using"></a>

本章說明如何 AWS SDK for Java 2.x 有效使用 。了解如何建立服務用戶端、提出請求、處理回應和管理錯誤。本章涵蓋同步和非同步程式設計、分頁結果、資源監控的等待者，以及效能最佳化。

您也可以找到用戶端重複使用、疑難排解指引、Lambda 啟動最佳化、HTTP/2 支援和 DNS 組態的最佳實務。

**Contents**
+ [使用 提出 AWS 服務 請求 AWS SDK for Java 2.x](work-witih-clients.md)
  + [使用服務用戶端提出請求](work-witih-clients.md#using-service-client)
    + [建立服務用戶端](work-witih-clients.md#work-with-clients-create)
    + [預設用戶端組態](work-witih-clients.md#using-default-client)
    + [設定服務用戶端](work-witih-clients.md#using-configure-service-clients)
    + [關閉服務用戶端](work-witih-clients.md#using-closing-client)
  + [提出請求](work-witih-clients.md#using-making-requests)
    + [使用請求覆寫用戶端組態](work-witih-clients.md#using-override-client-config-request)
  + [處理回應](work-witih-clients.md#using-handling-responses)
+ [使用 以非同步方式進行程式設計 AWS SDK for Java 2.x](asynchronous.md)
  + [使用非同步用戶端 APIs](asynchronous.md#basics-async-non-streaming)
  + [以非同步方法處理串流](asynchronous.md#basics-async-streaming)
  + [設定進階非同步選項](asynchronous.md#advanced-operations)
+ [使用 的最佳實務 AWS SDK for Java 2.x](best-practices.md)
  + [透過設定 API 逾時來防止掛起請求](best-practices.md#bestpractice5)
  + [透過重複使用 服務用戶端來改善效能](best-practices.md#bestpractice1)
  + [關閉未使用的服務用戶端以防止資源洩漏](best-practices.md#bestpractice-close-client)
  + [關閉輸入串流以防止連線集區耗盡](best-practices.md#bestpractice2)
  + [為您的應用程式工作負載最佳化 HTTP 效能](best-practices.md#bestpractice3)
  + [使用非同步用戶端的 OpenSSL 改善 SSL 效能](best-practices.md#bestpractice4)
  + [使用 SDK 指標監控應用程式效能](best-practices.md#bestpractice6)
+ [處理 中的錯誤 AWS SDK for Java 2.x](handling-exceptions.md)
  + [為什麼要取消核取例外狀況？](handling-exceptions.md#why-unchecked-exceptions)
  + [AwsServiceException （和子類別）](handling-exceptions.md#sdkserviceexception-and-subclasses)
  + [SdkClientException](handling-exceptions.md#sdkclientexception)
  + [例外狀況和重試行為](handling-exceptions.md#retried-exceptions)
+ [在 適用於 Java 的 AWS SDK 2.x 中使用分頁結果](pagination.md)
  + [同步分頁](pagination.md#synchronous-pagination)
    + [逐一查看頁面](pagination.md#iterate-pages)
    + [反覆運算物件](pagination.md#iterate-objects)
      + [使用串流](pagination.md#use-a-stream)
      + [使用 for-each 迴圈](pagination.md#for-loop)
    + [手動分頁](pagination.md#manual-pagination)
  + [非同步分頁](pagination.md#asynchronous-pagination)
    + [反覆查看資料表名稱的頁面](pagination.md#iterate-pages-async)
      + [使用 `Subscriber`](pagination.md#use-a-subscriber)
      + [使用 `Consumer`](pagination.md#id1pagination)
    + [反覆運算資料表名稱](pagination.md#iterate-objects-async)
      + [使用 `Subscriber`](pagination.md#id2)
      + [使用 `Consumer`](pagination.md#for-loop-async)
    + [使用第三方程式庫](pagination.md#use-third-party-library)
+ [在 中使用等待程式 AWS SDK for Java 2.x](waiters.md)
  + [先決條件](waiters.md#prerequisiteswaiters)
  + [使用等待程式](waiters.md#id1waiters)
    + [同步程式設計](waiters.md#synchronous-programming)
    + [非同步程式設計](waiters.md#asynchronous-programming)
  + [設定等待程式](waiters.md#configuring-waiters)
    + [設定等待程式](waiters.md#configure-a-waiter)
    + [覆寫特定請求的組態](waiters.md#override-configuration-for-a-specific-request)
  + [程式碼範例](waiters.md#code-examples)
+ [疑難排解常見問答集](troubleshooting.md)
  + [如何修正「`java.net.SocketException`：連線重設」或「伺服器無法完成回應」錯誤？](troubleshooting.md#faq-socketexception)
  + [如何修正「連線逾時」？](troubleshooting.md#faq-connection-timeout)
  + [如何修正「`java.net.SocketTimeoutException`：讀取逾時」？](troubleshooting.md#faq-socket-timeout)
  + [如何修正「無法執行 HTTP 請求：等待從集區連線逾時」錯誤？](troubleshooting.md#faq-pool-timeout)
  + [如何修正 `NoClassDefFoundError`、 `NoSuchMethodError`或 `NoSuchFieldError`？](troubleshooting.md#faq-classpath-errors)
  + [如何修正「`SignatureDoesNotMatch`」錯誤或「我們計算的請求簽章與您提供的簽章不符」錯誤？](troubleshooting.md#faq-signature-does-not-match-error)
  + [如何修正「`java.lang.IllegalStateException`：連線集區關閉」錯誤？](troubleshooting.md#faq-connection-pool-shutdown-exception)
  + [如何修正「無法從鏈結 AwsCredentialsProviderChain 中的任何供應商載入登入資料」？](troubleshooting.md#faq-credentials-provider-chain)
    + [常見原因和解決方案](troubleshooting.md#faq-cred-provider-chain-common-causes-and-solutions)
      + [檢閱您的登入資料組態](troubleshooting.md#faq-cred-provider-chain-check-config)
        + [對於 Amazon EC2 執行個體](troubleshooting.md#faq-cred-check-ec2)
        + [對於容器環境](troubleshooting.md#faq-cred-check-container-env)
        + [針對本機開發](troubleshooting.md#faq-cred-check-local-dev)
        + [針對 Web 聯合身分](troubleshooting.md#faq-cred-check-web-id-federation)
      + [網路或代理連線問題](troubleshooting.md#faq-credentials-provider-chain-network-issues)
+ [縮短 的 SDK 啟動時間 AWS Lambda](lambda-optimize-starttime.md)
  + [使用 AWS CRT 型 HTTP 用戶端](lambda-optimize-starttime.md#lambda-quick-url)
  + [移除未使用的 HTTP 用戶端相依性](lambda-optimize-starttime.md#lambda-quick-remove-deps)
  + [將服務用戶端設定為捷徑查詢](lambda-optimize-starttime.md#lambda-quick-clients)
  + [在 Lambda 函數處理常式外部初始化 SDK 用戶端](lambda-optimize-starttime.md#lambda-quick-initialize)
  + [將相依性插入降到最低](lambda-optimize-starttime.md#lambda-quick-di)
  + [使用 Maven 原型目標 AWS Lambda](lambda-optimize-starttime.md#lambda-quick-maven)
  + [考慮 Lambda SnapStart for Java](lambda-optimize-starttime.md#lambda-quick-snapstart)
  + [影響啟動時間的 2.x 版變更](lambda-optimize-starttime.md#example-client-configuration)
  + [其他資源](lambda-optimize-starttime.md#lambda-quick-resources)
+ [在 `ContentStreamProvider`中實作 AWS SDK for Java 2.x](content-stream-provider.md)
  + [使用 `mark()` 和 `reset()`](content-stream-provider.md#csp-impl-mark-reset)
  + [如果 `mark()`和 `reset()` 無法使用，請使用緩衝](content-stream-provider.md#csp-impl-unsupported-streams)
  + [建立新的串流](content-stream-provider.md#csp-impl-new-stream)
+ [設定 DNS 名稱查詢的 JVM TTL](jvm-ttl-dns.md)
  + [如何設定 JVM TTL](jvm-ttl-dns.md#how-to-set-the-jvm-ttl)
    + [選項 1：在應用程式中以程式設計方式設定](jvm-ttl-dns.md#set-ttl-programmatically)
    + [選項 2：在 java.security 檔案中設定](jvm-ttl-dns.md#set-ttl-java-security-file)
    + [選項 3：使用 JDK 系統屬性備用 （命令列）](jvm-ttl-dns.md#set-ttl-system-property)
+ [在 中使用 HTTP/2 適用於 Java 的 AWS SDK](http2.md)