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) 角色。 |