206 lines
6.4 KiB
HCL
206 lines
6.4 KiB
HCL
locals {
|
|
bucket_name = "bsmsapp"
|
|
path = "../resources"
|
|
|
|
s3 = {
|
|
website = {
|
|
type = 1
|
|
bucket_name = local.bucket_name
|
|
bucket_acl = "private"
|
|
path = "../resources"
|
|
|
|
website = {
|
|
index_document = "index.html"
|
|
error_document = "error.html"
|
|
}
|
|
|
|
objects = {
|
|
favicon = {
|
|
filename = "favicon.ico"
|
|
content_type = "image/x-icon"
|
|
}
|
|
loading = {
|
|
filename = "loading.gif"
|
|
content_type = "image/gif"
|
|
}
|
|
}
|
|
}
|
|
|
|
logs = {
|
|
type = 2
|
|
bucket_name = "${local.bucket_name}-logs"
|
|
bucket_acl = "log-delivery-write"
|
|
}
|
|
}
|
|
|
|
lambdas = {
|
|
lambdaSQS = {
|
|
package = "${local.path}/lambda/lambdaSQS.zip"
|
|
function_name = "AWSLambdaHandlerAPISQSDBg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.stepfunctions_sg.id
|
|
},
|
|
lambdaDB = {
|
|
package = "${local.path}/lambda/lambdaDB.zip"
|
|
function_name = "AWSLambdaHandlerAPIDBg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.dynamodb_sg.id
|
|
}
|
|
lambdaSNS = {
|
|
package = "${local.path}/lambda/lambdaSNS.zip"
|
|
function_name = "AWSLambdaHandlerAPISNSg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.sns_sg.id
|
|
}
|
|
lambdaGET = {
|
|
package = "${local.path}/lambda/lambdaGET.zip"
|
|
function_name = "AWSLambdaHandlerGETg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.7",
|
|
security_group_ids = aws_security_group.sns_sg.id
|
|
}
|
|
lambdaUpdate = {
|
|
package = "${local.path}/lambda/lambdaUpdate.zip"
|
|
function_name = "AWSLambdaHandlerUpdateg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.dynamodb_sg.id
|
|
}
|
|
lambdaError = {
|
|
package = "${local.path}/lambda/lambdaError.zip"
|
|
function_name = "AWSLambdaHandlerSNSErrorg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.sns_sg.id
|
|
}
|
|
lambdaUpdateAPI = {
|
|
package = "${local.path}/lambda/lambdaUpdateAPI.zip"
|
|
function_name = "AWSLambdaHandlerUpdateAPIg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.dynamodb_sg.id
|
|
}
|
|
lambdaRemove = {
|
|
package = "${local.path}/lambda/lambdaRemove.zip"
|
|
function_name = "AWSLambdaHandlerRemoveDBg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.dynamodb_sg.id
|
|
}
|
|
lambdaTopicSNS = {
|
|
package = "${local.path}/lambda/lambdaTopicSNS.zip"
|
|
function_name = "AWSLambdaHandlerTopicSNSg3"
|
|
role = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/LabRole"
|
|
handler = "lambda_handler.main"
|
|
runtime = "python3.9",
|
|
security_group_ids = aws_security_group.sns_sg.id
|
|
}
|
|
}
|
|
|
|
private_inbound = [
|
|
{
|
|
rule_number = 100
|
|
rule_action = "allow"
|
|
from_port = 1024
|
|
to_port = 65535
|
|
protocol = "tcp"
|
|
cidr_block = "0.0.0.0/0"
|
|
}
|
|
]
|
|
private_outbound = [
|
|
{
|
|
rule_number = 100
|
|
rule_action = "allow"
|
|
from_port = 0
|
|
to_port = 65535
|
|
protocol = 6
|
|
cidr_block = "0.0.0.0/0"
|
|
}
|
|
]
|
|
|
|
domain = "santilococo.com.ar"
|
|
|
|
emails = ["slococo@itba.edu.ar"]
|
|
|
|
cloudfront = {
|
|
root = {
|
|
web_acl_id = module.waf.web_acl_arn
|
|
aliases = [
|
|
local.domain
|
|
]
|
|
origin = {
|
|
api-gateway = {
|
|
domain_name = replace(replace(module.apigw.endpoint, "https://", ""), "/", "")
|
|
origin_path = "/api"
|
|
|
|
custom_origin_config = {
|
|
http_port = 80
|
|
https_port = 443
|
|
origin_protocol_policy = "match-viewer"
|
|
origin_ssl_protocols = ["TLSv1", "TLSv1.1", "TLSv1.2"]
|
|
}
|
|
}
|
|
s3 = {
|
|
domain_name = module.s3["website"].domain_name
|
|
|
|
s3_origin_config = {
|
|
origin_access_identity = module.s3["website"].cloudfront_access_identity
|
|
}
|
|
}
|
|
}
|
|
default_cache_behavior = {
|
|
target_origin_id = "s3"
|
|
viewer_protocol_policy = "redirect-to-https"
|
|
|
|
allowed_methods = ["GET", "HEAD", "OPTIONS"]
|
|
cached_methods = ["GET", "HEAD"]
|
|
|
|
min_ttl = 0
|
|
default_ttl = 3600
|
|
max_ttl = 86400
|
|
}
|
|
},
|
|
redirect = {
|
|
aliases = [
|
|
"www.${local.domain}"
|
|
]
|
|
origin = {
|
|
s3 = {
|
|
domain_name = module.s3["website"].domain_name
|
|
|
|
s3_origin_config = {
|
|
origin_access_identity = module.s3["website"].cloudfront_access_identity
|
|
}
|
|
}
|
|
}
|
|
default_cache_behavior = {
|
|
target_origin_id = "s3"
|
|
viewer_protocol_policy = "redirect-to-https"
|
|
|
|
allowed_methods = ["GET", "HEAD", "OPTIONS"]
|
|
cached_methods = ["GET", "HEAD"]
|
|
|
|
min_ttl = 0
|
|
default_ttl = 3600
|
|
max_ttl = 86400
|
|
|
|
function_association = {
|
|
viewer-request = {}
|
|
}
|
|
}
|
|
code = file("${local.path}/lambda/redirectWWW.js")
|
|
}
|
|
}
|
|
}
|