【问题标题】:Unable to access local environment variable using Python in AWS Cloud9 IDE无法在 AWS Cloud9 IDE 中使用 Python 访问本地环境变量
【发布时间】:2018-07-16 02:28:55
【问题描述】:

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

【问题讨论】:

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


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

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 2021-08-16
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2015-09-03
      • 2016-05-11
      相关资源
      最近更新 更多