terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.22" } } required_version = ">= 0.14.9" } provider "aws" { profile = "default" region = "us-east-1" } data "aws_iam_policy" "lambda_basic_execution_role_policy" { name = "AWSLambdaBasicExecutionRole" } resource "aws_qldb_ledger" "ledger" { name = "qldb-serverless-pattern" permissions_mode = "STANDARD" deletion_protection = false tags = { name = "qldb-serverless-pattern" } } # Create Person resource "aws_lambda_function" "lambda_function_create_person" { function_name = "CreatePerson" filename = data.archive_file.lambda_zip_file.output_path source_code_hash = data.archive_file.lambda_zip_file.output_base64sha256 handler = "create-person.handler" role = aws_iam_role.lambda_iam_role_create_person.arn runtime = "nodejs14.x" environment { variables = { LEDGER_NAME = aws_qldb_ledger.ledger.id AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1 } } } data "archive_file" "lambda_zip_file" { type = "zip" source_dir = "${path.module}/src/" output_path = "${path.module}/lambda.zip" } resource "aws_iam_role" "lambda_iam_role_create_person" { name_prefix = "LambdaCreatePersonRole-" managed_policy_arns = [ data.aws_iam_policy.lambda_basic_execution_role_policy.arn, aws_iam_policy.lambda_policy_create_person.arn ] assume_role_policy = <