Link Search Menu Expand Document Documentation Menu

OpenSearch Data Prepper 的 aws_lambda 接收器

本页面介绍了如何配置和使用 AWS Lambda 与 OpenSearch Data Prepper,使 Lambda 函数能够同时充当处理器和接收器。

aws_lambda 接收器

使用以下参数配置 Lambda 接收器。

字段 类型 必需 描述
function_name 字符串 要调用的 AWS Lambda 函数的名称。
invocation_type 字符串 指定调用类型。默认值为 event
aws.region 字符串 Lambda 函数所在的 AWS 区域。
aws.sts_role_arn 字符串 在调用 Lambda 函数之前要假定的角色的 Amazon 资源名称 (ARN)。
max_retries 整数 如果调用失败,最大重试次数。默认值为 3
batch 对象 Lambda 调用的可选批处理设置。默认值为 key_name = events。默认阈值为 event_count=100maximum_size="5mb"event_collect_timeout = 10s
lambda_when 字符串 确定何时调用 Lambda 接收器的条件表达式。
dlq 对象 用于失败调用的死信队列 (DLQ) 配置。

示例配置

sink:
  - aws_lambda:
      function_name: "my-lambda-sink"
      invocation_type: "event"
      aws:
        region: "us-west-2"
        sts_role_arn: "arn:aws:iam::123456789012:role/my-lambda-sink-role"
      max_retries: 5
      batch:
        key_name: "events"
        threshold:
          event_count: 50
          maximum_size: "3mb"
          event_collect_timeout: PT5S
      lambda_when: "event['type'] == 'log'"
      dlq:
        region: "us-east-1"
        sts_role_arn: "arn:aws:iam::123456789012:role/my-sqs-role"
        bucket: "<<your-dlq-bucket-name>>"

用法

调用类型如下:

  • event (默认):异步执行函数,无需等待响应。
  • request-response (仅限接收器):同步执行函数,但响应不被处理。
  • batch:根据配置的阈值自动对事件进行分组。
  • dlq:在重试尝试后,支持针对失败调用的 DLQ 配置。

Data Prepper 组件使用 AWS 身份和访问管理 (IAM) 角色假定 aws.sts_role_arn,以安全地调用 Lambda 函数,并在事件处理期间遵守 Lambda 的并发限制。更多信息,请参阅 AWS Lambda 文档

开发者指南

集成测试必须与主 Data Prepper 构建分开执行。使用以下命令执行:

./gradlew :data-prepper-plugins:aws-lambda:integrationTest -Dtests.sink.lambda.region="us-east-1" -Dtests.sink.lambda.functionName="lambda_test_function"  -Dtests.sink.lambda.sts_role_arn="arn:aws:iam::123456789012:role/dataprepper-role

剩余 350 字符

有问题?

想要贡献?