1

RDSを使用してJava 8 Elastic Beanstalkインスタンスを作成した後、RDS接続の詳細は環境変数として表示されません(実行中の他のインスタンスで表示されます)。RDS環境変数はAWSのElastic Beanstalkインスタンスで使用できませんか?

printenvコマンドを実行した後、これらの値が使用可能であると予想されていましたが、そうではありません。

RDS_HOSTNAME = foo.com

RDS_USERNAME = fooの

RDS_PASS =バー

これらは、彼らがしているアプリケーションの焼成中にサーバ設定

database: 
    driverClass: com.mysql.jdbc.Driver 
    user: ${RDS_USERNAME} 
    password: ${RDS_PASSWORD} 
    url: jdbc:mysql://${RDS_HOSTNAME}/${RDS_DB_NAME} 

によって必要とされています使用できない場合、ログにはJava例外が表示されます。環境変数を見つけます。

io.dropwizard.configuration.UndefinedEnvironmentVariableException:環境変数 'RDS_USERNAME'が定義されていません。式 '$ {RDS_USERNAME}'を代用できませんでした。 org.apache.commons.lang3.text.StrSubstitutor.resolveVariableでio.dropwizard.configuration.EnvironmentVariableLookup.lookup(EnvironmentVariableLookup.java:41) (StrSubstitutor.java:934)org.apache.commons.lang3で で。 text.StrSubstitutor.substitute(StrSubstitutor.java:855) at org.apache.commons.lang3.text.StrSubstitutor.substitute(StrSubstitutor.java:743) at org.apache.commons.lang3.text.StrSubstitutor.replace( io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:83)io.dropwizard.cliで でio.dropwizard.configuration.SubstitutingSourceProvider.open(SubstitutingSourceProvider.java:39) でStrSubstitutor.java:403) 。 ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:124)io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:72)のio.dropwizard.cli.Cli.run(Cli.java:75)の at io.dropwizard.Application.run(Application.java:

{"CONFIG":"dev.yml","RDS_HOSTNAME":"foo.com","RDS_PASSWORD":"foo","M2":"/usr/local/apache-maven/bin","M2_HOME":"/usr/local/apache-maven","RDS_DB_NAME":"foo","JAVA_HOME":"/usr/lib/jvm/java","RDS_USERNAME":"foo","GRADLE_HOME":"/usr/local/gradle","RDS_PORT":"3306"} 

任意のアイデアのためにこれらの値を復元する方法:私は

sudo /opt/elasticbeanstalk/bin/get-config environment 

EC2インスタンス上で以下のコマンドを実行した場合93)

は、しかしそれは、JSONの値アウトを出力しますec2 -ユーザー?

私が試してみました

  • EBインスタンスを再起動する彼らはなぜ、eb deploy

任意のアイデア後にそれらを設定するスクリプトへ

  • cat値インスタンスを再構築この特定のインスタンスでは表示されませんか?

    インスタンスの詳細

    Environment details foo: foo-service 
        Application name: foo-service 
        Region: eu-west-2 
        Platform: arn:aws:elasticbeanstalk:eu-west-2::platform/Java 8 running on 64bit Amazon Linux/2.6.0 
        Tier: WebServer-Standard 
    
  • +0

    あなたは、/ etc /環境でそれらを初期化しようとすることはできますか?環境変数が存在することを確認する必要があるとき、私はそれを確認してそこに追加します。すべてのユーザーシェルはその変数をそのように設定します。 –

    答えて

    0

    あなたは、/ etc /環境でそれらを初期化しようとすることはできますか?環境変数が存在することを確認する必要があるとき、私はそれを確認してそこに追加します。すべてのユーザーシェルはその変数をそのように設定します。

    1

    私はEB環境のアップデートを実行し、インスタンスを置き換えます。環境のアップデートが完了したとき、またはあなたが"Storing the Connection String in Amazon S3"

    に移動することができ、DBインスタンスのホスト名 およびその他の接続情報は、次の環境プロパティを使用して、アプリケーション に用意されています

    RDS_HOSTNAME - のホスト名DBインスタンス。 Amazon RDSコンソールラベル - エンドポイント(これはホスト名)

    RDS_PORT - DBインスタンスが接続を受け入れるポート。デフォルト値はDBエンジンによって異なります。 Amazon RDSコンソールラベル - ポート

    RDS_DB_NAME - データベース名ebdb。 Amazon RDSコンソールラベル - DB名

    RDS_USERNAME - データベース用に設定したユーザー名。 Amazon RDSコンソールラベル - ユーザー名

    RDS_PASSWORD - データベース用に構成したパスワード。

    private static Connection getRemoteConnection() { 
        if (System.getenv("RDS_HOSTNAME") != null) { 
         try { 
         Class.forName("org.postgresql.Driver"); 
         String dbName = System.getenv("RDS_DB_NAME"); 
         String userName = System.getenv("RDS_USERNAME"); 
         String password = System.getenv("RDS_PASSWORD"); 
         String hostname = System.getenv("RDS_HOSTNAME"); 
         String port = System.getenv("RDS_PORT"); 
         String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; 
         logger.trace("Getting remote connection with connection string from environment variables."); 
         Connection con = DriverManager.getConnection(jdbcUrl); 
         logger.info("Remote connection successful."); 
         return con; 
        } 
        catch (ClassNotFoundException e) { logger.warn(e.toString());} 
        catch (SQLException e) { logger.warn(e.toString());} 
        } 
        return null; 
        } 
    

    https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-rds.html#java-rds-javase

    関連する問題