Elastic Beanstalk bash入门脚本赢得';t设置环境变量(节点JS)

Elastic Beanstalk bash入门脚本赢得';t设置环境变量(节点JS),bash,amazon-web-services,environment-variables,amazon-elastic-beanstalk,Bash,Amazon Web Services,Environment Variables,Amazon Elastic Beanstalk,我有一个脚本用来启动我的应用程序,我还想用它来设置一些环境变量。这样我就可以加密S3存储桶中的敏感环境变量,并在应用程序之前加载这些变量。这是我的脚本start.sh: #!/bin/bash # Load the S3 secrets file contents into the environment variables eval $(aws s3 cp s3://secret-bucket-location/integration-secrets.txt - | sed 's/^/exp

我有一个脚本用来启动我的应用程序,我还想用它来设置一些环境变量。这样我就可以加密S3存储桶中的敏感环境变量,并在应用程序之前加载这些变量。这是我的脚本
start.sh

#!/bin/bash

# Load the S3 secrets file contents into the environment variables
eval $(aws s3 cp s3://secret-bucket-location/integration-secrets.txt - | sed 's/^/export /')

#I have also tried exporting variables here to see if my app picks them up
export TEST_ENV_VAR=testing

pm2 start server.js
结果是没有设置任何环境变量。但是,在Elastic Beanstalk UI控制台中设置的仍然是设置的

看起来好像EB启动配置的一部分会在某个点擦除它们

是否有任何地方可以运行此逻辑以允许我设置变量?还是有别的办法


谢谢

我认为要通过
pm2 start
传递它们,您应该这样做,而不是
导出

MY_VAR1=value1 MY_VAR2=value2 pm2 start server.js

我认为要通过
pm2 start
传递它们,您应该这样做,而不是
导出

MY_VAR1=value1 MY_VAR2=value2 pm2 start server.js

当您建议时,我相当肯定这会起作用,但我似乎无法使用这种方法将环境变量传递到node或pm2。它将在本地为我工作,但当我在Elastic Beanstalk上运行它时,变量总是未定义的。我将询问AWS,看看这是否有原因。当您建议时,我相当肯定这会起作用,但我似乎无法使用这种方法将环境变量传递到node或pm2。它将在本地为我工作,但当我在Elastic Beanstalk上运行它时,变量总是未定义的。我要问美国焊接学会,看看这是否有原因。