Documentation
¶
Index ¶
- func ToAwsError(err error) awserr.Error
- type AwsHttp2Client
- func (h2 *AwsHttp2Client) NewHttp2Client() (*http.Client, error)
- func (h2 *AwsHttp2Client) SetDialContextConnectTimeout(v time.Duration)
- func (h2 *AwsHttp2Client) SetDialContextKeepAlive(v time.Duration)
- func (h2 *AwsHttp2Client) SetDisableCompressions(v bool)
- func (h2 *AwsHttp2Client) SetDisableKeepAlives(v bool)
- func (h2 *AwsHttp2Client) SetExpectContinueTimeout(v time.Duration)
- func (h2 *AwsHttp2Client) SetIdleConnTimeout(v time.Duration)
- func (h2 *AwsHttp2Client) SetMaxConnsPerHost(v int)
- func (h2 *AwsHttp2Client) SetMaxIdleConns(v int)
- func (h2 *AwsHttp2Client) SetMaxIdleConnsPerHost(v int)
- func (h2 *AwsHttp2Client) SetOverallTimeout(v time.Duration)
- func (h2 *AwsHttp2Client) SetResponseHeaderTimeout(v time.Duration)
- func (h2 *AwsHttp2Client) SetTlsHandshakeTimeout(v time.Duration)
- type HttpClientSettings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ToAwsError ¶ added in v1.0.3
Types ¶
type AwsHttp2Client ¶
type AwsHttp2Client struct {
Options *HttpClientSettings
}
AwsHttp2Client struct defines container for HttpClientSettings
func (*AwsHttp2Client) NewHttp2Client ¶
func (h2 *AwsHttp2Client) NewHttp2Client() (*http.Client, error)
NewHttp2Client returns custom http2 client for aws connection
func (*AwsHttp2Client) SetDialContextConnectTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetDialContextConnectTimeout(v time.Duration)
SetDialContextConnectTimeout sets Dialer.Timeout: maximum amount of time a dial will wait for a connection to be created default = 10 seconds
func (*AwsHttp2Client) SetDialContextKeepAlive ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetDialContextKeepAlive(v time.Duration)
SetDialContextKeepAlive sets Dialer.KeepAlive: negative value disables keep-alive; 0 enables keep-alive default = keep-alive enabled = 0
func (*AwsHttp2Client) SetDisableCompressions ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetDisableCompressions(v bool)
SetDisableCompressions sets Transport.DisableCompression: if true, prevents the Transport from requesting compression with an "Accept-Encoding: gzip" request header when the Request contains no existing Accept-Encoding value. default = false
func (*AwsHttp2Client) SetDisableKeepAlives ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetDisableKeepAlives(v bool)
SetDisableKeepAlives sets Transport.DisableKeepAlives: if true, prevents re-use of TCP connections between different HTTP requests default = false
func (*AwsHttp2Client) SetExpectContinueTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetExpectContinueTimeout(v time.Duration)
SetExpectContinueTimeout sets Transport.ExpectContinueTimeout: maximum amount of time to wait for a server's first response headers after fully writing the request headers,
if the response has an "Expect: 100-continue" header, this time does not include the time to send the request header, the http client sends its payload after this timeout is exhausted
default = 1 second; set to 0 for no timeout and send request payload without waiting
func (*AwsHttp2Client) SetIdleConnTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetIdleConnTimeout(v time.Duration)
SetIdleConnTimeout sets Transport.IdleConnTimeout: maximum amount of time to keep an idle network connection alive between http requests default = 0 for no limit
func (*AwsHttp2Client) SetMaxConnsPerHost ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetMaxConnsPerHost(v int)
SetMaxConnsPerHost sets Transport.MaxConnsPerHost: limits the total number of connections per host, including connections in the dialing, active, and idle states default = 0 means no limit
func (*AwsHttp2Client) SetMaxIdleConns ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetMaxIdleConns(v int)
SetMaxIdleConns sets Transport.MaxIdleConns: maximum number of idle (keep-alive) connections across all hosts,
use case: increasing this value when many connections in a short period from same clients
default = 0 means no limit
func (*AwsHttp2Client) SetMaxIdleConnsPerHost ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetMaxIdleConnsPerHost(v int)
SetMaxIdleConnsPerHost sets Transport.MaxIdleConnsPerHost: maximum number of idle (keep-alive) connections to keep per-host,
use case: increasing this value when many connections in a short period from same clients
default = 0 means 2 idle connections per host suggest setting to 250 or higher for aws sdk usage use 500 as default here
func (*AwsHttp2Client) SetOverallTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetOverallTimeout(v time.Duration)
SetOverallTimeout sets Client.Timeout: overall timeout for http client including connection, request, response default = 60 seconds
func (*AwsHttp2Client) SetResponseHeaderTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetResponseHeaderTimeout(v time.Duration)
SetResponseHeaderTimeout sets Transport.ResponseHeaderTimeout: maximum amount of time to wait for a client to read the response header,
if the client isn't able to read the response's header within this duration, the request fails with a timeout error, warning: when using long-running lambda functions, as the operation does not return any response headers until the lambda has finished or timeout
default = no timeout, waits forever use 30 seconds as default here
func (*AwsHttp2Client) SetTlsHandshakeTimeout ¶ added in v1.6.8
func (h2 *AwsHttp2Client) SetTlsHandshakeTimeout(v time.Duration)
SetTlsHandshakeTimeout sets Transport.TLSHandshakeTimeout: maximum amount of time waiting for a TLS handshake to be completed default = 10 seconds; 0 means no timeout
type HttpClientSettings ¶
type HttpClientSettings struct {
// Dialer.KeepAlive: negative value disables keep-alive; 0 enables keep-alive
// default = keep-alive enabled
DialContextKeepAlive *time.Duration
// Dialer.Timeout: maximum amount of time a dial will wait for a connection to be created
// default = 10 seconds
DialContextConnectTimeout *time.Duration
// Transport.ExpectContinueTimeout: maximum amount of time to wait for a server's first response headers after fully writing the request headers,
// if the response has an "Expect: 100-continue" header,
// this time does not include the time to send the request header,
// the http client sends its payload after this timeout is exhausted
// default = 1 second; set to 0 for no timeout and send request payload without waiting
ExpectContinueTimeout *time.Duration
// Client.Timeout: overall timeout for http client including connection, request, response
// default = 60 seconds
OverallTimeout *time.Duration
// Transport.MaxIdleConns: maximum number of idle (keep-alive) connections across all hosts,
// use case: increasing this value when many connections in a short period from same clients
// default = 0 means no limit
MaxIdleConns *int
// Transport.MaxIdleConnsPerHost: maximum number of idle (keep-alive) connections to keep per-host,
// use case: increasing this value when many connections in a short period from same clients
// default = 0 means 2 idle connections per host
// suggest setting to 250 or higher for aws sdk usage
// use 500 as default here
MaxIdleConnsPerHost *int
// Transport.MaxConnsPerHost: limits the total number of connections per host, including connections in the dialing, active, and idle states
// default = 0 means no limit
MaxConnsPerHost *int
// Transport.IdleConnTimeout: maximum amount of time to keep an idle network connection alive between http requests
// default = 0 for no limit
// use 300 seconds (5 minutes) as default here
IdleConnTimeout *time.Duration
DisableKeepAlive *bool
DisableCompression *bool
// Transport.TLSHandshakeTimeout: maximum amount of time waiting for a TLS handshake to be completed
// default = 10 seconds; 0 means no timeout
TlsHandshakeTimeout *time.Duration
// Transport.ResponseHeaderTimeout: maximum amount of time to wait for a client to read the response header,
// if the client isn't able to read the response's header within this duration, the request fails with a timeout error,
// warning: when using long-running lambda functions, as the operation does not return any response headers until the lambda has finished or timeout
// default = no timeout, waits forever
// use 30 seconds as default here
ResponseHeaderTimeout *time.Duration
}
HttpClientSettings based on aws documentation