Automate Cloud Formation stack with API / Lambda
Budget: $30 – $250 USD
I have a cloud formation template that creates a stack for live streaming. This job is to enhance the template / workflow to enable automation via API / Lambda And add information to DynamoDB.
API
Authentication will be checked against Cognito.
API will have 3 endpoints. StartStream, StopStream and Status.
• StartStream (userID, event_description)
1. Generate Stream ID and write to DynamoDB (StreamID, Description, StartTime)
2. Launch Cloud formation template passing necessary variables
Media Live (Single Pipeline)
Media Package
Media Store (Needs to be added to CF template)
Media Tailor
Cloud Front
3. Launch completed - resources / values will be written to DynamoDB
• StopStream (userID)
1. Query DynamoDB and get Cloud Formation ID
2. Delete Cloud formation
3. Remove resources / values from DynamoDB record. Add stop time.
• Status (StreamID)
1. Query DynamoDB for record.
IF start time is set but no variables from CF template then return “stream starting” status.
IF start time is set and variables from CF template are set and no end time, return Ready and Media Live host url.
IF start time and end time are set, return “steam ended”
IF record does not exist, return “not found”
API
Authentication will be checked against Cognito.
API will have 3 endpoints. StartStream, StopStream and Status.
• StartStream (userID, event_description)
1. Generate Stream ID and write to DynamoDB (StreamID, Description, StartTime)
2. Launch Cloud formation template passing necessary variables
Media Live (Single Pipeline)
Media Package
Media Store (Needs to be added to CF template)
Media Tailor
Cloud Front
3. Launch completed - resources / values will be written to DynamoDB
• StopStream (userID)
1. Query DynamoDB and get Cloud Formation ID
2. Delete Cloud formation
3. Remove resources / values from DynamoDB record. Add stop time.
• Status (StreamID)
1. Query DynamoDB for record.
IF start time is set but no variables from CF template then return “stream starting” status.
IF start time is set and variables from CF template are set and no end time, return Ready and Media Live host url.
IF start time and end time are set, return “steam ended”
IF record does not exist, return “not found”