Modularize the lambdas
parent
712a0346f7
commit
ac5d8ac50e
@ -0,0 +1,17 @@
|
|||||||
|
data "aws_iam_policy_document" "lambda-frontend-role" {
|
||||||
|
statement {
|
||||||
|
effect = "Allow"
|
||||||
|
principals {
|
||||||
|
type = "Service"
|
||||||
|
identifiers = ["lambda.amazonaws.com"]
|
||||||
|
}
|
||||||
|
actions = ["sts:AssumeRole"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module "frontend-lambda" {
|
||||||
|
source = "./modules/lambda"
|
||||||
|
name = "frontend"
|
||||||
|
handler = "frontend"
|
||||||
|
policy = data.aws_iam_policy_document.lambda-frontend-role.json
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
resource "aws_iam_role" "lambda-role" {
|
||||||
|
name = "lambda-role"
|
||||||
|
assume_role_policy = var.policy
|
||||||
|
}
|
||||||
|
|
||||||
|
data "archive_file" "lambda-role" {
|
||||||
|
type = "zip"
|
||||||
|
source_file = "src/${var.name}.py"
|
||||||
|
output_path = "src/${var.name}.zip"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_lambda_function" "lambda" {
|
||||||
|
function_name = var.name
|
||||||
|
runtime = "python3.11"
|
||||||
|
|
||||||
|
role = aws_iam_role.lambda-role.arn
|
||||||
|
|
||||||
|
handler = var.handler
|
||||||
|
filename = "src/${var.name}.zip"
|
||||||
|
source_code_hash = data.archive_file.lambda-role.output_base64sha256
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
output "arn" {
|
||||||
|
value = aws_lambda_function.lambda.arn
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
variable "name" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "handler" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "policy" {
|
||||||
|
type = string
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
pass
|
Loading…
Reference in New Issue