

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 文字列ミューテーションプロセッサ
<a name="CloudWatch-Logs-Transformation-StringMutate"></a>

このセクションでは、ログイベントトランスフォーマーで使用できる文字列ミューテーションプロセッサについて説明します。

**Contents**
+ [lowerCaseString](#CloudWatch-Logs-Transformation-lowerCaseString)
+ [upperCaseString](#CloudWatch-Logs-Transformation-upperCaseString)
+ [splitString](#CloudWatch-Logs-Transformation-splitString)
+ [substituteString](#CloudWatch-Logs-Transformation-substituteString)
+ [trimString](#CloudWatch-Logs-Transformation-trimString)

## lowerCaseString
<a name="CloudWatch-Logs-Transformation-lowerCaseString"></a>

`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
<a name="CloudWatch-Logs-Transformation-upperCaseString"></a>

`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
<a name="CloudWatch-Logs-Transformation-splitString"></a>

`splitString` プロセッサは、区切り文字を使用してフィールドを配列に分割する文字列ミューテーションプロセッサの一種です。


| フィールド | 説明 | 必須? | デフォルト | 制限 | 
| --- | --- | --- | --- | --- | 
| エントリ | エントリの配列。配列内の各項目には、source フィールドと delimiter フィールドが含まれている必要があります。 | はい |  | 最大エントリ: 10 | 
| ソース | 分割するフィールド値のキー | はい |  | 最大長: 128 | 
| delimiter | フィールド値を分割する区切り文字の文字列 | はい |  | 最大長: 128 | 

**例 1**

ログイベントの例を以下に示します。

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

トランスフォーマーの設定は次のようになります。`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
<a name="CloudWatch-Logs-Transformation-substituteString"></a>

`substituteString` プロセッサは文字列ミューテーションプロセッサの一種で、キーの値を正規表現と照合し、すべての一致を置換文字列に置き換えます。


| フィールド | 説明 | 必須? | デフォルト | 制限 | 
| --- | --- | --- | --- | --- | 
| エントリ | エントリの配列。配列内の各項目には、source、from、to フィールドが含まれている必要があります。 | はい |  | 最大エントリ: 10 | 
| ソース | 変更するフィールドのキー | はい |  | 最大長: 128<br />ネストされたキーの最大深度: 3 | 
| 送信元 | 置き換える正規表現の文字列。[and] などの特殊な正規表現文字は、二重引用符を使用する場合は \\\\、一重引用符を使用する場合や AWS マネジメントコンソールから設定する場合は \\ を使用してエスケープする必要があります。詳細については、Oracle のウェブサイトの「[ Class Pattern](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html) 」を参照してください。<br />パターンを `(...)` でラップして番号付きキャプチャグループを作成し、`to` フィールドで参照できる `(?P<group_name>...)` の名前付きキャプチャグループを作成できます。 | はい |  | 最大長: 128 | 
| まで | キャプチャグループへの from バックリファレンスの一致ごとに置き換えられる文字列を使用できます。$1 などの番号付きグループには $n という形式を使用し、${my\_group}.> などの名前付きグループには ${group\_name} を使用します。 | はい |  | 最大長: 128<br />バックリファレンスの最大数: 10<br />重複するバックリファレンスの最大数: 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
<a name="CloudWatch-Logs-Transformation-trimString"></a>

`trimString` プロセッサは、キーの先頭と末尾から空白を削除します。


| フィールド | 説明 | 必須? | デフォルト | 制限 | 
| --- | --- | --- | --- | --- | 
| withKeys | キーのリストをトリムするには | はい |  | 最大エントリ: 10 | 

**例**

ログイベントの例を以下に示します。

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

トランスフォーマーの設定は次のようになります。`trimString` と `parseJSON` を併用します。

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

変換されたログイベントは次のとおりです。

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