Skip to Content
Yoga
DocumentationIntegrationsAWS Lambda

Integration with AWS Lambda

AWS Lambda is a serverless computing platform that makes it easy to build applications that run on the AWS cloud. GraphQL Yoga is platform agnostic so they can fit together easily.

Installation

npm i aws-lambda graphql-yoga graphql

Example

graphql.ts
import { APIGatewayEvent, APIGatewayProxyResult, Context } from 'aws-lambda' import { createSchema, createYoga } from 'graphql-yoga' const yoga = createYoga<{ event: APIGatewayEvent lambdaContext: Context }>({ // You need to specify the path to your lambda function graphqlEndpoint: '/my-lambda', schema: createSchema({ typeDefs: /* GraphQL */ ` type Query { greetings: String } `, resolvers: { Query: { greetings: () => 'This is the `greetings` field of the root `Query` type' } } }) }) export async function handler( event: APIGatewayEvent, lambdaContext: Context ): Promise<APIGatewayProxyResult> { const response = await yoga.fetch( event.path + '?' + new URLSearchParams((event.queryStringParameters as Record<string, string>) || {}).toString(), { method: event.httpMethod, headers: event.headers as HeadersInit, body: event.body ? Buffer.from(event.body, event.isBase64Encoded ? 'base64' : 'utf8') : undefined }, { event, lambdaContext } ) const responseHeaders = Object.fromEntries(response.headers.entries()) return { statusCode: response.status, headers: responseHeaders, body: await response.text(), isBase64Encoded: false } }

You can also check a full example on our GitHub repository here.

Last updated on