我正在使用AWS Cloud9 IDE开发lambda函数,但无法访问用于存储外部API密钥的环境变量。这是我正在运行的代码
import os
def getKeyValue(key):
key_value = os.environ[key]
return key_value
以及当我从IDE本地将数据传递给lambda函数时的错误-
'PEPPERJAM_KEY': KeyError
Traceback (most recent call last):
File "/var/task/fh/lambda_function.py", line 9, in lambda_handler
result = pj.getKeyValue('PEPPERJAM_KEY')
File "/var/task/fh/pj_utils.py", line 4, in getKeyValue
api_key = os.environ[key]
File "/var/lang/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'PEPPERJAM_KEY'
我已经在.bashrc
中设置了环境变量,当我在列出的终端中键入env
时,我也重新启动了EC2实例,但仍然遇到同样的问题。
关于我可能会丢失的任何想法?当我远程运行它时,它可以工作(我假设是因为我在AWS Lambda设置的“环境变量”部分中设置了该变量,所以肯定是问题在于IDE本地环境。
答案 0 :(得分:1)
如Using the AWS Serverless Application Model (AWS SAM)文章中所述,将环境变量的值添加到template.yml文件(存在于venv文件夹中)中,因此请参见
Properties:
.... # tons of other properties here, add yours at the end
Environment:
Variables:
PEPPERJAM_KEY: 'This is my awesome value'
有关e2e函数,template.yaml和结果,另请参见下面的屏幕截图。