resource "aws_lambda_function" "check_foo" {
...
}
resource "aws_cloudwatch_event_rule" "every_five_minutes" {
name = "every-five-minutes"
description = "Fires every five minutes"
schedule_expression = "rate(5 minutes)"
}
resource "aws_cloudwatch_event_target" "check_foo_every_five_minutes" {
rule = aws_cloudwatch_event_rule.every_five_minutes.name
target_id = "some_id"
arn = aws_lambda_function.check_foo.arn
}
resource "aws_lambda_permission" "allow_cloudwatch_to_call_check_foo" {
statement_id = "AllowExecutionFromCloudWatch"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.check_foo.function_name
principal = "events.amazonaws.com"
source_arn = aws_cloudwatch_event_rule.every_five_minutes.arn
}
with open("file.csv", mode="r", encoding="utf-8", errors="ignore") as file:
csv_reader = csv.reader(file, delimiter=",")
for row in csv_reader:
print(row)
resource "aws_s3_bucket_notification" "bucket_notification" {
bucket = aws_s3_bucket.name.id
lambda_function {
lambda_function_arn = aws_lambda_function.lambda_func.arn
events = ["s3:ObjectCreated:*"]
filter_suffix = ".csv"
}
}
resource "aws_lambda_permission" "allow_bucket" {
statement_id = "AllowExecutionFromS3Bucket"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.lambda_func.arn
principal = "s3.amazonaws.com"
source_arn = aws_s3_bucket.name.arn
}
resource "aws_lambda_function_event_invoke_config" "invoke_config" {
function_name = aws_lambda_function.lambda_func.function_name
maximum_retry_attempts = 0
depends_on = [
aws_lambda_permission.allow_bucket
]
}