我有一个Cloud9环境,并修改了我的〜/ .bash_profile以在文件末尾导出一个值。
export foo="hello world"
我运行. ~/.bash_profile
然后echo $foo
,我在终端看到hello world
输出。
然后我创建了一个带有API网关的NodeJS Lambda。我在Cloud 9中本地运行API网关并尝试读取环境变量
console.log(process.env)
我看到AWS已定义的可用变量列表。然而,我的出口没有列在那里。由于我将在部署Lambda时使用环境变量,因此我想使用Cloud9环境中定义的环境变量对其进行测试。
为了让Lambda读取我的.bash_profile导出,我是否需要做些具体的事情?
请参阅Using the AWS Serverless Application Model (AWS SAM)文章,该文章描述了如何在SAM中使用环境变量(在cloud9中也是如此)。
总结 - 将环境变量放入template.yaml文件(存在于应用程序的根文件夹中),如下所示:
Properties:
.... # tons of other properties here, add yours at the end
Environment:
Variables:
MY_ENV_VARIABLE: 'This is my awesome env variable value'
AWS Cloud9的Lambda插件由SAM Local支持,后者使用Docker:https://github.com/awslabs/aws-sam-cli。默认情况下,这意味着Lambda不使用~/.bash_profile
文件;你会想要手动加载它。