Как правильно развернуть лямбда-слои с помощью Serverless Framework - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь настроить и развернуть некоторые слои в AWS с использованием Serverless Framework.
Структура каталога, в котором находятся файлы для слоев, выглядит следующим образом:

lambda-layers
    |
    | - test-layers
         |
         | - nodejs
         |      | - index.js
         |      | - test.js
         |
         | - serverless.yml   

My Файл serverless.yml выглядит следующим образом

service: test-layers

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: region

layers:
  TestLayer:
    path: nodejs

Я запускаю sls deploy и вижу, что слой развернут, но когда я пытаюсь получить доступ к функциям из файлов в слое в моей Lambda, вот так:
const index = require('/opt/nodejs/index');
Мой Lambda аварийно завершает работу и жалуется, что индексный модуль не существует.

Когда я архивирую содержимое слоя и загружаю его вручную в AWS, все работает нормально.


Вещи, которые я пробовал:
- Перемещение serverless.yml в каталог nodejs и его развертывание оттуда, но это выдает мне следующую ошибку:
No file matches include / exclude patterns

1 Ответ

1 голос
/ 07 апреля 2020

Наконец-то выяснил, что я делаю не так. В вышеуказанной конфигурации нет ничего плохого, моя ошибка была в том, что мне потребовались файлы из слоев.
Вместо этого:
const index = require('/opt/nodejs/index');
Я должен сделать это:
const index = require('/opt/index');

...