

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据类型转换器处理器
<a name="CloudWatch-Logs-Transformation-Datatype"></a>

本节包含有关可与日志事件转换器配合使用的数据类型转换器处理器的信息。

**Contents**
+ [typeConverter](#CloudWatch-Logs-Transformation-typeConverter)
+ [datetimeConverter](#CloudWatch-Logs-Transformation-datetimeConverter)

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

使用 `typeConverter` 处理器可以将与指定的键关联的值类型转换为指定的类型。它是一个转换处理器，可以更改指定字段的类型。值可以转换为以下数据类型之一：`integer`、`double`、`string` 和 `boolean`。


| 字段 | 说明 | 必填？ | 默认 | 限制 | 
| --- | --- | --- | --- | --- | 
|  entries | 条目数组。数组中的每个项目都必须包含 key 和 type 字段。 |  是 |  |  最多条目数：10 | 
|  键 | 要转换为其他类型的键和值 |  是 |  |  最大长度：128 最大嵌套键深度：3 | 
|  类型 | 要转换为的类型。有效值包括 integer、double、string 和 boolean。 |  是 |  |  | 

**示例**

以以下日志事件为例：

```
{
    "name": "value",
    "status": "200"
}
```

转换器配置如下，将 `typeConverter` 和 `parseJSON` 结合使用：

```
[
    {
        "parseJSON": {}
    },
    {
        "typeConverter": {
            "entries": [
                {
                    "key": "status",
                    "type": "integer"
                }
            ]
        }
    }
]
```

转换后的日志事件将如下所示。

```
{
    "name": "value",
    "status": 200
}
```

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

使用 `datetimeConverter` 处理器可以将日期时间字符串转换为您指定的格式。


| 字段 | 说明 | 必填？ | 默认 | 限制 | 
| --- | --- | --- | --- | --- | 
|  source | 对其应用日期转换的键。 |  是 |  |  最多条目数：10 | 
|  matchPatterns | 与 source 字段匹配的模式列表 |  是 |  |  最多条目数：5 | 
|  target | 用于存储结果的 JSON 字段。 |  是 |  |  最大长度：128 最大嵌套键深度：3 | 
|  targetFormat | 用于目标字段中的转换后数据的日期时间格式。 |  否 | ` yyyy-MM-dd'T'HH:mm:ss.SSS'Z` |  最大长度：64 | 
|  sourceTimezone | 源字段的时区。 有关可能值的列表，请参阅 [Java Supported Zone Ids and Offsets](https://howtodoinjava.com/java/date-time/supported-zone-ids-offsets/#3-java-supported-zone-ids-and-offsets)。 |  否 | UTC |  最小长度：1 | 
|  目标时区 | 目标字段的时区。 有关可能值的列表，请参阅 [Java Supported Zone Ids and Offsets](https://howtodoinjava.com/java/date-time/supported-zone-ids-offsets/#3-java-supported-zone-ids-and-offsets)。 |  否 | UTC |  最小长度：1 | 
|  locale | 源字段的区域设置。 有关可能值的列表，请参阅 [Java 中的 Locale getAvailableLocales () 方法和示例](https://www.geeksforgeeks.org/locale-getavailablelocales-method-in-java-with-examples/)。 |  是 |  |  最小长度：1 | 

**示例**

以以下日志事件为例：

```
{"german_datetime": "Samstag 05. Dezember 1998 11:00:00"}
```

转换器配置如下，将 `dateTimeConverter` 和 `parseJSON` 结合使用：

```
[
    {
        "parseJSON": {}
    },
    {
        "dateTimeConverter": {
            "source": "german_datetime",
            "target": "target_1",
            "locale": "de",
            "matchPatterns": ["EEEE dd. MMMM yyyy HH:mm:ss"],
            "sourceTimezone": "Europe/Berlin",
            "targetTimezone": "America/New_York",
            "targetFormat": "yyyy-MM-dd'T'HH:mm:ss z"
        }
    }
]
```

转换后的日志事件将如下所示。

```
{
    "german_datetime": "Samstag 05. Dezember 1998 11:00:00",
    "target_1": "1998-12-05T17:00:00 MEZ"
}
```