为 kinesis firehose 流启用动态分区时,Terraform 抛出 InvalidArgumentException

问题描述 投票:0回答:2

即使我遵循 terraform 文档来准确启用动态分区(https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kinesis_firehose_delivery_stream),我仍然收到以下错误:

错误:创建 Kinesis Firehose 传输流时出错:InvalidArgumentException:启用动态分区时,动态分区命名空间只能是前缀表达式的一部分。

我完全困惑为什么我会收到此错误,因为启用的processing_configuration设置为true,所以我不确定为什么它会给我一个错误,其中说动态分区根本没有启用。任何帮助,将不胜感激。谢谢!

amazon-web-services terraform terragrunt amazon-kinesis
2个回答
0
投票

我遇到了类似的问题:

InvalidArgumentException: BufferingHints.SizeInMBs must be at least 64 when Dynamic Partitioning is enabled.
我使用
buffer_size = "64"
来解决同样的问题。我使用 lambda 来获取动态分区键。

具有动态分区的 Kinesis Firehose 的整个脚本如下:

resource "aws_kinesis_firehose_delivery_stream" "firehose" {
  name        = "firehose_test"
  destination = "extended_s3"
  tags = {
    env             = "PROD"
  }

 extended_s3_configuration {
    role_arn        = aws_iam_role.firehose_stream_role.arn
    bucket_arn      = var.s3_arn
    buffer_size     = "64"
    # https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
    dynamic_partitioning_configuration {
      enabled = "true"
    }

    # Example prefix using partitionKeyFromQuery
    prefix              = "ingest/data/!{partitionKeyFromLambda:year}/!{partitionKeyFromLambda:month}/!{partitionKeyFromLambda:day}/!{partitionKeyFromLambda:hour}/"
    error_output_prefix = "ingest/errors/"

    cloudwatch_logging_options {
      enabled         = "true"
      log_group_name  = aws_cloudwatch_log_group.logging_group.name
      log_stream_name = aws_cloudwatch_log_stream.logging_stream.name
    }

    processing_configuration {
      enabled = "true"

      processors {
        type = "Lambda"

        parameters {
          parameter_name  = "LambdaArn"
          parameter_value = "${aws_lambda_function.lambda_function.arn}:$LATEST"
        }

        parameters {
          parameter_name  = "BufferSizeInMBs"
          parameter_value = 0.2
        }

        parameters {
          parameter_name  = "BufferIntervalInSeconds"
          parameter_value = 60
        }
      }
    }
  }
}```

-1
投票

动态分区的示例不完整。 他们没有提到的是,您还需要指定一个

dynamic_partitioning_configuration
块来启用它。

dynamic_partitioning_configuration {
  enabled = "true"
}

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kinesis_firehose_delivery_stream#dynamic_partitioning_configuration

© www.soinside.com 2019 - 2024. All rights reserved.