Cloud9不会在nodejs lambda中公开bash_profile导出

问题描述 投票:0回答:2

我有一个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导出,我是否需要做些具体的事情?

node.js aws-lambda aws-api-gateway cloud9-ide aws-cloud9
2个回答
1
投票

请参阅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'

0
投票

AWS Cloud9的Lambda插件由SAM Local支持,后者使用Docker:https://github.com/awslabs/aws-sam-cli。默认情况下,这意味着Lambda不使用~/.bash_profile文件;你会想要手动加载它。

© www.soinside.com 2019 - 2024. All rights reserved.