Skip to content

intel/terraform-intel-aws-lambda

Intel Logo

Intel® Optimized Cloud Modules for Terraform

See examples folder and the respective README.md files for usage instructions.

AWS Lambda — Managed Instances

Terraform module that deploys an AWS Lambda function with the new Managed Instances functionality using the aws_lambda_capacity_provider resource.

The module uses Intel x86_64 architecture and implements instance types to Intel 4th-generation (7i) EC2 families (m7i, c7i, r7i, r7iz).

For more information on the supported instance types and their capabilities, see the AWS Lambda Managed Instances documentation.

Examples

Example Description
resnet50-int8-classification End-to-end AI inference benchmark: ResNet-50 v1.5 INT8 image classification with Intel OpenVINO, comparing a managed Intel Xeon 7i instance against standard serverless Lambda (container image + S3 pipeline + live cost analysis).
existing-vpc Deploy into an existing VPC (subnets + optional security groups) with an S3-triggered file-processing pipeline.
new-vpc Create a new VPC with terraform-aws-modules/vpc/aws, then deploy the Lambda Managed Instance.

Requirements

Name Version
terraform >= 1.0
aws >= 6.0
archive >= 2.0
time >= 0.9

Lambda function

Name Description Type Default Required
lambda_function_name Override the Lambda function name string "" no
lambda_description Lambda function description string "Lambda function deployed with Managed Instances (Capacity Provider)" no
lambda_handler Handler entry point (ZIP mode) string "index.handler" no
lambda_runtime Runtime (ZIP mode) string "python3.14" no
lambda_timeout Timeout in seconds number 30 no
lambda_memory_size Memory in MB number 4096 no
lambda_environment_variables Environment variables map map(string) {} no

Packaging (ZIP vs Image)

Name Description Type Default Required
package_type Deployment package type: Zip or Image string "Zip" no
lambda_source_dir Path to source directory (required when package_type = "Zip") string "" no
image_uri ECR image URI (required when package_type = "Image") string "" no
image_command Override the container image CMD list(string) null no

Capacity Provider & scaling

Name Description Type Default Required
capacity_provider_name Override the Capacity Provider name string "" no
capacity_provider_max_vcpu_count Max vCPUs the provider may scale to number 12 no
capacity_provider_scaling_mode Auto or Manual string "Manual" no
capacity_provider_scaling_policies Target-tracking policies (Manual mode) list(object) Avg CPU @ 70% no
per_execution_environment_max_concurrency Max concurrent invocations per execution environment (set 1 for CPU-bound inference) number null no

S3 event pipeline (optional)

Name Description Type Default Required
create_s3_buckets Create input/output buckets and the Lambda trigger bool false no
vpc_id VPC ID (required when create_s3_buckets = true) string "" no
input_bucket_name Input bucket name (auto-generated if empty) string "" no
output_bucket_name Output bucket name (auto-generated if empty) string "" no
s3_force_destroy Destroy buckets even when non-empty bool false no
create_s3_notification Create the S3 → Lambda notification bool true no
s3_trigger_prefix S3 key prefix filter string "" no
s3_trigger_suffix S3 key suffix filter string "" no

IAM & restricted accounts

Name Description Type Default Required
create_iam_roles Create IAM roles (set false for managed accounts) bool true no
lambda_execution_role_arn Existing Lambda execution role ARN string "" no
capacity_provider_role_arn Existing Capacity Provider operator role ARN string "" no
create_s3_public_access_block Create S3 public-access blocks bool true no

Outputs

Name Description
lambda_function_arn ARN of the Lambda function
lambda_function_name Name of the Lambda function
lambda_function_invoke_arn Invoke ARN of the Lambda function
lambda_function_version Latest published version
lambda_function_qualified_arn Qualified ARN of the Lambda function
capacity_provider_arn ARN of the Lambda Capacity Provider
capacity_provider_name Name of the Lambda Capacity Provider
lambda_role_arn ARN of the Lambda execution IAM role
lambda_role_name Name of the Lambda execution IAM role
capacity_provider_role_arn ARN of the Capacity Provider operator IAM role
capacity_provider_role_name Name of the Capacity Provider operator IAM role
input_bucket_name Name of the S3 input bucket (empty if S3 not enabled)
input_bucket_arn ARN of the S3 input bucket (empty if S3 not enabled)
output_bucket_name Name of the S3 output bucket (empty if S3 not enabled)
output_bucket_arn ARN of the S3 output bucket (empty if S3 not enabled)
lambda_alias_arn ARN of the Lambda live alias used for S3 invocation (empty if S3 not enabled)

Project Structure

.
├── main.tf                          # Module: Lambda, Capacity Provider, IAM, optional S3 pipeline
├── variables.tf                     # Module inputs
├── outputs.tf                       # Module outputs
├── versions.tf                      # Provider requirements
├── lambda/
│   └── index.py                     # Sample Python Lambda function (ZIP mode)
├── examples/
│   ├── existing-vpc/                # Deploy into a pre-existing VPC
│   ├── new-vpc/                     # Create a new VPC, then deploy
│   └── resnet50-int8-classification/ # Intel Xeon 7i vs standard Lambda AI benchmark
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
└── security.md

About

Intel Cloud Optimization Module - AWS Lambda Managed Instances

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

2 watching

Forks

Packages

 
 
 

Contributors