

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

# 轉換處理器
<a name="transformation-processors"></a>

轉換處理器透過新增、複製、移動或移除欄位來修改日誌事件的結構。

## add\_entries 處理器
<a name="add-entries-processor"></a>

將靜態金鑰/值對新增至日誌事件。最多可將 1 個`add_entries`處理器新增至管道。

**Configuration**  
使用下列參數設定 add\_entries 處理器：

```
processor:
  - add_entries:
      entries:
        - key: "environment"
          value: "production"
          overwrite_if_key_exists: false
```Parameters

`entries` (必要)  
要新增至每個日誌事件的鍵/值對陣列。

`entries[].key` (必要)  
要新增至日誌事件的欄位名稱。支援使用點表示法的巢狀欄位。

`entries[].value` (必要)  
要指派給金鑰的靜態值。

`entries[].overwrite_if_key_exists` (選用)  
決定金鑰已存在時行為的布林值旗標。預設為 false。

`when` (選用)  
處理器層級條件式表達式。指定時，如果表達式評估為 false，則會略過整個處理器。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when` (選用)  
入門級條件式表達式。指定時，如果表達式評估為 false，則只會略過此項目。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when_else` (選用)  
只有在相同處理器中沒有其他`when`條件相符時，才會執行的備用項目。表達式值可識別要考慮`when`的條件。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

## copy\_values 處理器
<a name="copy-values-processor"></a>

將值從一個欄位複製到另一個欄位。最多可將 1 個`copy_values`處理器新增至管道。

**Configuration**  
使用下列參數設定 copy\_values 處理器：

```
processor:
  - copy_values:
      entries:
        - from_key: "user_id"
          to_key: "backup_user"
          overwrite_if_to_key_exists: false
```Parameters

`entries` (必要)  
在每個日誌事件上執行的複製操作陣列。

`entries[].from_key` (必要)  
要從中複製值的欄位名稱。將點表示法用於巢狀欄位。

`entries[].to_key` (必要)  
要複製值的欄位名稱。如果使用點表示法，則會建立巢狀結構。

`entries[].overwrite_if_to_key_exists` (選用)  
當目標欄位已存在時，控制行為的布林值旗標。預設為 false。

`when` (選用)  
處理器層級條件式表達式。指定時，如果表達式評估為 false，則會略過整個處理器。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when` (選用)  
入門級條件式表達式。指定時，如果表達式評估為 false，則只會略過此項目。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when_else` (選用)  
只有在相同處理器中沒有其他`when`條件相符時，才會執行的備用項目。表達式值可識別要考慮`when`的條件。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

## delete\_entries 處理器
<a name="delete-entries-processor"></a>

從日誌事件中移除指定的欄位。

**Configuration**  
使用下列參數設定 delete\_entries 處理器：

```
processor:
  - delete_entries:
      with_keys: ["temp_field", "debug_info"]
```Parameters

`with_keys` (必要)  
要從每個日誌事件中移除的欄位名稱陣列。支援使用點符號刪除巢狀欄位。

`when` (選用)  
決定此處理器是否執行的條件式表達式。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

## move\_keys 處理器
<a name="move-keys-processor"></a>

將欄位從一個位置移至另一個位置。

**Configuration**  
使用下列參數設定 move\_keys 處理器：

```
processor:
  - move_keys:
      entries:
        - from_key: "old_field"
          to_key: "new_field"
          overwrite_if_to_key_exists: true
```Parameters

`entries` (必要)  
移動操作陣列。最多 5 個項目。

`entries[].from_key` (必要)  
來源欄位名稱。最多 128 個字元。

`entries[].to_key` (必要)  
目標欄位名稱。最多 128 個字元。

`entries[].overwrite_if_to_key_exists` (選用)  
是否覆寫現有的目標欄位。

`when` (選用)  
處理器層級條件式表達式。指定時，如果表達式評估為 false，則會略過整個處理器。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when` (選用)  
入門級條件式表達式。指定時，如果表達式評估為 false，則只會略過此項目。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

`entries[].when_else` (選用)  
只有在相同處理器中沒有其他`when`條件相符時，才會執行的備用項目。表達式值可識別要考慮`when`的條件。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。

## 平面處理器
<a name="flatten-processor"></a>

扁平化巢狀物件結構。

**Configuration**  
使用下列參數設定平面處理器：

```
processor:
  - flatten:
      source: "metadata"
      target: "flattened"
      remove_processed_fields: true
      exclude_keys: ["sensitive_data"]
```Parameters

`source` (必要)  
包含要扁平化之巢狀物件的欄位。

`target` (必要)  
扁平化金鑰的目標欄位字首。

`remove_processed_fields` (選用)  
是否在平面化後移除原始巢狀欄位。

`exclude_keys` (選用)  
要從平面化中排除的索引鍵陣列。最多 20 個金鑰，每個最多 128 個字元。

`when` (選用)  
決定此處理器是否執行的條件式表達式。長度上限為 256 個字元。請參閱 [條件式處理的表達式語法](conditional-processing.md)。