diff --git a/terraform/.terraform.lock.hcl b/terraform/.terraform.lock.hcl new file mode 100644 index 0000000..645a3d2 --- /dev/null +++ b/terraform/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "3.65.0" + constraints = "~> 3.27" + hashes = [ + "h1:GCDkcISN83t+JK2U+ie3vaECnyxK0Sr6GjO7IrBOVeo=", + "zh:108aeaf5e18087d9ac852737a5be1347a28e40825817cc1a29ec523d40268294", + "zh:1a719c0c9754f906b2220d3bbf90d483ec0a74cf87768a464d2d657b7901ec6b", + "zh:21acdc35ae70a626cbc81eff06181a78843f1ddc2d9200f80fabf2e0466ecbda", + "zh:28846628e1a4227a1f2db256d6b22ed36922f37632999af7404aa74703cd9bfb", + "zh:32455550dbf86ae07d9782650e86d23c4fa13d7872e48680044692894e8da6ea", + "zh:4241246274627c752f9aef2806e810053306001e80fc5b51d27cbe997f75f95e", + "zh:5ca0fab3ceb3f41a97c1ebd29561a034cb83fda04da35fd5f8c3c5cb97bb3ea8", + "zh:5fed3b79d4ed6424055e8bbfb7a4393e8db5102cdba04b4590f8e0f4194637fb", + "zh:99a0bc325b0a59ded1152546c004953a2bb0e110978bf0cc55e1804384941bdb", + "zh:e74f9190a417c891992210f9af937ef55749d86a04762d982260fbbc989342a7", + "zh:fb6984405ca63d0373bd992ce157e933b8ae9dd94d74b1c5691632f062fe60b2", + ] +} diff --git a/terraform/config.tf b/terraform/config.tf new file mode 100644 index 0000000..84a6600 --- /dev/null +++ b/terraform/config.tf @@ -0,0 +1,17 @@ +terraform { + backend "s3" { + encrypt = true + bucket = "cgduncan7-terraform-state-euc1" + key = "autobaan-dev" + region = "eu-central-1" + dynamodb_table = "cgduncan7-terraform-state-lock-euc1" + } + + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 3.27" + } + } + required_version = ">= 1.0.0" +} \ No newline at end of file diff --git a/terraform/lambda.tf b/terraform/lambda.tf new file mode 100644 index 0000000..9c13cf2 --- /dev/null +++ b/terraform/lambda.tf @@ -0,0 +1,30 @@ +resource "aws_lambda_function" "reservation_lambda" { + filename = "reservation-lambda.zip" + function_name = "process-reservation-request" + role = aws_iam_role.reservation_lambda_iam_role.arn + handler = "index.handler" + + source_code_hash = filebase64sha256("reservation-lambda.zip") + + runtime = "nodejs14.x" +} + +resource "aws_iam_role" "reservation_lambda_iam_role" { + name = "reservation_lambda_iam_role" + + assume_role_policy = <