Ejemplos de Step Functions que se utilizan SDK para Java 2.x - AWS SDKEjemplos de código

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de Step Functions que se utilizan SDK para Java 2.x

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes mediante el uso de AWS SDK for Java 2.x with Step Functions.

Los conceptos básicos son ejemplos de código que muestran cómo realizar las operaciones esenciales dentro de un servicio.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

Los escenarios son ejemplos de código que muestran cómo llevar a cabo una tarea específica a través de llamadas a varias funciones dentro del servicio o combinado con otros Servicios de AWS.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Introducción

En los siguientes ejemplos de código se muestra cómo empezar a utilizar Step Functions.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

Versión Java de Introducción.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sfn.SfnClient; import software.amazon.awssdk.services.sfn.model.ListStateMachinesResponse; import software.amazon.awssdk.services.sfn.model.SfnException; import software.amazon.awssdk.services.sfn.model.StateMachineListItem; import java.util.List; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class ListStateMachines { public static void main(String[] args) { Region region = Region.US_EAST_1; SfnClient sfnClient = SfnClient.builder() .region(region) .build(); listMachines(sfnClient); sfnClient.close(); } public static void listMachines(SfnClient sfnClient) { try { ListStateMachinesResponse response = sfnClient.listStateMachines(); List<StateMachineListItem> machines = response.stateMachines(); for (StateMachineListItem machine : machines) { System.out.println("The name of the state machine is: " + machine.name()); System.out.println("The ARN value is : " + machine.stateMachineArn()); } } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • Para API obtener más información, consulte ListStateMachinesla AWS SDK for Java 2.x APIReferencia.

Conceptos básicos

En el siguiente ejemplo de código, se muestra cómo:

  • Crear una actividad

  • Crear una máquina de estado a partir de una definición de Amazon States Language que contenga la actividad creada anteriormente como un paso

  • Ejecutar la máquina de estados y responder a la actividad con entradas de usuario

  • Obtener el resultado y el estado final una vez completada la ejecución y, luego, limpiar los recursos.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

/** * You can obtain the JSON file to create a state machine in the following * GitHub location. * * https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/sample_files * * To run this code example, place the chat_sfn_state_machine.json file into * your project's resources folder. * * Also, set up your development environment, including your credentials. * * For information, see this documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html * * This Java code example performs the following tasks: * * 1. Creates an activity. * 2. Creates a state machine. * 3. Describes the state machine. * 4. Starts execution of the state machine and interacts with it. * 5. Describes the execution. * 6. Delete the activity. * 7. Deletes the state machine. */ public class StepFunctionsScenario { public static final String DASHES = new String(new char[80]).replace("\0", "-"); public static void main(String[] args) throws Exception { final String usage = """ Usage: <roleARN> <activityName> <stateMachineName> Where: roleName - The name of the IAM role to create for this state machine. activityName - The name of an activity to create. stateMachineName - The name of the state machine to create. """; if (args.length != 3) { System.out.println(usage); System.exit(1); } String roleName = args[0]; String activityName = args[1]; String stateMachineName = args[2]; String polJSON = "{\n" + " \"Version\": \"2012-10-17\",\n" + " \"Statement\": [\n" + " {\n" + " \"Sid\": \"\",\n" + " \"Effect\": \"Allow\",\n" + " \"Principal\": {\n" + " \"Service\": \"states.amazonaws.com\"\n" + " },\n" + " \"Action\": \"sts:AssumeRole\"\n" + " }\n" + " ]\n" + "}"; Scanner sc = new Scanner(System.in); boolean action = false; Region region = Region.US_EAST_1; SfnClient sfnClient = SfnClient.builder() .region(region) .build(); Region regionGl = Region.AWS_GLOBAL; IamClient iam = IamClient.builder() .region(regionGl) .build(); System.out.println(DASHES); System.out.println("Welcome to the AWS Step Functions example scenario."); System.out.println(DASHES); System.out.println(DASHES); System.out.println("1. Create an activity."); String activityArn = createActivity(sfnClient, activityName); System.out.println("The ARN of the activity is " + activityArn); System.out.println(DASHES); // Get JSON to use for the state machine and place the activityArn value into // it. InputStream input = StepFunctionsScenario.class.getClassLoader() .getResourceAsStream("chat_sfn_state_machine.json"); ObjectMapper mapper = new ObjectMapper(); JsonNode jsonNode = mapper.readValue(input, JsonNode.class); String jsonString = mapper.writeValueAsString(jsonNode); // Modify the Resource node. ObjectMapper objectMapper = new ObjectMapper(); JsonNode root = objectMapper.readTree(jsonString); ((ObjectNode) root.path("States").path("GetInput")).put("Resource", activityArn); // Convert the modified Java object back to a JSON string. String stateDefinition = objectMapper.writeValueAsString(root); System.out.println(stateDefinition); System.out.println(DASHES); System.out.println("2. Create a state machine."); String roleARN = createIAMRole(iam, roleName, polJSON); String stateMachineArn = createMachine(sfnClient, roleARN, stateMachineName, stateDefinition); System.out.println("The ARN of the state machine is " + stateMachineArn); System.out.println(DASHES); System.out.println(DASHES); System.out.println("3. Describe the state machine."); describeStateMachine(sfnClient, stateMachineArn); System.out.println("What should ChatSFN call you?"); String userName = sc.nextLine(); System.out.println("Hello " + userName); System.out.println(DASHES); System.out.println(DASHES); // The JSON to pass to the StartExecution call. String executionJson = "{ \"name\" : \"" + userName + "\" }"; System.out.println(executionJson); System.out.println("4. Start execution of the state machine and interact with it."); String runArn = startWorkflow(sfnClient, stateMachineArn, executionJson); System.out.println("The ARN of the state machine execution is " + runArn); List<String> myList; while (!action) { myList = getActivityTask(sfnClient, activityArn); System.out.println("ChatSFN: " + myList.get(1)); System.out.println(userName + " please specify a value."); String myAction = sc.nextLine(); if (myAction.compareTo("done") == 0) action = true; System.out.println("You have selected " + myAction); String taskJson = "{ \"action\" : \"" + myAction + "\" }"; System.out.println(taskJson); sendTaskSuccess(sfnClient, myList.get(0), taskJson); } System.out.println(DASHES); System.out.println(DASHES); System.out.println("5. Describe the execution."); describeExe(sfnClient, runArn); System.out.println(DASHES); System.out.println(DASHES); System.out.println("6. Delete the activity."); deleteActivity(sfnClient, activityArn); System.out.println(DASHES); System.out.println(DASHES); System.out.println("7. Delete the state machines."); deleteMachine(sfnClient, stateMachineArn); System.out.println(DASHES); System.out.println(DASHES); System.out.println("The AWS Step Functions example scenario is complete."); System.out.println(DASHES); } public static String createIAMRole(IamClient iam, String rolename, String polJSON) { try { CreateRoleRequest request = CreateRoleRequest.builder() .roleName(rolename) .assumeRolePolicyDocument(polJSON) .description("Created using the AWS SDK for Java") .build(); CreateRoleResponse response = iam.createRole(request); return response.role().arn(); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } public static void describeExe(SfnClient sfnClient, String executionArn) { try { DescribeExecutionRequest executionRequest = DescribeExecutionRequest.builder() .executionArn(executionArn) .build(); String status = ""; boolean hasSucceeded = false; while (!hasSucceeded) { DescribeExecutionResponse response = sfnClient.describeExecution(executionRequest); status = response.statusAsString(); if (status.compareTo("RUNNING") == 0) { System.out.println("The state machine is still running, let's wait for it to finish."); Thread.sleep(2000); } else if (status.compareTo("SUCCEEDED") == 0) { System.out.println("The Step Function workflow has succeeded"); hasSucceeded = true; } else { System.out.println("The Status is neither running or succeeded"); } } System.out.println("The Status is " + status); } catch (SfnException | InterruptedException e) { System.err.println(e.getMessage()); System.exit(1); } } public static void sendTaskSuccess(SfnClient sfnClient, String token, String json) { try { SendTaskSuccessRequest successRequest = SendTaskSuccessRequest.builder() .taskToken(token) .output(json) .build(); sfnClient.sendTaskSuccess(successRequest); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static List<String> getActivityTask(SfnClient sfnClient, String actArn) { List<String> myList = new ArrayList<>(); GetActivityTaskRequest getActivityTaskRequest = GetActivityTaskRequest.builder() .activityArn(actArn) .build(); GetActivityTaskResponse response = sfnClient.getActivityTask(getActivityTaskRequest); myList.add(response.taskToken()); myList.add(response.input()); return myList; } public static void deleteActivity(SfnClient sfnClient, String actArn) { try { DeleteActivityRequest activityRequest = DeleteActivityRequest.builder() .activityArn(actArn) .build(); sfnClient.deleteActivity(activityRequest); System.out.println("You have deleted " + actArn); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } public static void describeStateMachine(SfnClient sfnClient, String stateMachineArn) { try { DescribeStateMachineRequest stateMachineRequest = DescribeStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); DescribeStateMachineResponse response = sfnClient.describeStateMachine(stateMachineRequest); System.out.println("The name of the State machine is " + response.name()); System.out.println("The status of the State machine is " + response.status()); System.out.println("The ARN value of the State machine is " + response.stateMachineArn()); System.out.println("The role ARN value is " + response.roleArn()); } catch (SfnException e) { System.err.println(e.getMessage()); } } public static void deleteMachine(SfnClient sfnClient, String stateMachineArn) { try { DeleteStateMachineRequest deleteStateMachineRequest = DeleteStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); sfnClient.deleteStateMachine(deleteStateMachineRequest); DescribeStateMachineRequest describeStateMachine = DescribeStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); while (true) { DescribeStateMachineResponse response = sfnClient.describeStateMachine(describeStateMachine); System.out.println("The state machine is not deleted yet. The status is " + response.status()); Thread.sleep(3000); } } catch (SfnException | InterruptedException e) { System.err.println(e.getMessage()); } System.out.println(stateMachineArn + " was successfully deleted."); } public static String startWorkflow(SfnClient sfnClient, String stateMachineArn, String jsonEx) { UUID uuid = UUID.randomUUID(); String uuidValue = uuid.toString(); try { StartExecutionRequest executionRequest = StartExecutionRequest.builder() .input(jsonEx) .stateMachineArn(stateMachineArn) .name(uuidValue) .build(); StartExecutionResponse response = sfnClient.startExecution(executionRequest); return response.executionArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } public static String createMachine(SfnClient sfnClient, String roleARN, String stateMachineName, String json) { try { CreateStateMachineRequest machineRequest = CreateStateMachineRequest.builder() .definition(json) .name(stateMachineName) .roleArn(roleARN) .type(StateMachineType.STANDARD) .build(); CreateStateMachineResponse response = sfnClient.createStateMachine(machineRequest); return response.stateMachineArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } public static String createActivity(SfnClient sfnClient, String activityName) { try { CreateActivityRequest activityRequest = CreateActivityRequest.builder() .name(activityName) .build(); CreateActivityResponse response = sfnClient.createActivity(activityRequest); return response.activityArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }

Acciones

En el siguiente ejemplo de código se muestra cómo usar CreateActivity.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static String createActivity(SfnClient sfnClient, String activityName) { try { CreateActivityRequest activityRequest = CreateActivityRequest.builder() .name(activityName) .build(); CreateActivityResponse response = sfnClient.createActivity(activityRequest); return response.activityArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  • Para API obtener más información, consulte CreateActivityla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar CreateStateMachine.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static String createMachine(SfnClient sfnClient, String roleARN, String stateMachineName, String json) { try { CreateStateMachineRequest machineRequest = CreateStateMachineRequest.builder() .definition(json) .name(stateMachineName) .roleArn(roleARN) .type(StateMachineType.STANDARD) .build(); CreateStateMachineResponse response = sfnClient.createStateMachine(machineRequest); return response.stateMachineArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  • Para API obtener más información, consulte CreateStateMachinela AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar DeleteActivity.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void deleteActivity(SfnClient sfnClient, String actArn) { try { DeleteActivityRequest activityRequest = DeleteActivityRequest.builder() .activityArn(actArn) .build(); sfnClient.deleteActivity(activityRequest); System.out.println("You have deleted " + actArn); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Para API obtener más información, consulte DeleteActivityla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar DeleteStateMachine.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void deleteMachine(SfnClient sfnClient, String stateMachineArn) { try { DeleteStateMachineRequest deleteStateMachineRequest = DeleteStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); sfnClient.deleteStateMachine(deleteStateMachineRequest); DescribeStateMachineRequest describeStateMachine = DescribeStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); while (true) { DescribeStateMachineResponse response = sfnClient.describeStateMachine(describeStateMachine); System.out.println("The state machine is not deleted yet. The status is " + response.status()); Thread.sleep(3000); } } catch (SfnException | InterruptedException e) { System.err.println(e.getMessage()); } System.out.println(stateMachineArn + " was successfully deleted."); }
  • Para API obtener más información, consulte DeleteStateMachinela AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar DescribeExecution.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void describeExe(SfnClient sfnClient, String executionArn) { try { DescribeExecutionRequest executionRequest = DescribeExecutionRequest.builder() .executionArn(executionArn) .build(); String status = ""; boolean hasSucceeded = false; while (!hasSucceeded) { DescribeExecutionResponse response = sfnClient.describeExecution(executionRequest); status = response.statusAsString(); if (status.compareTo("RUNNING") == 0) { System.out.println("The state machine is still running, let's wait for it to finish."); Thread.sleep(2000); } else if (status.compareTo("SUCCEEDED") == 0) { System.out.println("The Step Function workflow has succeeded"); hasSucceeded = true; } else { System.out.println("The Status is neither running or succeeded"); } } System.out.println("The Status is " + status); } catch (SfnException | InterruptedException e) { System.err.println(e.getMessage()); System.exit(1); } }
  • Para API obtener más información, consulte DescribeExecutionla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar DescribeStateMachine.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void describeStateMachine(SfnClient sfnClient, String stateMachineArn) { try { DescribeStateMachineRequest stateMachineRequest = DescribeStateMachineRequest.builder() .stateMachineArn(stateMachineArn) .build(); DescribeStateMachineResponse response = sfnClient.describeStateMachine(stateMachineRequest); System.out.println("The name of the State machine is " + response.name()); System.out.println("The status of the State machine is " + response.status()); System.out.println("The ARN value of the State machine is " + response.stateMachineArn()); System.out.println("The role ARN value is " + response.roleArn()); } catch (SfnException e) { System.err.println(e.getMessage()); } }
  • Para API obtener más información, consulte DescribeStateMachinela AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar GetActivityTask.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static List<String> getActivityTask(SfnClient sfnClient, String actArn) { List<String> myList = new ArrayList<>(); GetActivityTaskRequest getActivityTaskRequest = GetActivityTaskRequest.builder() .activityArn(actArn) .build(); GetActivityTaskResponse response = sfnClient.getActivityTask(getActivityTaskRequest); myList.add(response.taskToken()); myList.add(response.input()); return myList; } /// <summary> /// Stop execution of a Step Functions workflow. /// </summary> /// <param name="executionArn">The Amazon Resource Name (ARN) of /// the Step Functions execution to stop.</param> /// <returns>A Boolean value indicating the success of the action.</returns> public async Task<bool> StopExecution(string executionArn) { var response = await _amazonStepFunctions.StopExecutionAsync(new StopExecutionRequest { ExecutionArn = executionArn }); return response.HttpStatusCode == System.Net.HttpStatusCode.OK; }
  • Para API obtener más información, consulte GetActivityTaskla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar ListActivities.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sfn.SfnClient; import software.amazon.awssdk.services.sfn.model.ListActivitiesRequest; import software.amazon.awssdk.services.sfn.model.ListActivitiesResponse; import software.amazon.awssdk.services.sfn.model.SfnException; import software.amazon.awssdk.services.sfn.model.ActivityListItem; import java.util.List; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class ListActivities { public static void main(String[] args) { Region region = Region.US_EAST_1; SfnClient sfnClient = SfnClient.builder() .region(region) .build(); listAllActivites(sfnClient); sfnClient.close(); } public static void listAllActivites(SfnClient sfnClient) { try { ListActivitiesRequest activitiesRequest = ListActivitiesRequest.builder() .maxResults(10) .build(); ListActivitiesResponse response = sfnClient.listActivities(activitiesRequest); List<ActivityListItem> items = response.activities(); for (ActivityListItem item : items) { System.out.println("The activity ARN is " + item.activityArn()); System.out.println("The activity name is " + item.name()); } } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • Para API obtener más información, consulte ListActivitiesla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar ListExecutions.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void getExeHistory(SfnClient sfnClient, String exeARN) { try { GetExecutionHistoryRequest historyRequest = GetExecutionHistoryRequest.builder() .executionArn(exeARN) .maxResults(10) .build(); GetExecutionHistoryResponse historyResponse = sfnClient.getExecutionHistory(historyRequest); List<HistoryEvent> events = historyResponse.events(); for (HistoryEvent event : events) { System.out.println("The event type is " + event.type().toString()); } } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Para API obtener más información, consulte ListExecutionsla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar ListStateMachines.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sfn.SfnClient; import software.amazon.awssdk.services.sfn.model.ListStateMachinesResponse; import software.amazon.awssdk.services.sfn.model.SfnException; import software.amazon.awssdk.services.sfn.model.StateMachineListItem; import java.util.List; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class ListStateMachines { public static void main(String[] args) { Region region = Region.US_EAST_1; SfnClient sfnClient = SfnClient.builder() .region(region) .build(); listMachines(sfnClient); sfnClient.close(); } public static void listMachines(SfnClient sfnClient) { try { ListStateMachinesResponse response = sfnClient.listStateMachines(); List<StateMachineListItem> machines = response.stateMachines(); for (StateMachineListItem machine : machines) { System.out.println("The name of the state machine is: " + machine.name()); System.out.println("The ARN value is : " + machine.stateMachineArn()); } } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • Para API obtener más información, consulte ListStateMachinesla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar SendTaskSuccess.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static void sendTaskSuccess(SfnClient sfnClient, String token, String json) { try { SendTaskSuccessRequest successRequest = SendTaskSuccessRequest.builder() .taskToken(token) .output(json) .build(); sfnClient.sendTaskSuccess(successRequest); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Para API obtener más información, consulte SendTaskSuccessla AWS SDK for Java 2.x APIReferencia.

En el siguiente ejemplo de código se muestra cómo usar StartExecution.

SDKpara Java 2.x
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

public static String startWorkflow(SfnClient sfnClient, String stateMachineArn, String jsonEx) { UUID uuid = UUID.randomUUID(); String uuidValue = uuid.toString(); try { StartExecutionRequest executionRequest = StartExecutionRequest.builder() .input(jsonEx) .stateMachineArn(stateMachineArn) .name(uuidValue) .build(); StartExecutionResponse response = sfnClient.startExecution(executionRequest); return response.executionArn(); } catch (SfnException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
  • Para API obtener más información, consulte StartExecutionla AWS SDK for Java 2.x APIReferencia.

Escenarios

El siguiente ejemplo de código muestra cómo crear una máquina de AWS Step Functions estados que invoque AWS Lambda funciones en secuencia.

SDKpara Java 2.x

Muestra cómo crear un flujo de trabajo AWS sin servidor mediante AWS Step Functions y el. AWS SDK for Java 2.x Cada paso del flujo de trabajo se implementa mediante una AWS Lambda función.

Para obtener el código fuente completo y las instrucciones sobre cómo configurarlo y ejecutarlo, consulte el ejemplo completo en GitHub.

Servicios utilizados en este ejemplo
  • DynamoDB

  • Lambda

  • Amazon SES

  • Step Functions