URLError: <urlopen error [Errno 97] Address family not supported by protocol>

774 Views Asked by At

I am trying to get secure string variable stored AWS parameter store, from AWS lambda. I follow this document, and have already deploy this code to lambda layer

# parameter_store_extension.py

import urllib
import json
import os

from urllib.parse import urlencode

aws_session_token = os.environ.get('AWS_SESSION_TOKEN')
port = '2773'


def get_param(name: str):
    """
    Get SALT form systems manager/parameter store
    """
    params = dict(name=name)
    req = urllib.request.Request(
        f"http://localhost:{port}/systemsmanager/parameters/get/?{urlencode(params)}&withDecryption=true")
    req.add_header('X-Aws-Parameters-Secrets-Token', aws_session_token)
    config = urllib.request.urlopen(req).read()

    return json.loads(config)

However, when I try to use it in my lambda_function.lambda_handle

from parameter_store_extension import get_param
SALT = get_param('SALT')

I get this error in TEST

{
  "errorMessage": "<urlopen error [Errno 97] Address family not supported by protocol>",
  "errorType": "URLError",
  "requestId": "",
  "stackTrace": [
    "  File \"/var/lang/lib/python3.10/importlib/__init__.py\", line 126, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n",
    "  File \"<frozen importlib._bootstrap>\", line 1050, in _gcd_import\n",
    "  File \"<frozen importlib._bootstrap>\", line 1027, in _find_and_load\n",
    "  File \"<frozen importlib._bootstrap>\", line 1006, in _find_and_load_unlocked\n",
    "  File \"<frozen importlib._bootstrap>\", line 688, in _load_unlocked\n",
    "  File \"<frozen importlib._bootstrap_external>\", line 883, in exec_module\n",
    "  File \"<frozen importlib._bootstrap>\", line 241, in _call_with_frames_removed\n",
    "  File \"/var/task/lambda_function.py\", line 9, in <module>\n    SALT = get_param('SALT')\n",
    "  File \"/opt/python/lib/python3.10/site-packages/parameter_store_extension.py\", line 19, in get_param\n    config = urllib.request.urlopen(req).read()\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 216, in urlopen\n    return opener.open(url, data, timeout)\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 519, in open\n    response = self._open(req, data)\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 536, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 496, in _call_chain\n    result = func(*args)\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 1377, in http_open\n    return self.do_open(http.client.HTTPConnection, req)\n",
    "  File \"/var/lang/lib/python3.10/urllib/request.py\", line 1351, in do_open\n    raise URLError(err)\n"
  ]
}

Function Logs
[ERROR] URLError: <urlopen error [Errno 97] Address family not supported by protocol>
Traceback (most recent call last):
  File "/var/lang/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 9, in <module>
    SALT = get_param('SALT')
  File "/opt/python/lib/python3.10/site-packages/parameter_store_extension.py", line 19, in get_param
    config = urllib.request.urlopen(req).read()
  File "/var/lang/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/var/lang/lib/python3.10/urllib/request.py", line 519, in open
    response = self._open(req, data)
  File "/var/lang/lib/python3.10/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/var/lang/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/var/lang/lib/python3.10/urllib/request.py", line 1377, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/var/lang/lib/python3.10/urllib/request.py", line 1351, in do_open
    raise URLError(err)[ERROR] URLError: <urlopen error [Errno 97] Address family not supported by protocol>
Traceback (most recent call last):
  File "/var/lang/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 9, in <module>
    SALT = get_param('SALT')
  File "/opt/python/lib/python3.10/site-packages/parameter_store_extension.py", line 19, in get_param
    config = urllib.request.urlopen(req).read()
  File "/var/lang/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/var/lang/lib/python3.10/urllib/request.py", line 519, in open
    response = self._open(req, data)
  File "/var/lang/lib/python3.10/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/var/lang/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/var/lang/lib/python3.10/urllib/request.py", line 1377, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "/var/lang/lib/python3.10/urllib/request.py", line 1351, in do_open
    raise URLError(err)START RequestId: 41f27d03-65ab-4130-a5e9-2db8ed47e8e2 Version: $LATEST
Unknown application error occurred
Runtime.Unknown
END RequestId: 41f27d03-65ab-4130-a5e9-2db8ed47e8e2
REPORT RequestId: 41f27d03-65ab-4130-a5e9-2db8ed47e8e2  Duration: 5031.52 ms    Billed Duration: 5032 ms    Memory Size: 128 MB Max Memory Used: 27 MB

How do I solve this problem?

0

There are 0 best solutions below