在 Aws::SDKOptions中使用 的一般組態 適用於 C++ 的 AWS SDK - 適用於 C++ 的 AWS SDK

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

Aws::SDKOptions中使用 的一般組態 適用於 C++ 的 AWS SDK

結構包含 SDK Aws::SDKOptions 組態選項。 Aws::SDKOptions 著重於一般 SDK 組態,而 ClientConfiguration 結構著重於與 通訊的組態 AWS 服務。

的執行個體Aws::SDKOptions會傳遞至 Aws::InitAPI和 Aws::ShutdownAPI方法。相同的執行個體應傳送至這兩種方法。

下列範例示範一些可用的選項。

  • 使用預設記錄器開啟記錄

    Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info; Aws::InitAPI(options); { // make your SDK calls here. } Aws::ShutdownAPI(options);
  • 覆寫預設 HTTP 用戶端工廠

    Aws::SDKOptions options; options.httpOptions.httpClientFactory_create_fn = [](){ return Aws::MakeShared<MyCustomHttpClientFactory>( "ALLOC_TAG", arg1); }; Aws::InitAPI(options); { // make your SDK calls here. } Aws::ShutdownAPI(options);
    注意

    httpOptions 需要關閉 (也稱為匿名函數或 lambda 表達式),而不是 std::shared_ptr。每個 SDK 原廠函數都以這種方式運作,因為在發生原廠記憶體配置時,尚未安裝記憶體管理員。透過將關閉傳遞給 方法,將呼叫記憶體管理員,以便在安全的情況下執行記憶體配置。完成此程序的簡單技巧是使用 Lambda 表達式。

  • 使用全域SIGPIPE處理常式

    如果您使用 curl 和 OpenSSL 建置適用於 C++ 的 SDK,則必須指定訊號處理常式。如果您不使用自己的自訂訊號處理常式,請將 installSigPipeHandler設定為 true

    Aws::SDKOptions options; options.httpOptions.installSigPipeHandler = true; Aws::InitAPI(options); { // make your SDK calls here. } Aws::ShutdownAPI(options);

    installSigPipeHandler為 時true,適用於 C++ 的 SDK 會使用忽略SIGPIPE訊號的處理常式。如需 的詳細資訊SIGPIPE,請參閱 GNU 作業系統網站上的操作錯誤訊號。如需 curl 處理常式的詳細資訊,請參閱 curl 網站上的 CURLOPT_NOSIGNAL 說明

    curl 和 OpenSSL 的基礎程式庫可以傳送SIGPIPE訊號,以在遠端關閉連線時通知 。這些訊號必須由應用程式處理。如需此 curl 功能的詳細資訊,請參閱 curl 網站上的 libcurl 執行緒安全。此行為不會自動內建於軟體開發套件,因為每個應用程式的訊號處理常式都是全域的,程式庫是軟體開發套件的相依性。