AWS Toolkit for Eclipseを設定した時のメモ

AWS Lambdaが使いたくてToolkit for Eclipseを0から設定した時のメモ

# 前提

+ Mac OSX 10.10.3

# 参考

[Lambda Function が Java で書けるようになりました！](http://dev.classmethod.jp/cloud/aws/lambda-function-in-java/)

# Eclipseのダウンロード

[eclipse](https://eclipse.org/downloads/)



上記サイトから自分のOSのEclipseをダウンロードします。
特にJavaEEなど使わない場合には **Eclipse IDE for Java Developers** を選択すれば良いと思います。

ダウンロードしたtar.gzを解凍して **eclipse** となっているものを起動すればOKです。

2015年6月16日現在では **Version: Luna Service Release 2 (4.4.2)** が最新バージョンでした。

# AWS Toolkit for Eclipseのインストール

[AWS Toolkit for Eclipse](https://aws.amazon.com/jp/eclipse/)

+ Help->Install new software
+ Add
+ Nameに「AWS Toolkit」、Locationに「http://aws.amazon.com/jp/eclipse 」

上記でインストールするものが一覧で確認できると思います。

ここで注意点が2つあります。

デフォルトだとAWS Toolkit for Eclipseの全てのもの(Lambda,SimpleDB,Andoridなどなど)がインストールされようとしますが、その中の **AWS SDK for Android** についてはEclipseでAndroidを開発する際に利用する **ADT(Android Development Tools** も必要なため、事前にADTをインストールしていないとエラーとなります。

 ```
 Cannot complete the install because one or more required items could not be found.
  Software being installed: AWS SDK for Android 1.0.0.v201212110105 (com.amazonaws.eclipse.android.sdk.feature.feature.group 1.0.0.v201212110105)
  Missing requirement: AWS SDK for Android 1.0.0.v201212110105 (com.amazonaws.eclipse.android.sdk.feature.feature.group 1.0.0.v201212110105) requires 'com.android.ide.eclipse.adt 18.0.0' but it could not be found 
 ```

ADTのインストール方法は検索すれば色々サイトが見つかると思いますので必要な方はそちらを参照ください。ただ、そもそもAndroid開発はAndroidStudioが主流となっているのでいつまでADTがサポートされるのかという点は疑問ですが。。。

また、上記と同じような理由で **AWS SDK for SimpleDB** でも **Database Development** というプラグインを事前にインストールしていないとエラーとなります。



```
Cannot complete the install because one or more required items could not be found.
Software currently installed: Amazon SimpleDB Management 1.0.0.v201506150549 (com.amazonaws.eclipse.datatools.enablement.simpledb.feature.feature.group 1.0.0.v201506150549)
Missing requirement: Eclipse Data Tools Platform Amazon SimpleDB UI Plug-in 1.0.0.v201506150549 (com.amazonaws.eclipse.datatools.enablement.simpledb.ui 1.0.0.v201506150549) requires 'bundle org.eclipse.datatools.sqltools.sqlscrapbook 1.0.0' but it could not be found
Cannot satisfy dependency:
From: Amazon SimpleDB Management 1.0.0.v201506150549 (com.amazonaws.eclipse.datatools.enablement.simpledb.feature.feature.group 1.0.0.v201506150549)
To: com.amazonaws.eclipse.datatools.enablement.simpledb.ui [1.0.0.v201506150549]
```

上記については以下に書いてあるようにプラグインを事前にインストールしておけばOKです。

[EclipseでAWS SDK for Javaがインストールできないときの対処法](http://dqn.sakusakutto.jp/2013/07/eclipse_aws_sdk_for_java.html)

+ Help->Install new software
+ Work withで **Luna - http://download.eclipse.org/releases/luna** を選択
+ Database Developmentをインストール

上記2点に注意してAWS Toolkit for Eclipseをインストールします。自分の場合、Androidの方は必要なかったのでインストール設定時にAWS SDK for Androidはインストールしないようにしました

問題なく、インストールができればEclipse再起動を促されるので実施します。起動後、AWSのアイコン(四角いやつ)が出ていればOKです。

![Screen Shot 2015-06-17 at 8.29.00 AM.png](https://qiita-image-store.s3.amazonaws.com/0/20193/44d005fc-48ea-b7be-1b21-b03114937a9f.png)


# Java8のインストール、設定

LambdaではJava8が使えるようなのですが、残念ながら自分の環境には
Java8がインストールされていなかったため、合わせてJava8のインストールをしました。

[Oracle-JavaSE8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

Oracleのサイトへ遷移し、自分の環境のファイルを取得します。
Macの場合、dmg形式のファイルをダウンロードし、インストーラーに従ってインストールすればOKです。

インストール後、ターミナルからインストールされた場所を確認します。

```
$/usr/libexec/java_home -V
Matching Java Virtual Machines (5):
    1.8.0_45, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
    1.7.0_71, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
(以下略)
```

Java8が **/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home** に存在することが確認できました。

次にEclipseの設定を行います。

+ Eclipse->Preference
+ Java->Installed JRES->Add
+ Standard VM
+ JRE homeに先ほどの設定(自分の場合、/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home)を設定
+ JRE Nameは **Java8** と指定

上記でJREの一つとしてJava8がEclipseに認識されました。
また、設定でデフォルトで利用するJavaをJava8にします。

![Screen Shot 2015-06-17 at 8.46.19 AM.png](https://qiita-image-store.s3.amazonaws.com/0/20193/a1276365-5a0b-8c58-048a-37cfba384c44.png)


上記の状態でEclipseからLambdaFunctionを作成すればJava8が利用できます。
![Screen Shot 2015-06-17 at 8.47.19 AM.png](https://qiita-image-store.s3.amazonaws.com/0/20193/70a60fef-c819-ef82-e911-487412b3b667.png)