# HG changeset patch # User Franz Glasner # Date 1607302284 -3600 # Node ID 503768f91a05e5e617cf9a902e29df0bbec7490e # Parent da159603495447cf54062a7393eb1b4819c1a40a More granular configuration of retrieving AWS metadata: retries with backoff setting diff -r da1596034954 -r 503768f91a05 configmix/extras/aws.py --- a/configmix/extras/aws.py Mon Dec 07 01:06:33 2020 +0100 +++ b/configmix/extras/aws.py Mon Dec 07 01:51:24 2020 +0100 @@ -15,6 +15,8 @@ import requests import requests.exceptions +import requests.adapters +import urllib3 _MARKER = object() @@ -24,7 +26,9 @@ URL_META_REGION = "http://169.254.169.254/latest/meta-data/placement/region" URL_META_AVAILABILITY_ZONE = "http://169.254.169.254/latest/meta-data/availability-zone" URL_DYN_INSTANCE_IDENTITY_DOC = "http://169.254.169.254/latest/dynamic/instance-identity/document" -TIMEOUT = 10 +TIMEOUT = 2 +# See https://gist.github.com/doublenns/7e3e4b72df4aaeccbeabf87ba767f44e +RETRIES = urllib3.Retry(total=3, backoff_factor=0.3) _meta_instanceid = None _meta_region = None @@ -35,6 +39,8 @@ def _get_text_req(url): with requests.Session() as sess: try: + a = requests.adapters.HTTPAdapter(max_retries=RETRIES) + sess.mount("http://", a) resp = sess.get(url, timeout=TIMEOUT) resp.raise_for_status() return resp.text @@ -45,6 +51,8 @@ def _get_json_req(url): with requests.Session() as sess: try: + a = requests.adapters.HTTPAdapter(max_retries=RETRIES) + sess.mount("http://", a) resp = sess.get(url, timeout=TIMEOUT) resp.raise_for_status() return resp.json()