terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 3.27" } random = { source = "hashicorp/random" version = "3.1.0" } } required_version = ">= 0.14.9" } provider "aws" { profile = "default" region = "us-east-1" } resource "random_string" "random" { length = 8 special = false lower = true number = true upper = false } resource "aws_lambda_function" "lambda_s3_handler" { function_name = "process-s3-new-objects" filename = data.archive_file.lambda_zip_file.output_path source_code_hash = data.archive_file.lambda_zip_file.output_base64sha256 handler = "index.handler" role = aws_iam_role.iam_for_lambda.arn runtime = "nodejs14.x" } data "archive_file" "lambda_zip_file" { type = "zip" source_file = "${path.module}/src/index.js" output_path = "${path.module}/lambda.zip" } resource "aws_iam_role" "iam_for_lambda" { name = "iam_for_lambda" assume_role_policy = <