Integrating services with Step Functions
Learn how to call third-party APIs and integrate other Amazon Web Services services with Amazon Step Functions.
Call other Amazon services
With Amazon service integrations, you can call API actions and coordinate executions directly from your workflow. You can use Step Functions' Amazon SDK integrations to call any of the over two hundred Amazon services directly from your state machine, giving you access to over nine thousand API actions. Or you can use Step Functions' Optimized integrations, each of which has been customized to provide special functionality for your workflow. Some API actions are available in both types of integration. When possible, we recommend using the Optimized integration.
You coordinate these services directly from a Task
state in the Amazon States Language. For
example, using Step Functions, you can call other services to:
-
Invoke an Amazon Lambda function.
-
Run an Amazon Batch job and then perform different actions based on the results.
-
Insert or get an item from Amazon DynamoDB.
-
Run an Amazon Elastic Container Service (Amazon ECS) task and wait for it to complete.
-
Publish to a topic in Amazon Simple Notification Service (Amazon SNS).
-
Send a message in Amazon Simple Queue Service (Amazon SQS).
-
Manage a job for Amazon Glue or Amazon SageMaker.
-
Build workflows for executing Amazon EMR jobs.
-
Launch an Amazon Step Functions workflow execution.
Amazon SDK integrations
Amazon SDK integrations work exactly like a standard API call using the Amazon SDK. They provide the ability to call over nine thousand APIs across the more than two hundred Amazon services directly from your state machine definition.
Optimized integrations
Optimized integrations have been customized by Step Functions to provide special functionality for a workflow context. For example, Lambda Invoke converts its API output from an escaped JSON to a JSON object. Amazon BatchSubmitJob lets you pause execution until the job is complete.
For the full list of optimized integrations, see Integrating optimized services with Step Functions
Cross-account access
Step Functions provides cross-account access to resources configured in different Amazon Web Services accounts in your workflows. Using Step Functions service integrations, you can invoke any cross-account Amazon resource even if that Amazon Web Services service does not support resource-based policies or cross-account calls.
For more information, see Accessing resources in other Amazon Web Services accounts in Step Functions.
Integration pattern support
Standard Workflows and Express Workflows support the same integrations but not the same integration patterns.
-
Standard Workflows support Request Response integrations. Certain services support Run a Job (.sync), or Wait for Callback (.waitForTaskToken) , and both in some cases. See the following optimized integrations table for details.
-
Express Workflows only support Request Response integrations.
To help decide between the two types, see Choosing workflow type in Step Functions.
Amazon SDK integrations in Step Functions
Integrated service | Request Response | Run a Job - .sync | Wait for Callback - .waitForTaskToken |
---|---|---|---|
Over two hundred services | Standard & Express | Not supported | Standard |
Optimized integrations in Step Functions
Integrated service | Request Response | Run a Job - .sync | Wait for Callback - .waitForTaskToken |
---|---|---|---|
Amazon API Gateway | Standard & Express | Not supported | Standard |
Amazon Athena | Standard & Express | Standard | Not supported |
Amazon Batch | Standard & Express | Standard | Not supported |
Amazon Bedrock | Standard & Express | Standard | Standard |
Amazon CodeBuild | Standard & Express | Standard | Not supported |
Amazon DynamoDB | Standard & Express | Not supported | Not supported |
Amazon ECS/Fargate | Standard & Express | Standard | Standard |
Amazon EKS | Standard & Express | Standard | Standard |
Amazon EMR | Standard & Express | Standard | Not supported |
Amazon EMR on EKS | Standard & Express | Standard | Not supported |
Amazon EMR Serverless | Standard & Express | Standard | Not supported |
Amazon EventBridge | Standard & Express | Not supported | Standard |
Amazon Glue | Standard & Express | Standard | Not supported |
Amazon Glue DataBrew | Standard & Express | Standard | Not supported |
Amazon Lambda | Standard & Express | Not supported | Standard |
AWS Elemental MediaConvert | Standard & Express | Standard | Not supported |
Amazon SageMaker | Standard & Express | Standard | Not supported |
Amazon SNS | Standard & Express | Not supported | Standard |
Amazon SQS | Standard & Express | Not supported | Standard |
Amazon Step Functions | Standard & Express | Standard | Standard |