Creating an immersive VR analytics platform using AWS Sumerian and backend data processing in Lambda
TypeScriptTo accomplish your goal, you'll want to use AWS Sumerian for creating the VR analytics platform interface. However, the Pulumi Registry doesn't currently include resources specific to Sumerian, so we can't automate the creation of a 3D scene or assets, which are typically done via the Sumerian console.
The data processing portion can be handled by an AWS Lambda function. We'll generate a Pulumi program that represents a simple Lambda function. This Lambda function can be triggered by various AWS services as needed (like S3, API Gateway, Sumerian, etc.), but you'll need to implement the specific logic of your data processing.
Let's use the aws.lambda.Function resource to accomplish the Lambda function setup. If you're curious about the other properties this resource offers, reference the Lambda Function documentation from the Pulumi Registry.
import * as pulumi from "@pulumi/pulumi"; import * as aws from "@pulumi/aws"; // Create a Lambda function const dataProcessingFunction = new aws.lambda.Function("dataProcessingFunction", { runtime: aws.lambda.NodeJS12dXRuntime, role: lambdaExecutionRole.arn, handler: "index.handler", code: new pulumi.asset.AssetArchive({ ".": new pulumi.asset.FileArchive("./path-to-your-lambda-code"), }), }); // Export Lambda function name export const functionName = dataProcessingFunction.name;
Replace "./path-to-your-lambda-code" with the path to your data processing Lambda function's source code.
This Pulumi program deploys an AWS Lambda function written in the Node.js 12.x runtime. The function's role, handler, and source code properties are specified according to values you provide. The ARN of the function is exported for easy reference.
You need to note that
lambdaExecutionRole
referenced in the code is the IAM Role that AWS Lambda assumes when it executes your function to access any other AWS resources, like your potential data sources. There's no Pulumi resource created for this role in this program, make sure you replacelambdaExecutionRole.arn
with the ARN of an existing IAM Role, or create a new IAM Role using Pulumi.Also, the property
handler
is usually in the formatfileName.exportName
, whereexportName
is the name of the JavaScript function AWS Lambda should call to start your application.Remember, You'll need to wire this function with AWS Sumerian or any other service for event triggers, you typically do this in the AWS console for the triggering service or via additional Pulumi resources.