package com.example.event; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.example.model.Customer; import com.example.model.OrderCreated; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sfn.SfnClient; import software.amazon.awssdk.services.sfn.model.StartExecutionRequest; import software.amazon.awssdk.services.sfn.model.StartExecutionResponse; import java.util.UUID; public class OrderEvent implements RequestHandler<OrderCreated, Customer> { private static final ObjectMapper MAPPER = new ObjectMapper(); @Override public Customer handleRequest(OrderCreated orderCreated, Context context) { Customer customer = MAPPER.convertValue(orderCreated.getCustomer(), Customer.class); //read StateMachineArn fron template.yml environment variables String stateMachineArn = System.getenv("StateMachineArn"); SfnClient sfnClient = SfnClient.builder() .region(Region.EU_CENTRAL_1) .build(); try { StartExecutionRequest executionRequest = StartExecutionRequest.builder() .input(MAPPER.writeValueAsString(customer)) .stateMachineArn(stateMachineArn) .name(UUID.randomUUID().toString()) .build(); StartExecutionResponse response = sfnClient.startExecution(executionRequest); String execution = response.executionArn(); System.out.println("[execution ]" + execution); } catch (JsonProcessingException e) { e.printStackTrace(); } return customer; } }