List of usage examples for com.amazonaws.services.lambda AWSLambdaClientBuilder defaultClient
public static AWSLambda defaultClient()
From source file:example.lambda.InvokeLambdaFunction.java
License:Apache License
public static void main(String[] args) { String function_name = "HelloFunction"; String function_input = "{\"who\":\"AWS SDK for Java\"}"; AWSLambda lambda = AWSLambdaClientBuilder.defaultClient(); InvokeRequest req = new InvokeRequest().withFunctionName(function_name) .withPayload(ByteBuffer.wrap(function_input.getBytes())); InvokeResult res = lambda.invoke(req); if (res.getStatusCode() == 200) { System.out.println("Lambda function returned:"); ByteBuffer response_payload = res.getPayload(); System.out.println(new String(response_payload.array())); } else {/* w ww. j a v a2s. c o m*/ System.out.format("Received a non-OK response from AWS: %d\n", res.getStatusCode()); } }
From source file:example.swf.hellolambda.WorkflowWorker.java
License:Apache License
/** * The goal of this workflow is to execute at least one HelloFunction * successfully.//from w ww .j a v a2 s . co m * * We pass the workflow execution's input to the activity, and we use the * activity's result as the output of the workflow. */ private static void executeDecisionTask(String taskToken, List<HistoryEvent> events) throws Throwable { List<Decision> decisions = new ArrayList<Decision>(); String workflow_input = null; int scheduled_functions = 0; int running_functions = 0; boolean function_completed = false; String result = null; System.out.println("Executing the decision task for the history events: ["); for (HistoryEvent event : events) { System.out.println(" " + event); EventType event_type = EventType.fromValue(event.getEventType()); switch (event_type) { case WorkflowExecutionStarted: workflow_input = event.getWorkflowExecutionStartedEventAttributes().getInput(); break; case LambdaFunctionScheduled: scheduled_functions++; break; case ScheduleLambdaFunctionFailed: scheduled_functions--; break; case LambdaFunctionStarted: scheduled_functions--; running_functions++; break; case LambdaFunctionCompleted: running_functions--; function_completed = true; result = event.getLambdaFunctionCompletedEventAttributes().getResult(); break; case LambdaFunctionFailed: running_functions--; break; case LambdaFunctionTimedOut: running_functions--; break; } } System.out.println("]"); if (function_completed) { decisions.add(new Decision().withDecisionType(DecisionType.CompleteWorkflowExecution) .withCompleteWorkflowExecutionDecisionAttributes( new CompleteWorkflowExecutionDecisionAttributes().withResult(result))); } else { if (running_functions == 0 && scheduled_functions == 0) { AWSLambda lam = AWSLambdaClientBuilder.defaultClient(); GetFunctionConfigurationResult function_config = lam.getFunctionConfiguration( new GetFunctionConfigurationRequest().withFunctionName("HelloFunction")); String function_arn = function_config.getFunctionArn(); ScheduleLambdaFunctionDecisionAttributes attrs = new ScheduleLambdaFunctionDecisionAttributes() .withId("HelloFunction (Lambda task example)").withName(function_arn) .withInput(workflow_input); decisions.add(new Decision().withDecisionType(DecisionType.ScheduleLambdaFunction) .withScheduleLambdaFunctionDecisionAttributes(attrs)); } else { // an instance of HelloFunction is already scheduled or running. // Do nothing, another task will be scheduled once the activity // completes, fails or times out } } System.out.println("Exiting the decision task with the decisions " + decisions); swf.respondDecisionTaskCompleted( new RespondDecisionTaskCompletedRequest().withTaskToken(taskToken).withDecisions(decisions)); }