转换处理器
转换处理器通过添加、复制、移动或移除字段来修改日志事件的结构。
add_entries 处理器
向日志事件添加静态键值对。一个管道最多可以添加 1 个 add_entries 处理器。
配置
使用以下参数配置 add_entries 处理器:
processor: - add_entries: entries: - key: "environment" value: "production" overwrite_if_key_exists: false
参数
entries(必需)-
要添加到每个日志事件的键值对的数组。
entries[].key(必需)-
要添加到日志事件的字段名称。支持使用点表示法的嵌套字段。
entries[].value(必需)-
要分配给密钥的静态值。
entries[].overwrite_if_key_exists(可选)-
布尔值标志,用于确定密钥已经存在时的行为。默认值为 false。
when(可选)-
处理器级条件表达式。指定后,如果表达式的计算结果为 false,则会跳过整个处理器。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when(可选)-
条目级条件表达式。指定后,如果表达式的计算结果为 false,则仅跳过此条目。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when_else(可选)-
仅当同一处理器中的其他
when条件都不匹配时,才会执行的回退条目。表达式值确定要考虑的when条件。最大长度为 256 个字符。请参阅条件处理的表达式语法。
copy_values 处理器
将值从一个字段复制到另一个字段。一个管道最多可以添加 1 个 copy_values 处理器。
配置
使用以下参数配置 copy_values 处理器:
processor: - copy_values: entries: - from_key: "user_id" to_key: "backup_user" overwrite_if_to_key_exists: false
参数
entries(必需)-
要对每个日志事件执行的复制操作数组。
entries[].from_key(必需)-
要从中复制值的字段名称。对嵌套字段使用点表示法。
entries[].to_key(必需)-
要将值复制到的字段名称。如果使用点表示法,将创建嵌套结构。
entries[].overwrite_if_to_key_exists(可选)-
目标字段已经存在时,控制行为的布尔值标志。默认值为 false。
when(可选)-
处理器级条件表达式。指定后,如果表达式的计算结果为 false,则会跳过整个处理器。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when(可选)-
条目级条件表达式。指定后,如果表达式的计算结果为 false,则仅跳过此条目。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when_else(可选)-
仅当同一处理器中的其他
when条件都不匹配时,才会执行的回退条目。表达式值确定要考虑的when条件。最大长度为 256 个字符。请参阅条件处理的表达式语法。
delete_entries 处理器
从日志事件中移除指定字段。
配置
使用以下参数配置 delete_entris 处理器:
processor: - delete_entries: with_keys: ["temp_field", "debug_info"]
参数
with_keys(必需)-
要从每个日志事件中移除的字段名称数组。支持使用点表示法删除嵌套字段。
when(可选)-
用于确定此处理器是否执行的条件表达式。最大长度为 256 个字符。请参阅条件处理的表达式语法。
move_keys 处理器
将字段从一个位置移动到另一个位置。
配置
使用以下参数配置 move_keys 处理器:
processor: - move_keys: entries: - from_key: "old_field" to_key: "new_field" overwrite_if_to_key_exists: true
参数
entries(必需)-
移动操作数组。最多 5 个条目。
entries[].from_key(必需)-
来源字段名称。最多 128 个字符。
entries[].to_key(必需)-
目标字段名称。最多 128 个字符。
entries[].overwrite_if_to_key_exists(可选)-
是否覆盖现有的目标字段。
when(可选)-
处理器级条件表达式。指定后,如果表达式的计算结果为 false,则会跳过整个处理器。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when(可选)-
条目级条件表达式。指定后,如果表达式的计算结果为 false,则仅跳过此条目。最大长度为 256 个字符。请参阅条件处理的表达式语法。
entries[].when_else(可选)-
仅当同一处理器中的其他
when条件都不匹配时,才会执行的回退条目。表达式值确定要考虑的when条件。最大长度为 256 个字符。请参阅条件处理的表达式语法。
flatten 处理器
展平嵌套对象结构。
配置
使用以下参数配置 flatten 处理器:
processor: - flatten: source: "metadata" target: "flattened" remove_processed_fields: true exclude_keys: ["sensitive_data"]
参数
source(必需)-
包含要展平的嵌套对象的字段。
target(必需)-
展平密钥的目标字段前缀。
remove_processed_fields(可选)-
展平后是否移除原始嵌套字段。
exclude_keys(可选)-
要从展平中排除的键数组。最多 20 个键,每个键最多可包含 128 个字符。
when(可选)-
用于确定此处理器是否执行的条件表达式。最大长度为 256 个字符。请参阅条件处理的表达式语法。
查找处理器
使用 CloudWatch Logs 查找表中的数据充实日志事件。处理器将您的日志事件中的字段与查找表中的字段进行匹配,并将指定的字段附加到您的日志事件中。此处理器用于数据充实场景,例如将用户 ID 映射到用户详细信息,将产品代码映射到产品信息,或者将错误代码映射到错误描述。一个管道最多可以添加 1 个 lookup 处理器。
注意
如果在管道中使用查找表,则必须为执行角色提供表中 logs:GetLookupTable 的权限。有关更多信息,请参阅 CloudWatch 管道 IAM 策略和权限。
配置
使用以下参数配置查找处理器:
processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:my_lookup_table" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" overwrite_if_exists: true
参数
lookup_table(必需)-
要用于充实功能的 CloudWatch Logs 查找表的 ARN。最大长度为 2048 个字符。
match_keys(必需)-
定义如何将日志事件字段与查找表字段匹配的密钥对数组。最少 1 个,最多 5 个匹配密钥。指定多个匹配键时,查找表行必须匹配所有键才能生成结果(AND 逻辑)。
match_keys[].log_key(必需)-
日志事件中要匹配的字段名。最多 128 个字符。
match_keys[].lookup_key(必需)-
查找表中要匹配的列名。最多 128 个字符。
entries(必需)-
要从匹配的查找表行添加到日志事件的字段数组。最少 1 个,最多 10 个条目。
entries[].source(必需)-
查找表中要从中检索值的列名。最多 128 个字符。
entries[].target(可选)-
要添加到日志事件的字段名称。如果未指定,则使用
source列名作为字段名。最多 128 个字符。 entries[].overwrite_if_exists(可选)-
布尔值标志,用于确定当日志事件中已经存在目标字段时的行为。默认值为 false。
when(可选)-
用于确定此处理器是否执行的条件表达式。最大长度为 256 个字符。请参阅条件处理的表达式语法。
示例
考虑一个名为 network_assets 的查找表,其中包含以下行:
| ip_address | hostname | owner | 地点 |
|---|---|---|---|
| 10.0.1.12 | web-server-01 | team-alpha | us-east-1 |
| 10.0.2.45 | db-server-03 | team-beta | us-west-2 |
| 10.0.3.78 | cache-node-07 | team-alpha | eu-west-1 |
给定以下日志事件:
{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048 }
以及下列处理器配置:
processor: - lookup: lookup_table: "arn:aws:logs:us-east-1:123456789012:lookup-table:network_assets" match_keys: - log_key: "src_ip" lookup_key: "ip_address" entries: - source: "hostname" target: "src_hostname" - source: "owner" - source: "location" target: "src_region" overwrite_if_exists: false
处理器生成以下充实日志事件:
{ "timestamp": "2026-05-04T12:00:00Z", "src_ip": "10.0.2.45", "action": "connection_opened", "bytes": 2048, "src_hostname": "db-server-03", "owner": "team-beta", "src_region": "us-west-2" }
IAM 权限
当管道使用查找处理器时,管道的执行角色必须包括所引用表中 logs:GetLookupTable 的权限。以下示例策略语句授予此权限:
{ "Effect": "Allow", "Action": "logs:GetLookupTable", "Resource": "arn:aws:logs:<region>:<account-id>:lookup-table:<table-name>" }