如何在 Bash 脚本中检查 Elastic Beanstalk 环境变量

How to check Elastic Beanstalk environment variable in Bash script

我正在尝试从 bash 脚本(在 .platform/hooks/postdeploy/.

中访问 Elastic Beanstalk 环境变量

脚本是这样的:

if [[ -v "${WORKER_ENV}" ]]; then
    echo -e "Happy times - worker env\n"
    # Do stuff I want to do
else
    echo -e "No worker env variable"
fi

我有同一个应用程序的 2 个实例。在1中,我在Configuration > Environment properties中指定了WORKER_ENV。另一个我没有。

当我在两个环境中部署应用程序时,日志文件显示“没有工作环境变量”。如何让脚本从 Configuration > Environment properties?

中获取环境变量

对于遇到此问题的任何其他人,我的解决方法如下:

WORKER = 0
SUBSTRING="WORKER_ENV"
while read line; do  
    if [[ "$line" == *"$SUBSTRING"* ]]; then
        WORKER=1
        echo "Found WORKER_ENV"
    fi
done < /opt/elasticbeanstalk/deployment/custom_env_var

if [[ $WORKER == 1 ]]; then
    echo -e "Happy times - worker env\n"

在另一个脚本中,我已经将 env 文件复制到 custom_env_var,因为之前在 cron 作业中部署应用程序后,我无法访问 env 文件。这现在工作正常