Covid Live Report

Report by Amazon QuickSight

DATA INGETION

We have used following AWS Services to prepare data for analysis dashboard.

AWS Data Exchange

We have used above Data provider and exported their data in S3 for further Analysis.

Amazon S3

We have used Amazon S3 to store data for Analysis

AWS Glue Crawlers

Crawlers has been created to create a schema for Analysis

AWS Glue Database and Tables

Crawler will create a database and table and convert the data with schema.

AWS Athena

Athena can be used to query data generated in Glue data catalog.

Amazon QuickSight

Amazon QuickSight is is used to create meaningful analytics dashboard using Athena data catalog.

QuickSight Dashboard Embedding

We have used following AWS Services to embed quicksight dashboard to the app.

AWS Lambda

We have written one Lambda function to get the Embed Url.

AWS STS

We have written code to authenticate our user and get the embeddable dashboard URL

When a user accesses our app, the app should assume the IAM role (created above) on the user's behalf. Then it should add the user to Amazon QuickSight, if that user doesn't already exist. Next, it should pass an identifier as the unique role session ID. Doing this ensures that each viewer of the dashboard is uniquely provisioned in Amazon QuickSight. It also enforces per-user settings, such as the row-level security and dynamic defaults for parameters.

To assume the role, we have choose AssumeRole of AWS Security Token Service (AWS STS) API operations with using IAM identity to assume the role. The assume-role operation returns three output parameters: the access key, the secret key, and the session token.

Finally, to get a signed URL for the dashboard, call get-dashboard-embed-url in the Lambda function. This returns the embeddable dashboard URL as output.

AWS API Gateway

We have created an API to invoke our Lambda function. In Lambda Using the assumed role, invoke QuickSight API to generate embed url. And Embed url is passed back to client via API Gateway.

We have used this API endpoint in the App.

Once API Gateway response is received, JavaScript passes embed Url and a div to embedDashboard function (This function is present in the QuickSight JS library that is added to the portal page). The url is embedded into an iframe within the identified div and loads the dashboard from QuickSight. The dashboard is fully interactive just as in QuickSight portal.

Thank you for Reading!