Как настроить слой для пакета node-oracledb в среде AWS лямбда? - PullRequest
0 голосов
/ 28 июня 2019

Я хочу подключиться к базе данных оракула, размещенной в RDS, во время выполнения aws lambda nodejs. после исследования я обнаружил, что мне нужно скачать пакет node-oracledb и создать слой для модуля узла и двоичных файлов lib. поэтому я создал структуру папок, как показано ниже, папку zip и загрузил ее в слой aws и прикрепил слой к лямбде, однако я получаю "errorMessage": "Cannot find module 'oracledb' любую подсказку, почему узлу AWS не удается найти модуль ?, спасибо

Lambda-Layer-1(version 1)
|
|__lib
|     |__libaio.so.1
|     |__libclntsh.so.12.1
|     |__libclntschcore.so.12.1
|     |__libipc1.so
|     |__libmql1.so
|     |__libnnz12.so
|     |__libociicus.so
|     |__libons.so
|
|__nodejs
      |
      |__node_modules
               |
               |__oracledb

Ошибка от лямбды:

  "errorMessage": "Cannot find module 'oracledb'",
  "errorType": "Error",
  "stackTrace": [
    "Module.require (module.js:596:17)",
    "require (internal/module.js:11:18)",
    "Object.<anonymous> (/var/task/src/services/oracleDb.service.js:10:18)",
    "Module._compile (module.js:652:30)",
    "Object.Module._extensions..js (module.js:663:10)",
    "Module.load (module.js:565:32)",



AWS runtime: 
Nodejs:8.10 
node-oracledb:"3.1.2"

код:

 const oracledb = require("oracledb");
  let connection;
    static async init() {
        try {
            if (!connection) {
                const connectionAtrribute = {
                    connectionString: 'uat-*******',
                    password: '*******',
                    user: '*******'
                };
                connection = await oracledb.getConnection(connectionAtrribute);
            }
        }
        catch (error) {
            console.log('ERROR', JSON.stringify(error));
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...