ОБНОВЛЕНИЕ/РЕШЕНО ... проблема заключалась в том, что плагин pgpass искал $HOME/.pgpass, а $HOME не был определен в лямбда-выражении, что привело к сбою join(undefined, '.pgpass')
. На самом деле не стоит приписывать себе ответ на это ....
У меня есть следующий тестовый код в лямбда-обработчике (скомпилирован из машинописного текста):
const db = new Pool()
const {rows} = await db.query('select 1 as x')
console.log('rows', JSON.stringify(rows))
Соединение создается через PGHOST PGPORT PGUSER PGDATABASE в среде. Я знаю, что конфигурация «почти правильная», потому что при первой попытке я получил:
{"errorMessage":"ошибка: нет записи pg_hba.conf для хоста \"10.1.1.249\", пользователя \"foo\", базы данных \"bar\", отключен SSL\n в Connection.parseE (/var/task /handler.js:9209:11)\n в Connection.parseMessage (/var/task/handler.js:9034:19)\n в Socket. (/var/task/handler.js:8777:22)\n в emitOne (events.js:96:13)\n в Socket.emit (events.js:188:7)\n в readableAddChunk (_stream_readable.js:176:18)\n в Socket.Readable.push (_stream_readable. js:134:10)\n в TCP.onread(net.js:547:20)"}
Это казалось обнадеживающим. Я изменил конфигурацию postgres, разрешив доступ из подсети, и повторил попытку. Однако теперь я получаю:
2018-02-06 18:14:21.183 (-05:00) 76761ca5-0b93-11e8-8783-a74d098c9f4a select
2018-02-06 18:14:21.202 (-05:00) 76761ca5-0b93-11e8-8783-a74d098c9f4a TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.join (path.js:1211:7)
at Object.module.exports.getFileName (/var/task/handler.js:32434:16)
at module.exports (/var/task/handler.js:32355:23)
at Connection.<anonymous> (/var/task/handler.js:31255:9)
at emitOne (events.js:96:13)
at Connection.emit (events.js:188:7)
at Socket.<anonymous> (/var/task/handler.js:8781:12)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
END RequestId: 76761ca5-0b93-11e8-8783-a74d098c9f4a
Что здесь происходит? Казалось, что он попал в базу данных и подключился с первого раза... Теперь он не работает на query
. Есть ли какой-то вариант, который я должен использовать?
console.log(process.env.PGHOST)
проверить, установлены ли переменные среды? - person Noel Llevares   schedule 08.02.2018