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,或从文件中提取映射配置指定 file。mappings 和 file 选项可以一起指定,处理器会考虑两个源的映射进行翻译。如果管道配置和文件映射共享重复的 source 和 target 对,则以管道配置中指定的映射为准。
配置
您可以使用以下选项配置 translate 处理器。
mappings
mappings 配置中的每个项都包含以下选项。
| 参数 | 必需 | 类型 | 描述 |
|---|---|---|---|
| source | 是 | 字符串或列表 | 要翻译的源字段。可以是字符串或字符串列表。 |
| targets | 是 | 列表 | 目标字段配置列表,例如目标字段键或翻译映射。 |
targets 配置中的每个项都包含以下选项。
| 参数 | 必需 | 类型 | 描述 |
|---|---|---|---|
| 目标 | 是 | 字符串 | 指定输出中放置翻译值的字段的键。 |
| map | 否 | 映射 | 定义翻译的键值对列表。每个键代表源字段中可能的值,对应的值代表应翻译成什么。有关示例,请参阅 map 选项。map 和 regex 至少应配置一个。 |
| regex | 否 | 映射 | 一个键映射,定义翻译映射。有关更多选项,请参阅 regex 选项。map 和 regex 至少应配置一个。 |
| 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) 角色。 |