Link Search Menu Expand Document Documentation Menu

translate

The translate processor transforms values in events into preconfigured values.

基本用法

要使用 translate 处理器,请创建以下 pipeline.yaml 文件

translate-pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - translate:
        mappings:
          - source: "status"
            targets:
              - target: "translated_result"
                map:
                  404: "Not Found"
  sink:
    - stdout:

然后创建名为 logs_json.log 的文件,并将您的 pipeline.yaml 文件中文件源的 path 替换为包含以下 JSON 数据的文件路径

{ "status": "404" }

The pipeline.yaml 中的 translate 处理器配置从事件数据中检索 source 值,并将其与 targets 下指定的键进行比较。找到匹配项时,处理器会将相应的映射值放入配置中提供的 target 键中。

当您使用之前的 pipeline.yaml 文件运行 OpenSearch Data Prepper 时,您应该会收到以下输出

{
  "status": "404",
  "translated_result": "Not Found"
}

高级选项

以下示例展示了一个更复杂的映射,其中包含 translate 处理器的额外配置

processor:
  - translate:
      mappings:
        - source: "status"
          targets:
            - target: "translated_result"
              map:
                404: "Not Found"
              default: "default"
              type: "string"
              translate_when: "/response != null"
            - target: "another_translated_result"
              regex:
                exact: false
                patterns:
                  "2[0-9]{2}" : "Success" # Matches ranges from 200-299
                  "5[0-9]{2}": "Error"    # Matches ranges form 500-599
      file: 
        name: "path/to/file.yaml"
        aws:
          bucket: my_bucket
          region: us-east-1
          sts_role_arn: arn:aws:iam::123456789012:role/MyS3Role

在顶层,为内联映射配置指定 mappings,或从文件中提取映射配置指定 filemappingsfile 选项可以一起指定,处理器会考虑两个源的映射进行翻译。如果管道配置和文件映射共享重复的 sourcetarget 对,则以管道配置中指定的映射为准。

配置

您可以使用以下选项配置 translate 处理器。

参数 必需 类型 描述
mappings 列表 定义内联映射。有关更多信息,请参阅 mappings
file 映射 指向包含映射配置的文件。有关更多信息,请参阅 file

mappings

mappings 配置中的每个项都包含以下选项。

参数 必需 类型 描述
source 字符串或列表 要翻译的源字段。可以是字符串或字符串列表。
targets 列表 目标字段配置列表,例如目标字段键或翻译映射。

targets 配置中的每个项都包含以下选项。

参数 必需 类型 描述
目标 字符串 指定输出中放置翻译值的字段的键。
map 映射 定义翻译的键值对列表。每个键代表源字段中可能的值,对应的值代表应翻译成什么。有关示例,请参阅 map 选项mapregex 至少应配置一个。
regex 映射 一个键映射,定义翻译映射。有关更多选项,请参阅 regex 选项mapregex 至少应配置一个。
default 字符串 翻译时未找到匹配项时使用的默认值。
type 字符串 指定目标值的数据类型。
translate_when 字符串 使用 Data Prepper 表达式 指定执行翻译的条件。指定后,仅当条件满足时才会进行翻译。

map 选项

使用 map 选项时,可以使用以下键类型

  • 单个键
      map:
        ok : "Success"
        120: "Found"
    
  • 数字范围
      map:
        "100-200": "Success"
        "400-499": "Error"
    
  • 逗号分隔的键
      map:
        "key1,key2,key3": "value1"
        "100-200,key4": "value2"
    

map 选项中配置键时,请勿使用任何重叠的数字范围或重复的键。

regex 选项

您可以将以下选项与 regex 选项一起使用。

参数 必需 类型 描述
模式 映射 一个键值对映射,定义键的正则表达式模式以及每个模式要翻译成的值。
exact 布尔型 是否对正则表达式模式使用完全字符串匹配或部分字符串匹配。如果为 true,则仅当整个键与模式匹配时才将模式视为匹配项。否则,当键的子字符串与模式匹配时,该模式被视为匹配项。

file

The translate 处理器中的 file 选项接受包含翻译映射的本地 YAML 文件或 Amazon 简单存储服务 (Amazon S3) 对象。文件内容应采用以下格式

mappings:
  - source: "status"
    targets:
      - target: "result"
        map:
          "foo": "bar"
        # Other configurations

您可以在 file 配置中使用以下选项。

参数 必需 类型 描述
名称 字符串 本地文件的完整路径或 S3 对象的键名。
aws 映射 当文件是 S3 对象时,AWS 配置。有关更多信息,请参阅下表。

您可以将以下选项与 aws 配置一起使用。

参数 必需 类型 描述
bucket 字符串 Amazon S3 存储桶名称。
region 字符串 用于凭证的 AWS 区域。
sts_role_arn 字符串 用于向 Amazon S3 发出请求的 AWS 安全令牌服务 (AWS STS) 角色。
剩余 350 字符

有问题?

想要贡献?