Amazon has announced new integrations for AWS Step Functions with their compute, database, messaging, analytics, and machine learning services, allowing these to be leveraged as steps in the state machine workflows. AWS Step Functions provides a way to connect and coordinate activities, taking advantage of a highly scalable runtime, a visual representation of the workflow, and built-in retry, monitoring and logging mechanisms.
By leveraging a finite state machine approach, executing tasks and the ability to use sequential or parallel executions, decisions, and alternate states, these capabilities are implemented using states and tasks to perform a variety of functions and work. Step Functions uses a JSON based-definition to create these workflows, called Amazon States Language, and parses the template and visualizes this to help provide insights into the process. Using the Amazon State Language engineers can define a state machine by implementing a collection of states which execute some work, implement transitions between states, apply error handling, and so on. Consequently, AWS Step Functions gives the capabilities to set up a complete workflow, similarly to Logic Apps on Azure.
In addition to the previously available support for AWS Lambda integration, Amazon has now announced support to integrate several more of their services out of the box. Therefore, this allows the exchange of data and leveraging of logic without the need to write additional code. There are eight services in total for which these integration capabilities are now available, each implementing their tasks, as described in the announcement.
- DynamoDB - Get an existing item from an Amazon DynamoDB table; put a new item into a DynamoDB table.
- AWS Batch - Submit a AWS Batch job and wait for it to complete.
- Amazon ECS - Run an Amazon ECS or AWS Fargate task using a task definition.
- Amazon SNS - Publish a message to an Amazon Simple Notification Service (SNS) topic.
- Amazon SQS - Send a message to an Amazon Simple Queue Service (SQS) queue.
- AWS Glue - Start a AWS Glue job run.
- Amazon SageMaker - Create an Amazon SageMaker training job; create a SageMaker transform job (learn more by reading New Features for Amazon SageMaker: Workflows, Algorithms, and Accreditation).
There are many tutorials which help on getting started with AWS Step Functions, and along with the announcement of the new integrations, Amazon also made available several samples showing these new capabilities. Moreover, these samples are also available from the Step Functions console, which provisions all resources for these samples using AWS CloudFormation. These can then give guidance to get more familiar with the capabilities and serve as a foundation to further develop solutions.