@aws-solutions-constructs/aws-lambda-transcribe
v2.96.0
Published
CDK constructs for defining an interaction between an AWS Lambda function and Amazon Transcribe with S3 buckets.
Maintainers
Readme
aws-lambda-transcribe module
| Reference Documentation:| https://docs.aws.amazon.com/solutions/latest/constructs/| |:-------------|:-------------|
| Language | Package |
|:-------------|-----------------|
|
Python|aws_solutions_constructs.aws_lambda_transcribe|
|
Typescript|@aws-solutions-constructs/aws-lambda-transcribe|
|
Java|software.amazon.awsconstructs.services.lambdatranscribe|
Overview
This AWS Solutions Construct implements an AWS Lambda function connected to Amazon S3 buckets for use with Amazon Transcribe.
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import { LambdaToTranscribe } from '@aws-solutions-constructs/aws-lambda-transcribe';
import * as lambda from 'aws-cdk-lib/aws-lambda';
new LambdaToTranscribe(this, 'LambdaToTranscribePattern', {
lambdaFunctionProps: {
runtime: lambda.Runtime.NODEJS_22_X,
handler: 'index.handler',
code: lambda.Code.fromAsset(`lambda`)
}
});Python
from aws_solutions_constructs.aws_lambda_transcribe import LambdaToTranscribe
from aws_cdk import (
aws_lambda as _lambda,
Stack
)
from constructs import Construct
LambdaToTranscribe(self, 'LambdaToTranscribePattern',
lambda_function_props=_lambda.FunctionProps(
code=_lambda.Code.from_asset('lambda'),
runtime=_lambda.Runtime.PYTHON_3_11,
handler='index.handler'
)
)Java
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.services.lambda.*;
import software.amazon.awscdk.services.lambda.Runtime;
import software.amazon.awsconstructs.services.lambdatranscribe.*;
new LambdaToTranscribe(this, "LambdaToTranscribePattern", new LambdaToTranscribeProps.Builder()
.lambdaFunctionProps(new FunctionProps.Builder()
.runtime(Runtime.NODEJS_22_X)
.code(Code.fromAsset("lambda"))
.handler("index.handler")
.build())
.build());Pattern Construct Props
| Name | Type | Description |
|:-------------|:----------------|-----------------|
|existingLambdaObj?|lambda.Function|Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.|
|lambdaFunctionProps?|lambda.FunctionProps|Optional user provided props to override the default props for the Lambda function.|
|existingSourceBucketObj?|s3.IBucket|Existing instance of S3 Bucket object for source audio files.|
|sourceBucketProps?|s3.BucketProps|Optional user provided props to override the default props for the source S3 Bucket.|
|existingDestinationBucketObj?|s3.IBucket|Existing instance of S3 Bucket object for transcription results.|
|destinationBucketProps?|s3.BucketProps|Optional user provided props to override the default props for the destination S3 Bucket.|
|useSameBucket?|boolean|Whether to use the same S3 bucket for both source and destination files. Default: false|
Pattern Properties
| Name | Type | Description |
|:-------------|:----------------|-----------------|
|lambdaFunction|lambda.Function|Returns an instance of the Lambda function created by the pattern.|
|sourceBucket?|s3.Bucket|Returns an instance of the source S3 bucket created by the pattern.|
|destinationBucket?|s3.Bucket|Returns an instance of the destination S3 bucket created by the pattern.|
Default settings
Out of the box implementation of the Construct without any override will set the following defaults:
AWS Lambda Function
- Configure limited privilege access IAM role for Lambda function
- Enable reusing connections with Keep-Alive for NodeJs Lambda function
- Enable X-Ray Tracing
- Set Environment Variables
- SOURCE_BUCKET_NAME
- DESTINATION_BUCKET_NAME
- AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)
- Grant permissions to use Amazon Transcribe service, write to source bucket, and read from destination bucket
Amazon S3 Buckets
- Configure Access logging for both S3 Buckets
- Enable server-side encryption for both S3 Buckets using AWS managed KMS Key
- Enforce encryption of data in transit
- Turn on the versioning for both S3 Buckets
- Don't allow public access for both S3 Buckets
- Retain the S3 Buckets when deleting the CloudFormation stack
Amazon Transcribe Service
- The Transcribe service will have read access to the source bucket and write permissions to the destination bucket
- Lambda function will have permissions to start transcription jobs, get job status, and list transcription jobs
Architecture

© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
