AWS Лямбда - Ошибка: не удается найти модуль 'uuid / v4' - PullRequest
1 голос
/ 10 марта 2020

Я получаю эту ошибку при попытке использовать модуль UUID в AWS лямбда JavaScript коде.

Error: Cannot find module 'uuid/v4'

Я не использую AWSCLI или NPM, вместо этого я использую AWS Лямбда-панель для создания Лямбда-функций в JavaScript.

const AWS = require('aws-sdk');
const AWSUUID = require('uuid/v4');
const AWSGamelift = new AWS.GameLift();

exports.handler = async (event) => 
{
 //...

Я непрерывно искал в Google, пытаясь найти способ заставить работать модуль UUID. Я не хочу настраивать и использовать среду NPM.

Существует ли какой-либо метод на панели управления Lambda AWS для предоставления доступа к модулю UUID для лямбда-кода?

Ответы [ 2 ]

2 голосов
/ 10 марта 2020

Вам необходимо установить uuid пакет. uuid недавно сделал критическое изменение , как вы его используете. Новый способ -

const {"v4": uuidv4} = require('uuid');

Надеюсь, это поможет.

0 голосов
/ 10 марта 2020

AWS Lambda Layers - опция для этого, если мы не хотим настраивать npm среду.

Создайте новый слой для вашей функции из Lambda с консоли AWS и загрузите zip-файл каталога node_modules, содержащего пакет uuid npm.

Несколько вещей, которые нужно запомнить сделать эту работу:

  1. Структура каталога должна поддерживаться в соответствии с AWS документацией https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration -layers-path

enter image description here

Это важно, иначе лямбда-функция не распознает пакеты.

Роль IAM вашей функции Lambda должна иметь lambda:GetLayerVersion разрешение на действие, иначе возникнет проблема с отсутствующим пакетом. Это снова ясно объяснено в документации, упомянутой выше.

Как только это будет сделано, вы можете выполнить свой код. Пример ответа

enter image description here

nodejs Структура папок выглядит следующим образом

enter image description here

...