Configuração geral usando Aws::SDKOptions no AWS SDK para C++
A estrutura Aws::SDKOptions contém opções de configuração do SDK. Aws::SDKOptions se concentra na configuração geral do SDK, enquanto a estrutura ClientConfiguration se concentra na configuração da comunicação com Serviços da AWS.
Uma instância de Aws::SDKOptions é transmitida para os métodos Aws::InitAPI e Aws::ShutdownAPI. A mesma instância deve ser enviada aos dois métodos.
Os exemplos a seguir demonstram algumas das opções disponíveis.
-
Ativar o registro em log usando o registrador padrão.
Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info; Aws::InitAPI(options); { // make your SDK calls here. } Aws::ShutdownAPI(options); -
Substituir a fábrica de clientes HTTP padrão.
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);nota
httpOptionsrecebe um encerramento (também chamado de função anônima ou expressão lambda) em vez de umstd::shared_ptr. Cada uma das funções de fábrica do SDK opera dessa maneira porque, no momento em que ocorre a alocação de memória de fábrica, o gerenciador de memória ainda não foi instalado. Ao transmitir um encerramento para o método, o gerenciador de memória será chamado para realizar a alocação de memória quando for seguro fazer isso. Uma técnica simples para realizar esse procedimento é usar uma expressão Lambda. -
Usar um manipulador
SIGPIPEglobalSe você compilar o SDK para C++ com curl e OpenSSL, deverá especificar um manipulador de sinal. Se você não usa seu próprio manipulador de sinal personalizado, defina
installSigPipeHandlercomotrue.Aws::SDKOptions options; options.httpOptions.installSigPipeHandler = true; Aws::InitAPI(options); { // make your SDK calls here. } Aws::ShutdownAPI(options);Quando
installSigPipeHandlerétrue, o SDK para C++ usa um manipulador que ignora os sinaisSIGPIPE. Para acessar mais informações sobreSIGPIPE, consulte Operation Error Signalsno site do sistema operacional GNU. Para acessar mais informações sobre o manipulador de curl, consulte CURLOPT_NOSIGNAL explained no site do curl. As bibliotecas subjacentes do curl e do OpenSSL podem enviar um sinal
SIGPIPEpara notificar quando o lado remoto fecha uma conexão. Esses sinais devem ser processados pela aplicação. Para acessar mais informações sobre essa funcionalidade de curl, consulte libcurl thread safetyno site do curl. Esse comportamento não é incorporado automaticamente ao SDK porque os manipuladores de sinais são globais para cada aplicação e a biblioteca é uma dependência do SDK.