我為 AWS Elastic Beanstalk 環境設定環境屬性。當我在 Elastic Beanstalk 環境中登入 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,然後執行命令列出 Shell 中的環境變數時,我看不到這些屬性。
簡短描述
即使執行個體中存在環境屬性,環境屬性不會自動匯出至 Shell (執行 PHP 的堆疊中除外)。相反地,環境屬性透過應用程式執行的堆疊,根據您正在使用的平台提供給應用程式。若要檢視和設定環境屬性,您可以使用 Elastic Beanstalk 主控台或 Elastic Beanstalk Command Line Interface (EB CLI) 中的 eb setenv 命令。
解決方法區段會顯示如何在數個平台中設定環境屬性的來源。如需其他平台特定選項的資訊,請參閱環境屬性和其他軟體設定。如需如何在程式碼之外存取環境屬性的詳細資訊,請參閱平台指令碼工具。
解決方法
**重要:**下列解決方法僅適用於 Amazon Linux Amazon Machine Images (AMI)。對於 Amazon Linux 2 執行個體,請參閱如何使用 Elastic Beanstalk 執行個體 Shell 中的環境變數?
Python
環境屬性會寫入 /opt/python/current/env 檔案,該檔案來源於應用程式執行的 virtualenv 堆疊中。如需詳細資訊,請參閱使用 Elastic Beanstalk Python 平台。
若要設定來源,請登入執行個體,然後執行下列命令:
~$ source /opt/python/current/env
Ruby
環境屬性首先寫入包含所有堆疊組態資訊的 JSON 檔案 (/opt/elasticbeanstalk/deploy/configuration/containerconfiguration)。如果在 /opt/elasticbeanstalk/hooks/configdeploy/pre/10_setup_envvars.sh 上的預先部署勾點被觸發,則 opt/elasticbeanstalk/support/envvars 檔案將填入所有環境屬性。然後,opt/elasticbeanstalk/support/envvars 檔案由堆疊來源獲取,使環境變數可供應用程式使用。如需詳細資訊,請參閱使用 Elastic Beanstalk Ruby 平台。
若要設定來源,請登入執行個體,然後執行下列命令:
source /opt/elasticbeanstalk/support/envvars
Java
您在啟動時設定的環境屬性不會成為 Shell 環境變數。如需詳細資訊,請參閱設定 Java SE 環境。
Windows
環境屬性會從 C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration 傳遞至 Microsoft Internet Information Services (IIS) 伺服器。