AWSを利用してから開発環境を毎度ノートPCに構築しないで、JAVA、C#、Python等言語ごとにEC2インスタンスを作って、開発環境を構築。
使い終わったら、AMI取ってsnapshotで保存し、インスタンスを削除するようにすれば、低維持費で環境を維持できます。
でPythonの環境を作ったが、今度はJAVAの開発環境を作ります。
##環境
- Windows Server 2012 (EC2利用)
- Eclipse 4.7 Oxygen(IDE、 Pleiades All in Oneを利用)
- AWS Toolkit for Eclipse(プラグイン、デバッグ・デプロイ等AWSのJAVA開発を楽にするツール)
##Pleiades All in Oneインストール
まずダウンロードは以下のリンクから
http://mergedoc.osdn.jp/index.html#/pleiades_distros4.7.html
JDKも必要なのため、Windows 64bit のFull EditionをDownload
ダウンロード後、インストールします。インストーラーの形式ではないので、.zipを右クリックして、「すべて展開」をクリックし、適切の場所に展開すればよいだけです。
eclipseフォルダに移動し、eclipse.exeをダブルクリックして起動します。workspaceディレクトリが聞かれますので、デフォルトの場所で作ります。
##AWS Toolkit for Eclipseインストール
Eclipseを開き、[Help] -> [Install New Software] をクリックします。[Work with] ボックスで、[https://aws.amazon.com/eclipse] と入力し、Enter キーを押します。
AWS Toolkit for Eclipse Coreだけ必須なので、とりあえずインストールします。
また、今回Lambdaへのデプロイもしたいので、AWS Lambda Pluginもインストール。
インストール完了後、Eclipseが再起動されます。
メニューにAWSのアイコンが新規追加され、AWS Java プロジェクトが作成できます。
##AWS Lambda Java プロジェクトの作成
新規AWS Lambda Java プロジェクトをクリックしますと、ポップアップが表示されます。
sample-lambda-javaというプロジェクト名を入れると、作成が可能です。
入力タイプにLambdaを呼び出すトリガーのサービスがリストアップされますが、ここでCustomを選択します。
##AWS Lambda Java プロジェクトの構成
プロジェクトを開き、構成として、左上がパッケージ・クラス・JREライブラリ等プログラム資材がリストアップされます。
AWSのアイコンのメニューから[AWS エクスプロラー・ビューの表示]をクリックすると、左下のようになAWS 各関連するサービス一覧が表示されます。展開すると、中で作成されているものも見れます。
また、右側に[com.amazonaws.smaples]パッケージ内にあるS3Sample.javaを開いたプログラムとなります。
##AWS Lambda Java プロジェクト実行
これでコーディングが開始できます。いつくWrapperクラスを作って、ローカル動かしたいと思いますが、
Elipseの実行構成で、AWS SAM Local sample-lambda-javaと実行構成を新規作成しました。
SAM Template、Eventファイルを一通り用意しましたが、「Property SAM runtime does not contain a valid file!」エラーが表示され、無理やり実行したらエラーが表示されました。
Serverless template fileは以下の感じで作っています。
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
samplelambdajava:
Type: 'AWS::Serverless::Function'
Properties:
Handler: com.amazonaws.lambda.demo.LambdaFunctionHandler
Runtime: java8
Description: ''
MemorySize: 512
Timeout: 15
Role: 'arn:aws:iam::xxxxxxxxxxxx:role/lambda_access_execution'
SAM Localの環境が必要ということですね。
を参考に、SAM Local環境構築に取り組んだら、Dockerの起動でくじけました。
EC2(仮想環境)にさらに仮想環境(Windows: Docker Toolbox)を起動すると、エラーになります。
BIOSはいじれないので、断念しました。
##AWS Lambda Java プロジェクトアップロード
ローカルで動かせないなら、アップロードして、Console上で実行すればよいですね。
Upload function to AWS Lambdaをクリックし、アップロードします。
マネジメントコンソールでテストイベントを作って、「Test」クリック
無事成功しました。