无法在AWS Cloud9 IDE中使用Python访问本地环境变量

时间:2018-07-16 02:28:55

标签: python linux amazon-web-services cloud9-ide

我正在使用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本地环境。

1 个答案:

答案 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和结果,另请参见下面的屏幕截图。

enter image description here