Слой AWS: добавление пути "/ opt /" при использовании слоя Nodejs - PullRequest
2 голосов
/ 02 мая 2019

Итак, я загрузил этот слой в AWS, используя Serverless Framework:

service: webstorm-layer

 provider:
   name: aws
   runtime: nodejs8.10
   region: us-east-1

layers:
  nodejs:
   path: nodejs                    # path to contents on disk
   name: node-webstormlibs         # optional, Deployed Lambda layer name
   description: JS shared libs for node
   compatibleRuntimes:
     - nodejs8.10
   allowedAccounts:
     - '*'

Нужные мне библиотеки находятся в каталоге "nodejs", там лежит мой файл packages.json и все каталоги "node_modules",Пока все выглядит хорошо, но когда я пытаюсь запустить лямбду, которая использует слой "node-webstormlibs", я получаю сообщение:

"errorMessage": "Cannot find module 'pg'",

Модуль pg фактически существует в zip-файле, которыйсоздает слой.Затем у меня есть сомнения по поводу того, как импортировать модуль, который находится внутри слоя.В некоторых уроках я вижу:

import pg from "pg";

как всегда, но в других я вижу:

 import pg from "/opt/pg";

или даже:

 import pg from "/opt/nodejs/node_modules/pg";

Я не знаюесли опция "path:" в моем serverless.yml верна, хотя.

На сервере путь:

NODE_PATH=/opt/nodejs/node8/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules

ОБНОВЛЕНИЕ

Поместив все в dir / nodejs / node8, сделал свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...