AWS SDK for C++에서 Aws::SDKOptions를 사용한 일반 구성 - AWS SDK for C++

AWS SDK for C++에서 Aws::SDKOptions를 사용한 일반 구성

Aws::SDKOptions 구조체에는 SDK 구성 옵션이 포함되어 있습니다. 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);
    참고

    httpOptionsstd::shared_ptr 대신 클로저(익명 함수 또는 Lambda 표현식이라고도 함)를 받습니다. 각 SDK 팩토리 함수는 팩토리 메모리 할당이 발생하는 시점에 메모리 관리자가 아직 설치되지 않았기 때문에 이러한 방식으로 작동합니다. 메서드에 클로저를 전달하면 메모리 할당이 안전하게 수행될 수 있을 때 메모리 관리자가 호출되어 메모리 할당을 수행합니다. 이 절차를 수행하는 간단한 기법은 Lambda 표현식을 사용하는 것입니다.

  • 글로벌 SIGPIPE 핸들러 사용

    curl 및 OpenSSL을 사용하여 SDK for C++를 빌드하는 경우 신호 핸들러를 지정해야 합니다. 자체 사용자 지정 신호 핸들러를 사용하지 않는 경우 installSigPipeHandlertrue로 설정합니다.

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

    installSigPipeHandlertrue인 경우 SDK for C++에서는 SIGPIPE 신호를 무시하는 핸들러를 사용합니다. SIGPIPE에 대한 자세한 내용은 GNU 운영 체제 웹 사이트에서 Operation Error Signals를 참조하세요. curl 핸들러에 대한 자세한 내용은 curl 웹 사이트에 설명된 CURLOPT_NOSIGNAL을 참조하세요.

    curl 및 OpenSSL의 기본 라이브러리는 원격 측이 연결을 종료할 때 SIGPIPE 신호를 전송하여 알릴 수 있습니다. 이러한 신호는 애플리케이션에서 처리해야 합니다. 이 curl 기능에 대한 자세한 내용은 curl 웹 사이트에서 libcurl thread safety를 참조하세요. 신호 핸들러는 각 애플리케이션에 전역적으로 적용되며 라이브러리는 SDK의 종속성이므로 이 동작은 SDK에 자동으로 내장되지 않습니다.