我的代码,
index.js ........................
import { ApolloServer } from '@apollo/server';
import { startServerAndCreateLambdaHandler, handlers, middleware } from '@as-integrations/aws-lambda';
const typeDefs = `#graphql
type Query {
hello: String!
}
`;
const resolvers = {
Query: {
hello: () => 'world',
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
});
const graphqlHandler = startServerAndCreateLambdaHandler(
server,
handlers.createAPIGatewayProxyEventV2RequestHandler(),
{
middleware: [
async (event) => {
console.log('###? received event=' + JSON.stringify(event))
}
]
}
);
export { graphqlHandler as handler }
无服务器.yml ........................
service: apollo-lambda
provider:
name: aws
runtime: nodejs16.x
httpApi:
cors: true
functions:
graphql:
handler: src/server.handler
events:
- httpApi:
path: /cep
method: POST
- httpApi:
path: /cep
method: GET
plugins:
- serverless-offline
package.json ................................
"dependencies": {
"@apollo/server": "^4.9.5",
"@as-integrations/aws-lambda": "^3.1.0",
"graphql": "^16.8.1"
},
"devDependencies": {
"@types/node": "^20.8.10",
"serverless-offline": "^13.2.0"
}
部署到 AWS Lambda 并访问端点后,抛出以下错误。代码打包为 .zip 文件并通过 AWS 控制台手动部署到 Lambda。
Cannot read properties of undefined (reading 'method')
可能是什么问题?
我发现 es6 导出与无服务器很敏感。尝试:
exports.handler = graphqlHandler
在
index.js