2017-07-02 18 views
1

Elastic Beanstalk Go Platformを使用してアプリケーションをデプロイしています。AWS Elastic Beanstalk option_settings env変数with instance ip

インスタンスの現在のプライベートIPの環境変数を設定する必要があります。(私はそれがProcfile経由で実行されますと、私のアプリ自体に利用できるようにするために、この環境変数を必要とする。)

私はまだ運が、すべてのものを試してみた私の.ebextensions/options.configファイルで:

{ 
    "option_settings": [ 
    { 
     "namespace": "aws:elasticbeanstalk:application:environment", 
     "option_name": "PRIVATE_IP", 
     "value": { 
     "Fn::GetAtt": [ 
      "Ec2Instance", 
      "PrivateIp" 
     ] 
     } 
    } 
    ] 
} 

この例セット文字通りFn::GetAtt...json文字列全体にはPRIVATE_IPが含まれています。関数はoption_settingsで解釈されませんか?これについて別の方法がありますか?

答えて

1

このソリューションを.ebextensionsに実装する方法を正確にはわかりませんが、AWSには特別なURL http://169.254.169.254/latest/meta-data/があり、この情報を要求するために使用できます。詳細hereを確認してください。 IPアドレスはhttp://169.254.169.254/latest/meta-data/public-ipv4です。このURLはhttpの起点を確認し、インスタンスの情報で応答します。

私はカールリクエストを作成してデータを取得するようにYAMLを設定できると思います。しかし、実行時にインスタンスのURLを利用できるため、展開時にこの情報を保存する必要はありません。このリクエストはコード内で直接行うことができます。

+0

プライベートIPも利用できます。そのためには、リソース名としてlocal-ipv4を使用します。 –

+0

グスタボ、ありがとう。私はそのエンドポイントを認識していますが、カールはyamlで実際に実行されませんでした。いくつかの具体的な理由のために、私は、アプリケーションが最初に実行される前に、env変数でipを利用する必要があります。 – seanomlor

+0

そのリソース情報は、Beanstalkのebextensionsでは利用できません。 IPアドレスでenv変数を作成するには、メタデータから取得し、container_commandを発行してローカルにインストールされたaws cliを使用して変数を更新する必要があります。 –

関連する問題