Media Services Application Mapper
Media Services Application Mapper

Solution Components

Solution Microservices

The Media Services Application Mapper microservices are a set of AWS Lambda functions that provide the business logic and data access layer for all solution operations. Existing applications can interact with solution data securely through the RESTful APIs to perform activities such as preloading channel tile definitions or adding custom content to the cache.

Each Lambda function assumes an AWS Identity and Access Management (IAM) role with least-privilege access to perform its designated functions. The following sections outline each microservice.

Core API Microservice

The core API Lambda function handles all browser requests and displays information from the solution’s Amazon DynamoDB tables in the browser application. The core API Lambda function also handles all administrative services including layout management and general settings.

Connection Discovery Microservice

An Amazon CloudWatch event invokes the connection discovery Lambda function every two minutes. The function looks for connections between your media services, and stores any connections it could determine in the content DynamoDB table. When a user accesses the browser application, the core API Lambda function retrieves the connection information from the content table and displays it in the browser. Resources that do not have connections are grouped by service and displayed in the browser. For example, Amazon Simple Storage Service (Amazon S3) buckets that do not have connections will be displayed together in the browser.

Inventory Discovery Microservice

An Amazon CloudWatch event invokes the inventory discovery Lambda function every two minutes. The function looks for your media services resources, and stores information about the resources in the content DynamoDB table. When a user accesses the browser application, the core API Lambda function retrieves the resource information from the content table and displays the resources and their connections in the browser.

Alarm State Microservice

An Amazon CloudWatch event invokes the alarm state Lambda function every minute. The function looks for resources that have generated an alarm and adds the information to the alarms DynamoDB table. When a user accesses the browser application, the core API Lambda function retrieves the alarm information from the alarms table and displays it in the browser.

Event Handler Microservice

Amazon CloudWatch Rules receives an event when there is a change in your media services or their status and routes the event to the event handler Lambda function. The function adds the change to the events DynamoDB table. When a user accesses the browser application, the core API Lambda function retrieves the updated information from the events table.

Amazon DynamoDB

The Media Services Application Mapper provisions six Amazon DynamoDB tables during initial deployment: alarms, channels, content, events, layout, and settings.

The alarms table stores alarms states. The channels table stores AWS Elemental MediaLive channel definitions. The content table stores cached content. The events table stores information on changes in your media services or their status. The layout table stores diagram layout information for the browser application. The settings table stores general settings information for the browser application.

Read and Write Capacity

By default, the solution sets the Amazon DynamoDB throughput capacity to 10 read capacity units and 10 write capacity units. For customers with more than 50 OTT channels, we recommend increasing the DynamoDB throughput capacity. For more information, see Throughput Capacity for Reads and Writes.

DynamoDB Auto Scaling

The solution supports DynamoDB Auto Scaling. With auto scaling, you define a range (upper and lower limits) for read and write capacity units. If you choose to use auto scaling with this solution, we recommend setting minimum provisioned capacity to 5 units and maximum provisioned capacity to 250 units with a target utilization of 25%. We recommend setting your target utilization percentage low enough to ensure that scaling occurs before your usage reaches a critical level. For more information, see Managing Throughput Capacity Automatically with DynamoDB Auto Scaling.

Browser Application

This solution features a browser application that visualizes the relationship between your media services and the status of your resources and pipelines. The application visualizes your resources and connections as a workflow diagram.


        Media Services Application Mapper browser app workflow diagram

Figure 2: Example workflow diagram

The application includes two default layout configurations: vertical (top to bottom) and horizontal (left to right). You can also select and move individual items or groups of items to new locations to create your own custom layout. When you move items, the layout is saved in DynamoDB so all users will see the same diagrams at the same endpoint.

Channel Tiles

The application also features a tile view. Tiles aggregate resources into a single item that represents a single streaming video channel. You can create single tiles through the browser application or multiple tiles at one time with the solution’s RESTful API.


          Media Services Application Mapper browser app channel tiles

Figure 3: Example channel tiles

Each tile displays the aggregated media service configuration information for all resources included in the file. You can also select the tile to see the tile’s resources on the diagram.