As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Processadores de mutação do JSON
Esta seção contém informações sobre os processadores de mutação JSON que você pode usar com um transformador de eventos de log.
addKeys
Use o processador addKeys para adicionar novos pares de chave-valor ao evento de logs.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
entries |
Matriz de entradas. Cada item na matriz pode conter os campos key, value e overwriteIfExists. |
Sim |
Máximo de entradas: 5 |
|
|
key |
A chave da nova entrada a ser adicionada |
Sim |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
|
valor |
O valor da nova entrada a ser adicionada |
Sim |
Tamanho máximo = 256 |
|
|
overwriteIfExists |
Se você definir isso como true, o valor existente será substituído se key já existir no evento. O valor padrão é false. |
Não |
false |
Sem limite |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key": { "inner_key": "inner_value" } }
A configuração do transformador é esta, usando addKeys com parseJSON:
[ { "parseJSON": {} }, { "addKeys": { "entries": [ { "source": "outer_key.new_key", "value": "new_value" } ] } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": { "inner_key": "inner_value", "new_key": "new_value" } }
deleteKeys
Use o processador deleteKeys para excluir campos de um evento de logs. Esses campos podem incluir pares de chave-valor.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
withKeys |
Uma lista de chaves a serem excluídas. |
Sim |
Sem limite |
Máximo de entradas: 5 |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key": { "inner_key": "inner_value" } }
A configuração do transformador é esta, usando deleteKeys com parseJSON:
[ { "parseJSON": {} }, { "deleteKeys": { "withKeys":["outer_key.inner_key"] } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": {} }
moveKeys
Use o processador moveKeys para mover uma chave de um campo para outro.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
entries |
Matriz de entradas. Cada item na matriz pode conter os campos source, target e overwriteIfExists. |
Sim |
Máximo de entradas: 5 |
|
|
origem |
A chave a ser movida |
Sim |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
|
target |
A chave a ser movida para |
Sim |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
|
overwriteIfExists |
Se você definir isso como true, o valor existente será substituído se key já existir no evento. O valor padrão é false. |
Não |
false |
Sem limite |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key1": { "inner_key1": "inner_value1" }, "outer_key2": { "inner_key2": "inner_value2" } }
A configuração do transformador é esta, usando moveKeys com parseJSON:
[ { "parseJSON": {} }, { "moveKeys": { "entries": [ { "source": "outer_key1.inner_key1", "target": "outer_key2" } ] } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key1": {}, "outer_key2": { "inner_key2": "inner_value2", "inner_key1": "inner_value1" } }
renameKeys
Use o processador renameKeys para renomear as chaves em um evento de logs.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
entries |
Matriz de entradas. Cada item na matriz pode conter os campos key, target e overwriteIfExists. |
Sim |
Sem limite |
Máximo de entradas: 5 |
|
key |
A chave a ser renomeada |
Sim |
Sem limite |
Tamanho máximo: 128 |
|
target |
O novo nome da chave |
Sim |
Sem limite |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
overwriteIfExists |
Se você definir isso como true, o valor existente será substituído se key já existir no evento. O valor padrão é false. |
Não |
false |
Sem limite |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key": { "inner_key": "inner_value" } }
A configuração do transformador é esta, usando renameKeys com parseJSON:
[ { "parseJSON": {} }, { "renameKeys": { "entries": [ { "key": "outer_key", "target": "new_key" } ] } } ]
O evento de logs transformado seria o seguinte.
{ "new_key": { "inner_key": "inner_value" } }
copyValue
Use o processador copyValue para copiar valores em um evento de logs. Você também pode usar esse processador para adicionar metadados aos eventos de logs, copiando os valores das seguintes chaves de metadados nos eventos de logs:@logGroupName, @logGroupStream, @accountId, @regionName. Isso é ilustrado no exemplo a seguir.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
entries |
Matriz de entradas. Cada item na matriz pode conter os campos source, target e overwriteIfExists. |
Sim |
Máximo de entradas: 5 |
|
|
origem |
A chave a ser copiada |
Sim |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
|
target |
A chave cujo valor será copiado para |
Sim |
Sem limite |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
overwriteIfExists |
Se você definir isso como true, o valor existente será substituído se key já existir no evento. O valor padrão é false. |
Não |
false |
Sem limite |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key": { "inner_key": "inner_value" } }
A configuração do transformador é esta, usando copyValue com parseJSON:
[ { "parseJSON": {} }, { "copyValue": { "entries": [ { "source": "outer_key.new_key", "target": "new_key" }, { "source": "@logGroupName", "target": "log_group_name" }, { "source": "@logGroupStream", "target": "log_group_stream" }, { "source": "@accountId", "target": "account_id" }, { "source": "@regionName", "target": "region_name" } ] } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": { "inner_key": "inner_value" }, "new_key": "inner_value", "log_group_name": "myLogGroupName", "log_group_stream": "myLogStreamName", "account_id": "012345678912", "region_name": "us-east-1" }
listToMap
O processador listToMap pega uma lista de objetos que contêm campos-chave e os converte em um mapa das chaves de destino.
| Campo | Description | Obrigatório? | Padrão | Limites |
|---|---|---|---|---|
|
origem |
A chave no ProcessingEvent com uma lista de objetos que serão convertidos em um mapa |
Sim |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
|
key |
A chave dos campos a serem extraídos como chaves no mapa gerado |
Sim |
Tamanho máximo: 128 |
|
|
valueKey |
Se isso for especificado, os valores especificados nesse parâmetro serão extraídos dos objetos source e colocados nos valores do mapa gerado. Caso contrário, os objetos originais na lista da origem serão colocados nos valores do mapa gerado. |
Não |
Tamanho máximo: 128 |
|
|
target |
A chave do campo que conterá o mapa gerado |
Não |
Nó raiz |
Tamanho máximo: 128 Profundidade máxima de chave aninhada: 3 |
|
nivelamento |
Um valor booleano para indicar se a lista será nivelada em itens únicos ou se os valores no mapa gerado serão listas. Por padrão, os valores das chaves correspondentes serão representados em uma matriz. Defina |
Não |
false |
|
|
flattenedElement |
Se você definir flatten como true, use flattenedElement para especificar qual elemento manter, first ou last. |
Obrigatório quando |
O valor pode ser somente first ou last |
Exemplo
Observe o exemplo de evento de logs a seguir:
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ] }
Transformador para caso de uso 1: flatten é false
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": false } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": [ "val-a" ], "b": [ "val-b1", "val-b2" ], "c": [ "val-c" ] }
Transformador para o caso de uso 2: flatten é true e flattenedElement é first
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "first" } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b1", "c": "val-c" }
Transformador para o caso de uso 3: flatten é true e flattenedElement é last
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "last" } } ]
O evento de logs transformado seria o seguinte.
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b2", "c": "val-c" }