package lambda; import java.util.HashMap; import java.util.Map; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.model.AttributeValue; import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate; import com.amazonaws.services.dynamodbv2.model.PutItemRequest; import com.amazonaws.services.dynamodbv2.model.PutItemResult; import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest; import com.amazonaws.services.dynamodbv2.model.UpdateItemResult; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; /** * * @author markusklems * */ public class LambdaApprovalFunctionHandler implements RequestHandler<Object, Object> { private static AmazonDynamoDBClient dynamoDB; @Override public Object handleRequest(Object input, Context context) { context.getLogger().log("input: " + input); if (input.toString().equals("{}") || input.toString().equals("")) { context.getLogger().log("input is empty: abort"); return "{\"status\":\"error\",\"message\":\"input at lambda function is empty\"}"; } dynamoDB = new AmazonDynamoDBClient().withRegion(Region .getRegion(Regions.EU_WEST_1)); HashMap<String, String> mapInput = (HashMap<String, String>) input; Map<String, AttributeValue> employeeKey = new HashMap<String, AttributeValue>(); String employeeId = mapInput.get("employee_id"); context.getLogger().log("employee_id: " + employeeId); employeeKey.put("employee_id", new AttributeValue().withS(employeeId)); Map<String, AttributeValueUpdate> attributeUpdates = new HashMap<String, AttributeValueUpdate>(); attributeUpdates.put("approval", new AttributeValueUpdate() .withValue(new AttributeValue().withS("approved"))); UpdateItemRequest updateItemRequest = new UpdateItemRequest() .withKey(employeeKey).withAttributeUpdates(attributeUpdates) .withTableName("lambda-reimbursment"); UpdateItemResult updateItemResult = dynamoDB .updateItem(updateItemRequest); context.getLogger().log("Result: " + updateItemResult); return "{'status':'done'}"; } }