Search

Kinesis Data Firehose

resource "aws_kinesis_firehose_delivery_stream" "extended_s3_stream" { name = "terraform-kinesis-firehose-extended-s3-test-stream" destination = "extended_s3" extended_s3_configuration { role_arn = aws_iam_role.firehose_role.arn bucket_arn = aws_s3_bucket.bucket.arn processing_configuration { enabled = "true" processors { type = "Lambda" parameters { parameter_name = "LambdaArn" parameter_value = "${aws_lambda_function.lambda_processor.arn}:$LATEST" } } } } } resource "aws_s3_bucket" "bucket" { bucket = "tf-test-bucket" } resource "aws_s3_bucket_acl" "bucket_acl" { bucket = aws_s3_bucket.bucket.id acl = "private" } data "aws_iam_policy_document" "firehose_assume_role" { statement { effect = "Allow" principals { type = "Service" identifiers = ["firehose.amazonaws.com"] } actions = ["sts:AssumeRole"] } } resource "aws_iam_role" "firehose_role" { name = "firehose_test_role" assume_role_policy = data.aws_iam_policy_document.firehose_assume_role.json } data "aws_iam_policy_document" "lambda_assume_role" { statement { effect = "Allow" principals { type = "Service" identifiers = ["lambda.amazonaws.com"] } actions = ["sts:AssumeRole"] } } resource "aws_iam_role" "lambda_iam" { name = "lambda_iam" assume_role_policy = data.aws_iam_policy_document.lambda_assume_role.json } data "archive_file" "lambda" { type = "zip" source_file = "./src/lambda_function.py" output_path = "lambda.zip" } resource "aws_lambda_function" "lambda_processor" { filename = "lambda.zip" function_name = "firehose_lambda_processor" role = aws_iam_role.lambda_iam.arn handler = "exports.handler" runtime = "nodejs22.x" }
JSON
복사