[misc] Querying Amazon Elastic Beanstalk Settings with the AWS SDK

Amazon Elastic Beanstalkを使うと、Webアプリケーションを管理された環境にデプロイするタスクが簡単になります。

AWS Elastic Beanstalk
http://aws.amazon.com/elasticbeanstalk/

Amazonが提供するJava SDKを使うと、Beanstalk環境の作成、更新が容易です。
AWS SDK for Java
http://aws.amazon.com/sdkforjava/

setEnvironmentNamesetApplicationNameのような、最も頻繁に使用される構成設定のためのアクセサメソッドがありますが、その他の多くの構成設定はあまり明確ではありません。SDKでは、ほとんどのBeanstalkの環境情報のために、汎用的なConfigurationOptionSettingクラスを使います。このクラスは名前空間やオプション名、オプション値をラップしています。名前空間およびオプション名の組み合わせの多くを様々なAPIリファレンスで見つけることができますが、もっと簡単な方法があります。それは、環境自身に問い合わせる、というものです。

添付したBeanstalkConfigQueryクラスを使うと、環境の現在の構成オプション設定に関する情報を全てリスト出力することができます。私のオートスケールグループと私の(未設定ですが)AWSアクセスキーの最小サイズを示す出力の数行を例示します。読みやすくするために行間を空けています。
{Namespace: aws:autoscaling:asg, OptionName: MinSize, Value: 1, }
{Namespace: aws:elasticbeanstalk:application:environment,
        OptionName: AWS_ACCESS_KEY_ID, Value: , }
この情報を使えば、UpdateEnvironmentRequestオブジェクトを作成して、稼働環境を更新することが簡単にできます。
ConfigurationOptionSetting minCOS = new ConfigurationOptionSetting(
            "aws:autoscaling:asg", "MinSize", "3");
ConfigurationOptionSetting awsKeyCOS = new ConfigurationOptionSetting(
            "aws:elasticbeanstalk:application:environment",
            "AWS_ACCESS_KEY_ID", "my_aws_key_text");
UpdateEnvironmentRequest updateRequest = new UpdateEnvironmentRequest()
            .withEnvironmentName("my_env")
            .withOptionSettings(minCOS, awsKeyCOS);
beanstalkClient.updateEnvironment(updateRequest);
BeanstalkConfigQueryクラスは、あらゆる構成オプションの説明を表示することもできます。つまり、設定したオプションの各々について詳細情報を表示することができるということです。詳細はクラスファイル中のコメントをご覧いただくとして、ソースファイル中に2件の説明例があります。私のBeanstalk環境に対して実行したところ、約50件ほど表示されます。

原文はこちら。
http://blogs.oracle.com/bobby/entry/querying_amazon_elastic_beanstalk_settings

0 件のコメント:

コメントを投稿