Recibo este error cuando intento usar el módulo UUID en el código JavaScript de AWS Lambda.
Error: Cannot find module 'uuid/v4'No estoy usando AWSCLI o NPM, en su lugar estoy usando el tablero de AWS Lambda para crear las funciones de Lambda en JavaScript.
const AWS = require('aws-sdk'); const AWSUUID = require('uuid/v4'); const AWSGamelift = new AWS.GameLift(); exports.handler = async (event) => { //...He estado buscando en Google sin parar tratando de encontrar una manera de hacer que el Módulo UUID funcione. No quiero tener que configurar y usar un entorno NPM.
¿Existe algún método en el panel de AWS Lambda para brindar acceso al módulo UUID para el código Lambda?
Necesita instalar el paquete uuid . uuid recientemente hizo un cambio radical , la forma en que lo usa. nueva forma es
const {"v4": uuidv4} = require('uuid');Espero que esto ayude.
AWS Lambda Layers es una opción para esto si no queremos configurar ningún entorno npm.
Cree una nueva capa para su función de Lambda desde la consola de AWS y cargue el archivo zip del directorio node_modules que contiene el paquete uuid npm.
Algunas cosas para recordar para que esto funcione:
Esto es importante, de lo contrario, la función Lambda no reconocerá los paquetes.
lambda:GetLayerVersion contrario, surgirá un problema con el paquete faltante. Esto se explica claramente en la documentación mencionada anteriormente.Una vez hecho esto, puede ejecutar su código. Ejemplo de respuesta
La estructura de carpetas de nodejs es la siguiente
navegue a ese archivo y mire alrededor de la línea número 3 en node_modules/expo-constants/exponentConstants.web.js
import uuidv4 from 'uuid/v4y cambiarlo a:
import {v4 as uuidv4} from 'uuid';Este error ocurre debido a la estructura de archivos en node_modules/uuid, si observa, ya no hay un uuidv4 para importar y en su lugar exportan un v4. Podría cambiar todos los lugares donde los desarrolladores escribieron uuidv4 a v4, pero usando la sintaxis {this as that} no tiene que volver a escribir un montón de código.