mirror of
https://github.com/GenderDysphoria/GenderDysphoria.fyi.git
synced 2025-01-31 15:26:17 +00:00
3f6077eb18
Attempting to do some log parsing into cloudwatch logs
62 lines
1.7 KiB
HCL
62 lines
1.7 KiB
HCL
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Grant the log parsing lambda access to the logs bucket
|
|
|
|
resource "aws_lambda_permission" "allow_bucket" {
|
|
statement_id = "AllowExecutionFromS3Bucket"
|
|
action = "lambda:InvokeFunction"
|
|
function_name = aws_lambda_function.ipixel_parser.arn
|
|
principal = "s3.amazonaws.com"
|
|
source_arn = aws_s3_bucket.ipixel_logs.arn
|
|
}
|
|
|
|
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
# Log Parsing Lambda
|
|
|
|
|
|
resource "aws_s3_bucket_notification" "ipixel_logs" {
|
|
bucket = aws_s3_bucket.ipixel_logs.bucket
|
|
|
|
lambda_function {
|
|
lambda_function_arn = aws_lambda_function.ipixel_parser.arn
|
|
events = ["s3:ObjectCreated:*"]
|
|
}
|
|
|
|
depends_on = [aws_lambda_permission.s3_bucket_invoke_function]
|
|
}
|
|
|
|
data "archive_file" "ipixel_parser" {
|
|
type = "zip"
|
|
source_dir = "${path.module}/lambda/src"
|
|
output_path = ".terraform/tmp/lambda/ipixel_parser.zip"
|
|
}
|
|
|
|
resource "aws_lambda_function" "ipixel_parser" {
|
|
function_name = "ipixel-parser-${var.site}"
|
|
|
|
runtime = "nodejs12.x"
|
|
handler = "index.handler"
|
|
timeout = 5
|
|
reserved_concurrent_executions = 3
|
|
|
|
environment {
|
|
variables = {
|
|
CLOUDWATCH_LOGS_GROUP_ARN = aws_cloudwatch_log_group.ipixel_results.arn
|
|
}
|
|
}
|
|
|
|
role = aws_iam_role.ipixel_parser.arn
|
|
|
|
filename = data.archive_file.ipixel_parser.output_path
|
|
source_code_hash = data.archive_file.ipixel_parser.output_base64sha256
|
|
|
|
tags = {
|
|
Site = var.site,
|
|
Role = "ipixel"
|
|
}
|
|
|
|
depends_on = [aws_cloudwatch_log_group.ipixel_parser_logs]
|
|
}
|