Java源码示例:com.amazonaws.services.stepfunctions.AWSStepFunctionsClientBuilder

示例1
@Override
public AWSStepFunctions awsStepFunctions() {
    return decorateWithConfigsAndBuild(
      AWSStepFunctionsClientBuilder.standard(),
      LocalstackDocker::getEndpointStepFunction
    );
}
 
示例2
@Override
public AWSStepFunctions awsStepFunctions() {
    return decorateWithConfigsAndBuild(
      AWSStepFunctionsClientBuilder.standard(),
      LocalstackDocker::getEndpointStepFunction
    );
}
 
示例3
@Override
public Parameters handleRequest(S3Event event, Context context) {

    context.getLogger()
            .log("Input Function [" + context.getFunctionName() + "], S3Event [" + event.toJson().toString() + "]");

    Parameters parameters = new Parameters(
            event.getRecords().get(0).getS3().getBucket().getName(), 
            event.getRecords().get(0).getS3().getObject().getKey(),
            UUID.randomUUID());

    AWSStepFunctions client = AWSStepFunctionsClientBuilder.defaultClient();
    ObjectMapper jsonMapper = new ObjectMapper();
    
    StartExecutionRequest request = new StartExecutionRequest();
    request.setStateMachineArn(System.getenv("STEP_MACHINE_ARN"));
    request.setName(parameters.getStepFunctionID().toString());
    try {
        request.setInput(jsonMapper.writeValueAsString(parameters));
    } catch (JsonProcessingException e) {
        throw new AmazonServiceException("Error in ["+context.getFunctionName()+"]", e);
    }

    context.getLogger()
            .log("Step Function [" + request.getStateMachineArn() + "] will be called with [" + request.getInput() + "]");

    StartExecutionResult result = client.startExecution(request);

    context.getLogger()
            .log("Output Function [" + context.getFunctionName() + "], Result [" + result.toString() + "]");

    return parameters;
}
 
示例4
public static void main(String[] args) throws Exception {
    /*
     * The ProfileCredentialsProvider will return your [default]
     * credential profile by reading from the credentials file located at
     * (~/.aws/credentials).
     *
     * It is possible to use another profile with:
     *  credentialsProvider = new ProfileCredentialsProvider("your-profile")
     */

    ProfileCredentialsProvider credentialsProvider =
            new ProfileCredentialsProvider();
    try {
        credentialsProvider.getCredentials();
    } catch (Exception e) {
        throw new AmazonClientException(
            "Cannot load the credentials from the credential profiles " +
            "file. Please make sure that your credentials file is " +
            "at the correct location (~/.aws/credentials), and is " +
            "in valid format.",
            e);
    }

    Regions region = Regions.US_EAST_1;
    AWSStepFunctions sfnClient = AWSStepFunctionsClientBuilder.standard()
            .withCredentials(credentialsProvider)
            .withRegion(region)
            .build();

    System.out.println("===========================================");
    System.out.println("Getting Started with Amazon Step Functions");
    System.out.println("===========================================\n");

    try {
        System.out.println("Listing state machines");
        ListStateMachinesResult listStateMachinesResult = sfnClient.
                listStateMachines(new ListStateMachinesRequest());

        List<StateMachineListItem> stateMachines = listStateMachinesResult
                .getStateMachines();

        System.out.println("State machines count: " + stateMachines.size());
        if (!stateMachines.isEmpty()) {
            stateMachines.forEach(sm -> {
                System.out.println("\t- Name: " + sm.getName());
                System.out.println("\t- Arn: " + sm.getStateMachineArn());

                ListExecutionsRequest listRequest = new
                        ListExecutionsRequest().withStateMachineArn(sm
                        .getStateMachineArn());
                ListExecutionsResult listExecutionsResult = sfnClient
                        .listExecutions(listRequest);
                List<ExecutionListItem> executions = listExecutionsResult
                        .getExecutions();

                System.out.println("\t- Total: " + executions.size());
                executions.forEach(ex -> {
                    System.out.println("\t\t-Start: " + ex.getStartDate());
                    System.out.println("\t\t-Stop: " + ex.getStopDate());
                    System.out.println("\t\t-Name: " + ex.getName());
                    System.out.println("\t\t-Status: " + ex.getStatus());
                    System.out.println();
                });
            });
        }

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means" +
                " your request made it to Amazon Step Functions, but was" +
                " rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means " +
                "the client encountered a serious internal problem while " +
                "trying to communicate with Step Functions, such as not " +
                "being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}