简体   繁体   中英

Cannot Find Module using Serverless and apollo-server-lambda/graphql

I am trying to hit my graph endpoint to get the playground to pop up in my browser. The server shows from serverless that it is running by presenting me with the below figure when I do an npm start .

无服务器终端显示

However, when I actually go to click on that link it gives me a 502 and spits out the following error in my terminal:

``offline: ANY /dev/graphql (λ: graphql)
offline: Failure: Cannot find module '/Users/aroe/Desktop/projects/test-serverless-backend/src/functions/graph/graphql'
Require stack:
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/handler-runner/index.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/LambdaFunction.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/Lambda.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/lambda/index.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/ServerlessOffline.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/index.js
 - /Users/aroe/Desktop/projects/test-serverless-backend/node_modules/serverless-offline/dist/main.js
 - /opt/homebrew/lib/node_modules/serverless/lib/classes/PluginManager.js
 - /opt/homebrew/lib/node_modules/serverless/lib/Serverless.js
 - /opt/homebrew/lib/node_modules/serverless/scripts/serverless.js
 - /opt/homebrew/lib/node_modules/serverless/bin/serverless.js
 ``

I believe it is telling me that it can't find my lambda reference in my serverless.yml file BUT, the path I set is correct as shown here:

service: gamitrak-backend # service name
provider:
  name: aws # deploy to AWS
  runtime: nodejs12.x
  versionFunctions: false # disable function versioning
  region: us-west-2 # AWS region
  apiGateway:
    shouldStartNameWithService: true

functions:
  graphql:
    handler: src/functions/graph/graphql.graphqlHandler # Lambda handler path
    events:
      - http:
          path: graphql # define Lambda endpoint
          method: any # any HTTP method can access this Lambda
          cors: true # enable CORS
plugins:
  - serverless-offline

Also, here is the graphql.ts file in question for further reference:

 import { ApolloServer, gql } from 'apollo-server-lambda'; import { usersTypeDefs, usersResolvers } from './schema/users'; // get the GraphQL schema // resolver functions const server = new ApolloServer({ typeDefs: usersTypeDefs, resolvers: usersResolvers }); // launch the server when the Lambda is called exports.handler = server.createHandler();

I found a solution I added the following code to my serverless.yml

plugins:
  - serverless-offline
custom:
  serverless-offline:
    noPrependStageInUrl: true

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM