Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save brevityinmotion/20511737533a2bdd15648bba46e9e05c to your computer and use it in GitHub Desktop.
Save brevityinmotion/20511737533a2bdd15648bba46e9e05c to your computer and use it in GitHub Desktop.
This Lambda will retrieve parameters from an API gateway request and then initiate a Step Functions workflow
import json, boto3, os
def lambda_handler(event, context):
if event['queryStringParameters']['program'] is None:
return {"isBase64Encoded":False,"statusCode":400,"body":json.dumps({"error":"Missing program name."})}
if event['queryStringParameters']['operation'] is None:
return {"isBase64Encoded":False,"statusCode":400,"body":json.dumps({"error":"Missing operation name."})}
programName = str(event['queryStringParameters']['program'])
operationName = str(event['queryStringParameters']['operation'])
stateInput = f'''
{{
"program": "{programName}",
"operation": "{operationName}"
}}
'''
my_state_machine_arn = 'arn:aws:states:us-east-1:00000000000:stateMachine:customname'
client = boto3.client('stepfunctions')
response = client.start_execution(
stateMachineArn=my_state_machine_arn,
input=stateInput
)
responseData = {
'Program Status': 'Success'
}
return {
'statusCode': 200,
'body': json.dumps(responseData)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment