AWSのlambdaでJavaを使う

ちょっとハマったのでメモ。JavaはMavenでコンパイルします。

Test.java


package com.example;

import java.util.Iterator;
import java.util.Map;

import com.amazonaws.services.lambda.runtime.Context;

public class Test {
	
	//http://stackoverflow.com/questions/35545642/error-executing-hello-world-for-aws-lambda-in-java
    public String handler(Map input, Context context){
    	String ret="";
    	Iterator ite=input.keySet().iterator();
    	while(ite.hasNext()){
    		String key=ite.next();
    		String val=input.get(key).toString();
    		ret+="("+key+","+val+"),";
    	}
    	return ret;
    }
}

pom.xml



  4.0.0

  com.example
  test
  0.0.1-SNAPSHOT
  jar

  Test
  http://example.com

  
    UTF-8
  

  
    
      junit
      junit
      3.8.1
      test
    
    
    
	    com.amazonaws
	    aws-lambda-java-core
	    1.0.0
	
  
  
  
    
    
      
        org.apache.maven.plugins
        maven-shade-plugin
        2.3
        
          false
        
        
          
            package
            
              shade
            
          
        
      
    
  


コンパイル

mvn package

Lambdaへアップロード

  • zipファイルをアップロード
  • Configulationを設定
  • RuntimeJava 8
    Handlercom.example.Test::handler

     これで動きます。テストの際に与えるパラメタの値が表示されます