環境プロパティとその他のソフトウェアの設定 - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

環境プロパティとその他のソフトウェアの設定

更新、モニタリング、ログ記録の設定の設定ページでは、アプリケーションを実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでソフトウェアを設定できます。環境プロパティ、 AWS X-Ray デバッグ、インスタンスログの保存とストリーミング、プラットフォーム固有の設定。

プラットフォーム固有の設定を構成する

すべての環境で利用できる標準のオプションセットに加え、ほとんどの Elastic Beanstalk プラットフォームでは、言語固有またはフレームワーク固有の指定を行うことができます。これらは、[更新、モニタリング、およびロギングの設定] ページの [プラットフォームソフトウェア] セクションに表示され、次の形式を取ることができます。

  • プリセットの環境プロパティ – Ruby プラットフォームでは、RACK_ENV および BUNDLE_WITHOUT のようなフレームワーク設定の環境プロパティを使用します。

  • プレースホルダーの環境プロパティ – Tomcat プラットフォームでは、どのような値にも設定されない JDBC_CONNECTION_STRING という名前の環境プロパティを定義します。この設定タイプは、旧式のプラットフォームバージョンで一般的でした。

  • 設定オプション – ほとんどのプラットフォームでは、aws:elasticbeanstalk:xrayaws:elasticbeanstalk:container:python などのプラットフォーム固有または共有の名前空間で設定オプションを定義します。

Elastic Beanstalk コンソールでプラットフォーム固有の設定を指定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します。 AWS リージョン.

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。

  5. [プラットフォームソフトウェア] で、必要なオプション設定を変更します。

  6. ページの最下部で [適用] を選択し変更を保存します。

プラットフォーム固有のオプションと、コードで環境プロパティ値を取得する方法の詳細については、該当する言語やフレームワークのプラットフォームトピックを参照してください。

環境プロパティ (環境変数) の設定

[環境プロパティ] (環境変数とも呼ばれる) を使用して、シークレット、エンドポイント、デバッグ設定、その他の情報をアプリケーションに渡すことができます。環境プロパティは、開発、テスト、ステージング、本稼働などのさまざまな目的で、複数の環境のアプリケーションを実行するのに役立ちます。

さらに、データベースを環境に追加すると、Elastic Beanstalk は、アプリケーションコードで読み込むことができる RDS_HOSTNAME などの環境プロパティを設定して、接続オブジェクトまたは文字列を作成します。

環境変数

ほとんどの場合、環境プロパティは、環境変数としてアプリケーションに渡されますが、その動作はプラットフォームによって異なります。たとえば、Java SE プラットフォームでは、System.getenv を使用して取得する環境変数を設定するのに対し、Tomcat プラットフォームでは、System.getProperty を使用して取得する Java システムプロパティを設定します。一般的に、インスタンスに接続して env を実行する場合、プロパティは表示されません

Elastic Beanstalk コンソールで環境プロパティを設定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します。 AWS リージョン.

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。

  5. [環境プロパティ] まで下にスクロールします。

  6. [環境プロパティの追加] を選択します。

  7. プロパティの [名前] と [値] のペアを入力します。

  8. さらに変数を追加する必要がある場合は、ステップ 6 および ステップ 7 を繰り返します。

  9. ページの最下部で [適用] を選択し変更を保存します。

環境プロパティの制限
  • キーには、英数字および記号 _ . : / + \ - @ を含めることができます。

    上記の記号は、環境プロパティーキーには使用できますが、環境のプラットフォームの環境変数名には使用できない場合があります。すべてのプラットフォームとの互換性を考慮して、環境プロパティには次のパターン ([A-Z_][A-Z0-9_]*) のみ使用してください。

  • には、英数字、空白、および記号 _ . : / = + \ - @ ' " を含めることができます。

    注記

    環境プロパティ値の一部の文字で囲う値はエスケープする必要があります。バックスラッシュ文字 (\) を使用して、いくつかの特殊文字と制御文字を表します。次のリストには、エスケープする必要があるいくつかの文字を表す例が含まれています。

    • バックスラッシュ (\) — \\ の使用を表す

    • 一重引用符 (') — \' の使用を表す

    • 二重引用符 (") — \" の使用を表す

  • キーは大文字と小文字が区別されます。

  • 形式の文字列として保存する場合、すべての環境プロパティの合計サイズが 4,096 バイトを超えることはできません key=value.

ソフトウェア設定の名前空間

設定ファイルを使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクをパフォーマンスできます。設定オプションはプラットフォーム固有でも、Elastic Beanstalk サービス全体のすべてのプラットフォームに適用することもできます。設定オプションは名前空間 に編成されます

Elastic Beanstalk 設定ファイルを使用して、ソースコードで環境プロパティと設定オプションを設定できます。aws:elasticbeanstalk:application:environment名前空間を使用して、環境プロパティを定義します。

例 .ebextensions/options.config
option_settings: aws:elasticbeanstalk:application:environment: API_ENDPOINT: www.example.com/api

設定ファイルまたは AWS CloudFormation カスタムリソースを作成するための テンプレート。 を使用できます。 AWS CloudFormation 関数は、リソースに関する情報を取得し、デプロイ中に環境プロパティに動的に割り当てます。elastic-beanstalk-samples GitHub リポジトリの次の例では、Ref 関数を使用して、作成した Amazon SNSトピックARNの を取得し、 という名前の環境プロパティに割り当てますNOTIFICATION_TOPIC

メモ
  • を使用する場合 AWS CloudFormation Elastic Beanstalk コンソールには、 関数が評価される前に プロパティの値が表示されます。get-config プラットフォームスクリプトを使用して、アプリケーションで使用できる環境プロパティの値を確認できます。

  • マルチコンテナの Docker プラットフォームは を使用しません AWS CloudFormation コンテナリソースを作成するための 。そのため、このプラットフォームでは、 を使用した環境プロパティの定義はサポートされていません。 AWS CloudFormation 関数。

例 .Ebextensions/sns-topic.config
Resources: NotificationTopic: Type: AWS::SNS::Topic option_settings: aws:elasticbeanstalk:application:environment: NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'

この機能を使用して、 から情報を伝達することもできます。 AWS CloudFormation 擬似パラメータ 。この例では、現在のリージョンを取得して、AWS_REGION という名前のプロパティに割り当てています。

例 .Ebextensions/env-regionname.config
option_settings: aws:elasticbeanstalk:application:environment: AWS_REGION: '`{"Ref" : "AWS::Region"}`'

ほとんどの Elastic Beanstalk プラットフォームでは、アプリケーションにリクエストを中継するリバースプロキシなど、インスタンス上で実行されるソフトウェア設定するオプションを指定して、その他の名前空間を定義します。プラットフォームで利用できる名前空間に関する詳細については、以下のいずれかのセクションを参照してください。

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB 、CLIまたは を使用して設定オプションを設定することもできます。 AWS CLI。 詳細については、設定オプション「」を参照してください。

環境プロパティへのアクセス

ほとんどの場合、アクセスするアプリケーションコードの環境プロパティは、環境変数に似ています。ただし、環境プロパティは、通常アプリケーションにのみ渡されるため、環境内のインスタンスに接続し、env を実行して表示することはできません。

  • Goos.Getenv

    endpoint := os.Getenv("API_ENDPOINT")
  • Java SESystem.getenv

    String endpoint = System.getenv("API_ENDPOINT");
  • TomcatSystem.getProperty

    String endpoint = System.getProperty("API_ENDPOINT");
  • 。NET Linux の CoreEnvironment.GetEnvironmentVariable

    string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  • .NETappConfig

    NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
  • Node.jsprocess.env

    var endpoint = process.env.API_ENDPOINT
  • PHP$_SERVER

    $endpoint = $_SERVER['API_ENDPOINT'];
  • Pythonos.environ

    import os endpoint = os.environ['API_ENDPOINT']
  • RubyENV

    endpoint = ENV['API_ENDPOINT']

デプロイ時に実行するスクリプトなど、アプリケーションコードを使用せずに環境プロパティにアクセスするには、get-configプラットフォームスクリプトを使用します。を使用する設定例については、 elastic-beanstalk-samples GitHub リポジトリを参照してくださいget-config