узел-JQ на AWS Лямбда SIGSEGV - PullRequest
0 голосов
/ 13 марта 2019

Я запустил скрипт, который использует node-jq.Мне пришлось понизить упакованный двоичный файл jq до версии 1.5, потому что я получил GLIBC_2.23 not found

На образе док-станции lambci, он работает нормально.

Я попытался запустить его на AWS Lambda,и он добавляет часть childProcess.spawn без вывода:

https://github.com/sanack/node-jq/blob/master/src/exec.js#L27

import childProcess from 'child_process'
import stripEof from 'strip-eof'

const TEN_MEBIBYTE = 1024 * 1024 * 10

const exec = (command, args) => {
  return new Promise((resolve, reject) => {
    var stdout = ''
    var stderr = ''

    const process = childProcess.spawn(
      command,
      args,
      { maxBuffer: TEN_MEBIBYTE }
    )

    process.stdout.on('data', (data) => {
      stdout += data
    })

    process.stderr.on('data', (data) => {
      stderr += data
    })

    process.on('close', (code) => {
      if (code !== 0) {
        return reject(Error(stderr))
      } else {
        return resolve(stripEof(stdout))
      }
    })
  })
}

export default exec

Я добавил эту строку:

process.on('exit', (code, signal) => {
      console.log('exit');
      resolve({ code, signal, stdout, stderr });
});

и получил это:

2019-03-13T01:17:48.810Z    350a83b3-2f1f-437d-91dc-4dfcdb1b362f    { code: null, signal: 'SIGSEGV', stdout: '', stderr: '' }

Поможет ли выполнение jq из источника?https://github.com/stedolan/jq/issues/1598

...