seahaven-door-unlock-api/terraform/lambda.tf

136 lines
4.4 KiB
Terraform
Raw Normal View History

resource "aws_lambda_function" "unlock" {
function_name = local.function_packages.unlock.function_name
role = aws_iam_role.unlock.arn
handler = local.function_packages.unlock.handler
runtime = "nodejs24.x"
architectures = ["arm64"]
memory_size = local.function_packages.unlock.memory
timeout = local.function_packages.unlock.timeout
s3_bucket = aws_s3_bucket.artifacts.id
s3_key = aws_s3_object.function["unlock"].key
source_code_hash = data.archive_file.function["unlock"].output_base64sha256
environment {
variables = {
ELEMENTS_API_KEY_PARAM = local.elements_api_key_param
AUTH_TOKEN_PARAM = local.auth_token_param
DOOR_ID_PARAM = local.door_id_param
}
}
depends_on = [
aws_cloudwatch_log_group.function,
aws_iam_role_policy.unlock,
aws_iam_role_policy_attachment.unlock_basic,
]
}
resource "aws_lambda_function" "lockdown" {
function_name = local.function_packages.lockdown.function_name
role = aws_iam_role.lockdown.arn
handler = local.function_packages.lockdown.handler
runtime = "nodejs24.x"
architectures = ["arm64"]
memory_size = local.function_packages.lockdown.memory
timeout = local.function_packages.lockdown.timeout
s3_bucket = aws_s3_bucket.artifacts.id
s3_key = aws_s3_object.function["lockdown"].key
source_code_hash = data.archive_file.function["lockdown"].output_base64sha256
environment {
variables = {
ELEMENTS_API_KEY_PARAM = local.elements_api_key_param
AUTH_TOKEN_PARAM = local.auth_token_param
}
}
depends_on = [
aws_cloudwatch_log_group.function,
aws_iam_role_policy.lockdown,
aws_iam_role_policy_attachment.lockdown_basic,
]
}
resource "aws_lambda_function" "authorizer" {
function_name = local.function_packages.authorizer.function_name
role = aws_iam_role.authorizer.arn
handler = local.function_packages.authorizer.handler
runtime = "nodejs24.x"
architectures = ["arm64"]
memory_size = local.function_packages.authorizer.memory
timeout = local.function_packages.authorizer.timeout
s3_bucket = aws_s3_bucket.artifacts.id
s3_key = aws_s3_object.function["authorizer"].key
source_code_hash = data.archive_file.function["authorizer"].output_base64sha256
environment {
variables = {
AUTH_TOKEN_PARAM = local.auth_token_param
}
}
depends_on = [
aws_cloudwatch_log_group.function,
aws_iam_role_policy.authorizer,
aws_iam_role_policy_attachment.authorizer_basic,
]
}
resource "aws_lambda_function" "poller" {
function_name = local.function_packages.poller.function_name
role = aws_iam_role.poller.arn
handler = local.function_packages.poller.handler
runtime = "nodejs24.x"
architectures = ["arm64"]
memory_size = local.function_packages.poller.memory
timeout = local.function_packages.poller.timeout
s3_bucket = aws_s3_bucket.artifacts.id
s3_key = aws_s3_object.function["poller"].key
source_code_hash = data.archive_file.function["poller"].output_base64sha256
environment {
variables = {
ELEMENTS_API_KEY_PARAM = local.elements_api_key_param
}
}
depends_on = [
aws_cloudwatch_log_group.function,
aws_iam_role_policy.poller,
aws_iam_role_policy_attachment.poller_basic,
]
}
resource "aws_lambda_function" "blf_sync" {
function_name = local.function_packages.blf_sync.function_name
role = aws_iam_role.blf_sync.arn
handler = local.function_packages.blf_sync.handler
runtime = "nodejs24.x"
architectures = ["arm64"]
memory_size = local.function_packages.blf_sync.memory
timeout = local.function_packages.blf_sync.timeout
s3_bucket = aws_s3_bucket.artifacts.id
s3_key = aws_s3_object.function["blf_sync"].key
source_code_hash = data.archive_file.function["blf_sync"].output_base64sha256
environment {
variables = {
THREE_CX_DOMAIN_SECRET = local.three_cx_domain_secret_name
THREE_CX_CLIENT_ID_SECRET = local.three_cx_client_id_secret_name
THREE_CX_CLIENT_SECRET_SECRET = local.three_cx_client_secret_secret_name
DRY_RUN = "false"
}
}
depends_on = [
aws_cloudwatch_log_group.function,
aws_iam_role_policy.blf_sync,
aws_iam_role_policy_attachment.blf_sync_basic,
]
}