Search code examples
pythonaws-lambdakeyerror

I have this problem in my code for Lambda AWS KeyError


I have this "KeyError" in lambda with python and i cant find problem is a code python for make request in S3 code for run SNS of Compliance of Device Defender

  "stackTrace": [
    "  File \"/var/lang/lib/python3.7/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n",
    "  File \"/var/lang/lib/python3.7/imp.py\", line 171, in load_source\n    module = _load(spec)\n",
    "  File \"<frozen importlib._bootstrap>\", line 696, in _load\n",
    "  File \"<frozen importlib._bootstrap>\", line 677, in _load_unlocked\n",
    "  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n",
    "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
    "  File \"/var/task/lambda_function.py\", line 7, in <module>\n    myDeviceJobDocument_DEVICE_CERTIFICATE_EXPIRING_CHECK = os.environ['https://s3.us-east-2.amazonaws.com/'] + \"/certRotateJob.json\"\n",
    "  File \"/var/lang/lib/python3.7/os.py\", line 681, in __getitem__\n    raise KeyError(key) from None\n"
  ]
}

Function Logs
START RequestId: 0270cd0c-1e14-4cc9-8042-7f0ef5347013 Version: $LATEST
[ERROR] KeyError: 'https://s3.us-east-2.amazonaws.com/'
Traceback (most recent call last):
  File "/var/lang/lib/python3.7/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/var/lang/lib/python3.7/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 7, in <module>
    myDeviceJobDocument_DEVICE_CERTIFICATE_EXPIRING_CHECK = os.environ['https://s3.us-east-2.amazonaws.com/'] + "/certRotateJob.json"
  File "/var/lang/lib/python3.7/os.py", line 681, in __getitem__
    raise KeyError(key) from None
END RequestId: 0270cd0c-1e14-4cc9-8042-7f0ef5347013
REPORT RequestId: 0270cd0c-1e14-4cc9-8042-7f0ef5347013  Duration: 5199.31 ms    Billed Duration: 5200 ms    Memory Size: 128 MB Max Memory Used: 34 MB  
Unknown application error occurred```

Solution

  • This piece of your code:

    myDeviceJobDocument_DEVICE_CERTIFICATE_EXPIRING_CHECK = os.environ['https://s3.us-east-2.amazonaws.com/'] + "/certRotateJob.json"
    

    attempts to look up the value of an environment variable called https://s3.us-east-2.amazonaws.com/. This doesn't look like a valid name for an environment variable, so it probably doesn't exist, which would indeed cause a KeyError.