in statemachine/src/main/java/com/amazonaws/stepfunctions/cloudformation/statemachine/CreateHandler.java [23:68]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
logger.log("INFO StateMachine CreateHandler with clientRequestToken: " + request.getClientRequestToken());
final ResourceModel model = request.getDesiredResourceState();
MetricsRecorder metricsRecorder = new MetricsRecorder(HandlerOperationType.CREATE);
metricsRecorder.setMetricsFromResourceModel(model);
try {
AWSStepFunctions sfnClient = ClientBuilder.getClient();
List<Tag> tags = TaggingHelper.consolidateTags(request);
processStateMachineName(request, model);
validateDefinitionCount(model);
processDefinition(proxy, model, metricsRecorder);
CreateStateMachineRequest createStateMachineRequest = buildCreateStateMachineRequestFromModel(model, tags);
CreateStateMachineResult createStateMachineResult = proxy.injectCredentialsAndInvoke(createStateMachineRequest, sfnClient::createStateMachine);
updateModelFromResult(model, createStateMachineResult);
// The model's name is only required if the handler operation is successful.
model.setName(model.getStateMachineName());
ProgressEvent<ResourceModel, CallbackContext> progressEvent = ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
metricsRecorder.setOperationSuccessful(true);
return progressEvent;
} catch (Exception e) {
logger.log("ERROR Creating StateMachine, caused by " + e.toString());
return handleDefaultError(request, e, metricsRecorder);
} finally {
logger.log(metricsRecorder.generateMetricsString());
}
}