Serverless-webpack: Runtime.ImportModuleError: Error: Cannot find module 'getPlayerPoints'

64 Views Asked by At

I have created a serverless app with some APIs to insert and fetch data from dynamoDB. When I'm running app without serverless-webpack it's running fine but when I add plugin serverless-webpack, APIs are giving below error:

GET /dev/get-player-score/%7BID%7D (λ: getPlayerScore) × Unhandled exception in handler 'getPlayerScore'. × Runtime.ImportModuleError: Error: Cannot find module 'getPlayerPoints' Require stack: - C:\Users\user\Desktop\serverless_project\aws-node-project\node_modules\serverless-offline\src\lambda\handler-runner\in-process-runner\aws-lambda-ric\UserFunction.js at _loadUserApp (C:\Users\user\Desktop\serverless_project\aws-node-project\node_modules\serverless-offline\src\lambda\handler-runner\in-process-runner\aws-lambda-ric\UserFunction.js:310:15) at async module.exports.load (C:\Users\user\Desktop\serverless_project\aws-node-project\node_modules\serverless-offline\src\lambda\handler-runner\in-process-runner\aws-lambda-ric\UserFunction.js:341:21) at async InProcessRunner.run (file:///C:/Users/user/Desktop/serverless_project/aws-node-project/node_modules/serverless-offline/src/lambda/handler-runner/in-process-runner/InProcessRunner.js:41:21) at async MessagePort. (file:///C:/Users/user/Desktop/serverless_project/aws-node-project/node_modules/serverless-offline/src/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js:24:14) × Error: Cannot find module 'getPlayerPoints' Require stack: - C:\Users\user\Desktop\serverless_project\aws-node-project\node_modules\serverless-offline\src\lambda\handler-runner\in-process-runner\aws-lambda-ric\UserFunction.js

serverless.yaml file:

    service: aws-node-project
frameworkVersion: '3'

provider:
  name: aws
  runtime: nodejs18.x
  stage: dev
  environment:
      tableName: ${self:custom.tableName}
  iamRoleStatements:
      - Effect: Allow
        Action:
            - dynamodb:*
        Resource: '*'

plugins:
    - serverless-s3-sync
    - serverless-offline
    - serverless-webpack

package:
    individually: true

custom:
    tableName: player-points
    s3Sync:
        - bucketName: testbucket-123efgh
          localDir: UploadData  
    serverless-offline:
      lambdaPort: 4000
functions:
  getUser:
    handler: src/lambdas/endpoints/getUser.handler
    events:
      - http:
            path: get-user/{ID}
            method: GET
  
  getPlayerScore:
    handler: src/lambdas/endpoints/getPlayerPoints.handler
    events:
      - http:
            path: get-player-score/{ID}
            method: GET
  createPlayerScore:
    handler: src/lambdas/endpoints/createPlayerPoints.handler
    events:
      - http:
            path: create-player-score/{ID}
            method: POST

resources:
  Resources:
    TestBucketUpload:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: testbucket-123efgh
    MyDynamoTable:
      Type: AWS::DynamoDB::Table
      Properties:
          TableName: ${self:custom.tableName}
          AttributeDefinitions:
              - AttributeName: ID
                AttributeType: S
          KeySchema:
              - AttributeName: ID
                KeyType: HASH
          BillingMode: PAY_PER_REQUEST

getPlayerPoints.js

    const Responses = require('../common/API_responses');
const Dynamo = require('../common/Dynamo');

const tableName = process.env.tableName;
exports.handler = async event => {
    console.log('event',event);

    if(!event.pathParameters || !event.pathParameters.ID){
        console.log("responses",Responses);
        return Responses._404({message: "failed as ID not in data"})   
    }

    let ID = event.pathParameters.ID;

    const user = await Dynamo.get(ID,tableName).catch(err =>{
        console.log('error in Dynamo get',err);
        return null;
    });
    console.log("reached",user);
    if(!user){
        return Responses._404({message:"not found"}); 
    }

    return Responses._200({"message":`found data with ID - ${user.ID}`})
}

Please help with the same.

0

There are 0 best solutions below