How to Start an AWS Step Function Workflow From Lambda | STEP BY STEP GUIDE

Be A Better Dev
16 Dec 201909:13

Summary

TLDRThis AWS tutorial demonstrates how to initiate a Step Function from a Lambda function. The video guides viewers through creating a Step Function instance and a Lambda function in Python, setting the necessary permissions, and writing code to interact with Step Functions. It showcases the process of defining a unique transaction ID using the UUID library, crafting a JSON input, and invoking the Step Function's start execution API. The tutorial concludes with testing the Lambda function and verifying successful Step Function instances.

Takeaways

  • ๐Ÿ˜€ The video demonstrates how to start a Step Function instance from a Lambda function in AWS.
  • ๐Ÿ”— The presenter has already created a Step Function instance and predefined some AWS Step Language (ASL) code for a simple task involving an SQS queue.
  • ๐Ÿ“ The ASL code takes an input and communicates with the SQS 'SendMessage' API, posting a JSON object with a transaction ID and type derived from the Step Function input.
  • ๐Ÿ†” The Step Function input includes a unique transaction ID and a type, both of which are strings.
  • ๐Ÿ‘‰ The presenter copies the Amazon Resource Name (ARN) of the Step Function for use in the Lambda function creation process.
  • ๐Ÿค– The Lambda function named 'step function invoker' is created in Python 3.6 or 3.7, with permissions set to access the Step Function.
  • ๐Ÿ”‘ It's important to use the least privilege model for permissions, but the presenter uses full access for simplicity in this tutorial.
  • ๐Ÿ’พ The Lambda function's code uses the 'boto3' library to interact with AWS services, specifically the Step Functions client.
  • ๐Ÿ”„ A unique transaction ID is generated using the 'UUID' library to ensure the Step Function instance has a unique key.
  • ๐Ÿ“‘ The input for the Step Function is defined as a JSON object, with the transaction ID and type hardcoded as 'purchase' in the example.
  • ๐Ÿš€ The 'start_execution' API of the Step Functions client is called with the state machine ARN, a unique name (transaction ID), and the JSON payload as parameters.

Q & A

  • What is the main topic of the video?

    -The main topic of the video is demonstrating how to start a Step Function instance from a Lambda function in AWS.

  • What is ASL in the context of the video?

    -ASL in this context refers to Amazon States Language, which is used to define the state machine for Step Functions in AWS.

  • What is the purpose of the SQS SendMessage API in the Step Function?

    -The SQS SendMessage API is used in the Step Function to post a JSON object containing a transaction ID and type to an SQS queue.

  • What are the inputs required for the Step Function in the script?

    -The Step Function requires an input containing a transaction ID and a type, both of which are strings.

  • What is the ARN used for in the Lambda function?

    -The ARN (Amazon Resource Name) is used to reference the Step Function that the Lambda function will interact with.

  • Why is it important to use the least privilege model when creating an IAM role for the Lambda function?

    -Using the least privilege model ensures that the Lambda function has only the permissions it needs to perform its tasks, enhancing security by minimizing potential access to sensitive resources.

  • What is the role of the UUID library in the Lambda function code?

    -The UUID library is used to generate a unique transaction ID for each Step Function instance, ensuring that each instance has a unique identifier.

  • How does the Lambda function interact with the Step Functions client?

    -The Lambda function uses the boto3 library to create an instance of the Step Functions client and then calls the start_execution API to start a Step Function instance.

  • What is the significance of the 'name' field in the start_execution API call?

    -The 'name' field serves as the unique identifier for the Step Function instance, allowing AWS to distinguish between different instances.

  • How does the Lambda function handle the input for the Step Function?

    -The Lambda function constructs a JSON object with the required transaction ID and type, converts it to a string using the JSON library, and passes it as the input to the start_execution API call.

  • How can you verify that the Lambda function has successfully started the Step Function instances?

    -You can verify the success by checking the logs in the Lambda function and by looking at the Step Functions console to see the instances and their progress.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This
โ˜…
โ˜…
โ˜…
โ˜…
โ˜…

5.0 / 5 (0 votes)

Related Tags
AWSLambdaStep FunctionsEvent OrchestrationCloud ComputingPythonAPI IntegrationSQSUnique IdentifiersCode Tutorial