Initial terraform config
This commit is contained in:
parent
7246ecabf2
commit
333bee8c74
5 changed files with 105 additions and 0 deletions
21
terraform/.terraform.lock.hcl
generated
Normal file
21
terraform/.terraform.lock.hcl
generated
Normal file
|
|
@ -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",
|
||||||
|
]
|
||||||
|
}
|
||||||
17
terraform/config.tf
Normal file
17
terraform/config.tf
Normal file
|
|
@ -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"
|
||||||
|
}
|
||||||
30
terraform/lambda.tf
Normal file
30
terraform/lambda.tf
Normal file
|
|
@ -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 = <<EOF
|
||||||
|
{
|
||||||
|
"Version": "2012-10-17",
|
||||||
|
"Statement": [
|
||||||
|
{
|
||||||
|
"Action": "sts:AssumeRole",
|
||||||
|
"Principal": {
|
||||||
|
"Service": "lambda.amazonaws.com"
|
||||||
|
},
|
||||||
|
"Effect": "Allow",
|
||||||
|
"Sid": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
9
terraform/providers.tf
Normal file
9
terraform/providers.tf
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
provider "aws" {
|
||||||
|
profile = "default"
|
||||||
|
region = "eu-central-1"
|
||||||
|
default_tags {
|
||||||
|
tags = {
|
||||||
|
Terraform = "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
terraform/sqs.tf
Normal file
28
terraform/sqs.tf
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
resource "aws_sqs_queue" "lambda_input_queue" {
|
||||||
|
name = "reservation-request-queue"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_sqs_queue_policy" "lambda_input_queue_policy" {
|
||||||
|
queue_url = aws_sqs_queue.lambda_input_queue.url
|
||||||
|
|
||||||
|
policy = <<POLICY
|
||||||
|
{
|
||||||
|
"Version": "2012-10-17",
|
||||||
|
"Id": "sqspolicy",
|
||||||
|
"Statement": [
|
||||||
|
{
|
||||||
|
"Sid": "First",
|
||||||
|
"Effect": "Allow",
|
||||||
|
"Principal": "*",
|
||||||
|
"Action": "sqs:SendMessage",
|
||||||
|
"Resource": "${aws_sqs_queue.lambda_input_queue.arn}",
|
||||||
|
"Condition": {
|
||||||
|
"ArnEquals": {
|
||||||
|
"aws:SourceArn": "${aws_lambda_function.reservation_lambda.arn}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
POLICY
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue