我想將變數從我的 AWS Elastic Beanstalk 環境傳遞到 Linux 和 Windows Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
簡短描述
您可以透過以下方法將環境變數傳遞至 Amazon EC2 執行個體:
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確認您使用的是最新版本的 AWS CLI。
解決方案
重要事項: 若要將機密資訊 (例如資料庫密碼) 傳遞至執行個體,請依照在 Amazon S3 中安全儲存私有金鑰的指示進行操作。
傳遞您的環境變數
選擇下列其中一種方式來傳遞您的環境變數。
使用 Elastic Beanstalk 主控台
若要使用主控台傳遞環境變數,請依照設定環境屬性的指示進行操作。
重要事項: 請務必考慮環境屬性限制。
使用 EB CLI
若要在 EB CLI 中設定環境變數,請執行下列命令:
eb setenv key=value
在下列範例中,將環境變數 ExampleVar 設定為:
$ eb setenv ExampleVar=ExampleValue
2018-07-11 21:05:25 INFO: Environment update is starting.
2018-07-11 21:05:29 INFO: Updating environment tmp-dev's configuration settings.
2018-07-11 21:06:50 INFO: Successfully deployed new configuration to environment.
2018-07-11 21:06:51 INFO: Environment update completed successfully.
若要設定多個環境屬性,請使用下列命令:
$ eb setenv foo=bar JDBC_CONNECTION_STRING=hello PARAM4= PARAM5=
**使用選項設定 **
您可以使用 Elastic Beanstalk 組態檔案來設定來源程式碼中的環境屬性和組態選項。
若要定義環境屬性,請使用 aws:elasticbeanstalk:application:environment 命名空間。
請參閱以下 .ebextensions/options.config 範例:
option_settings:
aws:elasticbeanstalk:application:environment:
API_ENDPOINT: www.example.com/api
若要在 AWS CLI 中設定環境屬性,請執行下列命令:
$ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://options.json
例如:
[
{
"Namespace": "aws:elasticbeanstalk:application:environment",
"OptionName": "API_ENDPOINT",
"Value": "www.example.com/api"
},
{
"Namespace": "aws:elasticbeanstalk:application:environment",
"OptionName": "URL",
"Value": "http://myurl.com"
}
]
存取您的環境變數
注意: 即使執行個體中存在環境屬性,環境屬性不會自動匯出至 Shell。相反地,環境屬性透過應用程式執行的堆疊,根據您正在使用的平台提供給應用程式。
若要存取環境變數,請參閱存取環境屬性。
若要存取應用程式程式碼以外的環境變數 (例如,部署期間執行的指令碼中的環境變數),請使用 get.config platform script 或 Fn::GetOptionSetting。
對於 Windows 執行個體,環境屬性會從 C:\ProgramFiles\Amazon\ElasticBeanstalk\config\containerconfiguration 傳遞至 Microsoft Internet Information Services (IIS) 伺服器。警告: 此檔案位置受 Elastic Beanstalk 架構約束,可以在沒有警告的情況下進行變更。