Search::Elasticsearch::Cxn::HTTPTiny3pm
A cxn implementation which uses http::tiny
Version
version 8.12
Overview
Provides the default HTTP Cxn class and is based on HTTP::Tiny. The HTTP::Tiny backend is fast, uses pure Perl, support proxies and https and provides persistent connections.
This class does Search::Elasticsearch::Role::Cxn, whose documentation provides more information, and Search::Elasticsearch::Role::Is_Sync.
Configuration
Inherited configuration
From Search::Elasticsearch::Role::Cxn
•
|
node |
|---|---|
•
|
max_content_length |
•
|
deflate |
•
|
deflate |
•
|
request_timeout |
•
|
ping_timeout |
•
|
dead_timeout |
•
|
max_dead_timeout |
•
|
sniff_request_timeout |
•
|
sniff_timeout |
•
|
handle_args |
•
|
handle_args |
SSL/TLS
Search::Elasticsearch::Cxn::HTTPTiny uses IO::Socket::SSL to support HTTPS. By default, no validation of the remote host is performed.
This behaviour can be changed by passing the "ssl_options" parameter with any options accepted by IO::Socket::SSL. For instance, to check that the remote host has a trusted certificate, and to avoid man-in-the-middle attacks, you could do the following:
use Search::Elasticsearch;use IO::Socket::SSL;my $es = Search::Elasticsearch->new(nodes => ["https://node1.mydomain.com:9200","https://node2.mydomain.com:9200",],ssl_options => {SSL_verify_mode => SSL_VERIFY_PEER,SSL_ca_file => '/path/to/cacert.pem'});
If the remote server cannot be verified, an Search::Elasticsearch::Error will be thrown.
If you want your client to present its own certificate to the remote server, then use:
use Search::Elasticsearch;use IO::Socket::SSL;my $es = Search::Elasticsearch->new(nodes => ["https://node1.mydomain.com:9200","https://node2.mydomain.com:9200",],ssl_options => {SSL_verify_mode => SSL_VERIFY_PEER,SSL_use_cert => 1,SSL_ca_file => '/path/to/cacert.pem',SSL_cert_file => '/path/to/client.pem',SSL_key_file => '/path/to/client.pem',});
Methods
perform_request()
($status,$body) = $self->perform_request({# requiredmethod => 'GET|HEAD|POST|PUT|DELETE',path => '/path/of/request',qs => \%query_string_params,# optionaldata => $body_as_string,mime_type => 'application/json',timeout => $timeout});
Sends the request to the associated Elasticsearch node and returns a $status code and the decoded response $body, or throws an error if the request failed.
Inherited methods
From Search::Elasticsearch::Role::Cxn
•
|
|
|---|---|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
•
|
|
Copyright and license
This software is Copyright (c) 2024 by Elasticsearch BV.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
Releases
5 releases since Debian 9 (Stretch); the text changed 4 times.