A month ago, I was put in a scenario where if we could able to invoke Lambda functions from Tableau, sending a parameter in realtime and getting a different response for each selected parameter. BI engineers have already developed and deployed a Lambda function which now requires a frond-end UI for our users to invoke the function. Having this UI right within the Tableau workbook will enable our users to execute an operation from a published workbook with different parameters.

What it does

You have a AWS Lambda function deployed and now want your users to invoke that function where each user passes different parameters using a frond-end UI. Building and maintaining a new front-end could be time and resource consuming. With this Tableau Extension, you can configure it with few inputs and publish the Tableau workbook. Required Inputs to configure

  1. Region - AWS region
  2. AWS Cognito Identity Pool ID - We need a way to authenticate users who are trying to invoke your lambda function. Since we are using AWS sdk for browser, the recommended way for authenticating is by creating AWS Cognito Identity Pool ID. Find more details here link
  3. Lambda Function Name - Name of your deployed (& tested) AWS function name
  4. Invocation Type - RequestResponse or Event

How I built it

  1. Javascript AWS SDK is used to make the lambda invocations
  2. Current values Tableau parameters are used to pass as Payload to Lambda function

Challenges I ran into

Securely configuring AWS lambda from the user inputs

Accomplishments that I'm proud of

This opens gates for whole new level of innovative use cases combining powers of AWS and Tableau.

What I learned

I'm not very sound on Javascript. I struggled all the way through in trying to figure out how tableau extensions API works. Even now I'm not very clear in most concepts but still this was a very good learning.

What's next for AWS Lambda Extension API

  1. Improving security
  2. Adding more features

Built With

Share this project: