AWS Elastic Beanstalk を使う その3

Environmentのコンフィグ画面のContainerタブで、Environment Properties ってなんやねんっ!って思って調べました。結論から言いますとシステムプロパティを設定しているだけでした。

要は、DB接続先とかAWS接続先とか各種環境変数をBeanStalkのEnvironment Propertiesとして書いておけば、テスト用アプリ、本番用アプリ、テスト用DB、本番用DBなどの切り替えをソースの修正なしに画面のみで行える訳です。

実際にやってみましょう。これが設定した画面。文字列は適当。
勝手にDB接続してコネクションプールしてくれるとかは幻想でしたw。

んで、今度はBeanStalkに載せるアプリ側で値を取得してみましょう。
雛形アプリのソースを修正しました。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.util.*" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Hello AWS Web World!</title>
    <link rel="stylesheet" href="styles/styles.css" type="text/css" media="screen">
</head>
<body>
  <div id="content" class="container">
    <div class="section grid grid15 gridlast ec2">
      <h2>System Properties:</h2>
      <ul>
    <% Properties props = System.getProperties(); %>
    <li><%= "AWS_ACCESS_KEY_ID : " + props.getProperty("AWS_ACCESS_KEY_ID") %></li>
    <li><%= "AWS_SECRET_KEY : " + props.getProperty("AWS_SECRET_KEY") %></li>
    <li><%= "JDBC_CONNECTION_STRING : " + props.getProperty("JDBC_CONNECTION_STRING") %></li>
    <li><%= "PARAM1 : " + props.getProperty("PARAM1") %></li>
    <li><%= "PARAM2 : " + props.getProperty("PARAM2") %></li>
    <li><%= "PARAM3 : " + props.getProperty("PARAM3") %></li>
    <li><%= "PARAM4 : " + props.getProperty("PARAM4") %></li>
    <li><%= "PARAM5 : " + props.getProperty("PARAM5") %></li>
			</ul>
        </div>
    </div>

</body>
</html>

実行結果はこれ。確かに値が取れていますね。

どうやって値を取るかどこにも載っていなかったのですが、
勘でどうにかなりました。。。これドキュメント載せるべきかと。

ではではー。