Произошло исключение Ruby: неявное преобразование строки в целое число в фильтре рубинов Logstash - PullRequest
0 голосов
/ 10 октября 2018

Я получаю ошибки Logstash:

[2018-10-10T17:24:11,048][ERROR][logstash.filters.ruby    ] Ruby exception occurred: no implicit conversion of String into Integer
[2018-10-10T17:24:11,049][ERROR][logstash.filters.ruby    ] Ruby exception occurred: no implicit conversion of String into Integer
[2018-10-10T17:24:11,047][ERROR][logstash.filters.ruby    ] Ruby exception occurred: no implicit conversion of String into Integer

Мой ввод:

"files": [{
        "SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
        "MD5": "7D332F11DD7389C8121AA523F07CFEEC",
        "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
    }, {
        "SHA256": "1213447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
        "MD5": "7D332F11DD7389C8121AA523F07CFEEC",
        "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
    }, {
        "SHA256": "1212447D713ECA24484983E754474D9D2F4A283D77DDBD9C8084CD7AA0574ACF",
        "MD5": "7D332F11DD7389C8121AA523F07CFEEC",
        "SHA1": "6026B28C6049115272138AD357A5AF67B99354A5"
    }
]

Мой код:

a = event.get("files"); event.set("files_md5", a.map { |e| e["MD5"]

Код выполняет преобразованиевходные данные выше:

"files":["7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC","7D332F11DD7389C8121AA523F07CFEEC"]

Данные не удаляются из-за этих ошибок, однако я бы не хотел их иметь.Я пытался:

a = event.get("files"); event.set("files_md5", a.map { |e| e["MD5"].to_i 

Есть ли способ правильно выполнить неявное преобразование в этом случае?Помощь очень ценится.

...