字串變動處理器 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

字串變動處理器

本節包含您可以與日誌事件轉換器搭配使用的字串變動處理器相關資訊。

lowerCaseString

lowerCaseString 處理器會將字串轉換為小寫版本。

欄位 描述 是否為必要? 預設 限制

withKeys

要轉換為小寫的索引鍵清單

項目上限:10

範例

採用下列範例日誌事件:

{ "outer_key": { "inner_key": "INNER_VALUE" } }

轉換器組態是這樣,使用 lowerCaseString搭配 parseJSON

[ { "parseJSON": {} }, { "lowerCaseString": { "withKeys":["outer_key.inner_key"] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key": "inner_value" } }

upperCaseString

upperCaseString 處理器會將字串轉換為其大寫版本。

欄位 描述 是否為必要? 預設 限制

withKeys

要轉換為大寫的金鑰清單

項目上限:10

範例

採用下列範例日誌事件:

{ "outer_key": { "inner_key": "inner_value" } }

轉換器組態是這樣,使用 upperCaseString搭配 parseJSON

[ { "parseJSON": {} }, { "upperCaseString": { "withKeys":["outer_key.inner_key"] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key": "INNER_VALUE" } }

splitString

splitString 處理器是一種字串變動處理器,使用分隔字元將欄位分割為陣列。

欄位 描述 是否為必要? 預設 限制

項目

項目陣列。陣列中的每個項目都必須包含 sourcedelimiter 欄位。

項目上限:10

source

要分割之欄位值的索引鍵

長度上限:128

分隔符號

要在 上分割欄位值的分隔符號字串

長度上限:128

範例 1

採用下列範例日誌事件:

[ { "parseJSON": {} }, { "splitString": { "entries": [ { "source": "outer_key.inner_key", "delimiter": "_" } ] } } ]

轉換器組態是這樣,使用 splitString搭配 parseJSON

[ { "parseJSON": {} }, { "splitString": { "entries": [ { "source": "outer_key.inner_key", "delimiter": "_" } ] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key": [ "inner", "value" ] } }

範例 2

在 上分割字串的分隔符號長度可以是多個字元。

採用下列範例日誌事件:

{ "outer_key": { "inner_key": "item1, item2, item3" } }

轉換器組態如下所示:

[ { "parseJSON": {} }, { "splitString": { "entries": [ { "source": "outer_key.inner_key", "delimiter": ", " } ] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key": [ "item1", "item2", "item3" ] } }

substituteString

substituteString 處理器是一種字串變動處理器,會將索引鍵的值與規則表達式比對,並以取代字串取代所有比對。

欄位 描述 是否為必要? 預設 限制

項目

項目陣列。陣列中的每個項目必須包含 sourcefromto 欄位。

項目上限:10

source

要修改的欄位索引鍵

長度上限:128

巢狀金鑰深度上限:3

from

要取代的規則表達式字串。使用雙引號時必須使用 \\ 逸出 【 和 】 等特殊規則運算式字元,使用單引號時或從 設定時必須使用 \ 逸出 AWS 管理主控台。如需詳細資訊,請參閱 Oracle 網站上的類別模式

您可以在 中包裝模式(...),以建立編號的擷取群組,並建立可在 to 欄位中參考的(?P<group_name>...)具名擷取群組。

長度上限:128

每個擷取群組的 from Backreference 配對,都可以使用要取代的字串。將 $n 格式用於編號群組,例如 $1,並將 ${group_name}用於具名群組,例如 ${my_group}。>

長度上限:128

最大反引數數:10

重複的反向參考數目上限:2

範例 1

採用下列範例日誌事件:

{ "outer_key": { "inner_key1": "[]", "inner_key2": "123-345-567", "inner_key3": "A cat takes a catnap." } }

轉換器組態是這樣,使用 substituteString搭配 parseJSON

[ { "parseJSON": {} }, { "substituteString": { "entries": [ { "source": "outer_key.inner_key1", "from": "\\[\\]", "to": "value1" }, { "source": "outer_key.inner_key2", "from": "[0-9]{3}-[0-9]{3}-[0-9]{3}", "to": "xxx-xxx-xxx" }, { "source": "outer_key.inner_key3", "from": "cat", "to": "dog" } ] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key1": "value1", "inner_key2": "xxx-xxx-xxx", "inner_key3": "A dog takes a dognap." } }

範例 2

採用下列範例日誌事件:

{ "outer_key": { "inner_key1": "Tom, Dick, and Harry", "inner_key2": "arn:aws:sts::123456789012:assumed-role/MyImportantRole/MySession" } }

轉換器組態是這樣,使用 substituteString搭配 parseJSON

[ { "parseJSON": {} }, { "substituteString": { "entries": [ { "source": "outer_key.inner_key1", "from": "(\w+), (\w+), and (\w+)", "to": "$1 and $3" }, { "source": "outer_key.inner_key2", "from": "^arn:aws:sts::(?P<account_id>\\d{12}):assumed-role/(?P<role_name>[\\w+=,.@-]+)/(?P<role_session_name>[\\w+=,.@-]+)$", "to": "${account_id}:${role_name}:${role_session_name}" } ] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key1": "Tom and Harry", "inner_key2": "123456789012:MyImportantRole:MySession" } }

trimString

trimString 處理器會從金鑰的開頭和結尾移除空格。

欄位 描述 是否為必要? 預設 限制

withKeys

要修剪的金鑰清單

項目上限:10

範例

採用下列範例日誌事件:

{ "outer_key": { "inner_key": " inner_value " } }

轉換器組態是這樣,使用 trimString搭配 parseJSON

[ { "parseJSON": {} }, { "trimString": { "withKeys":["outer_key.inner_key"] } } ]

轉換的日誌事件如下。

{ "outer_key": { "inner_key": "inner_value" } }