Add upstream_timeout as env-var

Signed-off-by: Alex Ellis <alexellis2@gmail.com>
This commit is contained in:
Alex Ellis 2018-03-05 12:29:13 +00:00
parent 30928739ee
commit 6efaee5b4f
3 changed files with 10 additions and 6 deletions

View File

@ -65,7 +65,8 @@ func forwardRequest(w http.ResponseWriter, r *http.Request, proxyClient *http.Cl
defer r.Body.Close()
upstreamReq.Body = r.Body
}
ctx, cancel := context.WithTimeout(context.Background(), timeout-time.Second*1)
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()
res, resErr := proxyClient.Do(upstreamReq.WithContext(ctx))

View File

@ -40,7 +40,7 @@ func main() {
servicePollInterval := time.Second * 5
reverseProxy := types.NewHTTPClientReverseProxy(config.FunctionsProviderURL, config.ReadTimeout)
reverseProxy := types.NewHTTPClientReverseProxy(config.FunctionsProviderURL, config.UpstreamTimeout)
faasHandlers.Proxy = internalHandlers.MakeForwardingProxyHandler(reverseProxy, &metricsOptions)
faasHandlers.RoutelessProxy = internalHandlers.MakeForwardingProxyHandler(reverseProxy, &metricsOptions)

View File

@ -58,11 +58,11 @@ func (ReadConfig) Read(hasEnv HasEnv) GatewayConfig {
PrometheusPort: 9090,
}
readTimeout := parseIntOrDurationValue(hasEnv.Getenv("read_timeout"), time.Second*8)
writeTimeout := parseIntOrDurationValue(hasEnv.Getenv("write_timeout"), time.Second*8)
defaultDuration := time.Second * 8
cfg.ReadTimeout = readTimeout
cfg.WriteTimeout = writeTimeout
cfg.ReadTimeout = parseIntOrDurationValue(hasEnv.Getenv("read_timeout"), defaultDuration)
cfg.WriteTimeout = parseIntOrDurationValue(hasEnv.Getenv("write_timeout"), defaultDuration)
cfg.UpstreamTimeout = parseIntOrDurationValue(hasEnv.Getenv("upstream_timeout"), defaultDuration)
if len(hasEnv.Getenv("functions_provider_url")) > 0 {
var err error
@ -114,6 +114,9 @@ type GatewayConfig struct {
// HTTP timeout for writing a response from functions.
WriteTimeout time.Duration
// UpstreamTimeout maximum duration of HTTP call to upstream URL
UpstreamTimeout time.Duration
// URL for alternate functions provider.
FunctionsProviderURL *url.URL