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"
}
]
環境変数にアクセスする
注: 環境プロパティは、インスタンスに存在していても、シェルに自動的にエクスポートされません。その代わりに、環境プロパティは、使用されているプラットフォームに基づいて、アプリケーションが実行されているスタックを通じてアプリケーションに提供されます。
環境変数にアクセスするには、「環境プロパティへのアクセス」を参照してください。
アプリケーションコード以外の環境変数にアクセスするには (例えば、デプロイ中に実行するスクリプトに存在するもの)、get.config プラットフォームスクリプトまたは Fn::GetOptionSetting を使用します。
Windows インスタンスでは、環境プロパティは、C:\ProgramFiles\Amazon\ElasticBeanstalk\config\containerconfiguration から Microsoft Internet Information Services (IIS) サーバーに渡されます。警告: このファイルの場所は Elastic Beanstalk フレームワークの影響を受けるため、警告なしに変更できます。