Skip to main content

This package extends the Ariadne library by adding a GraphQL HTTP handler designed for use in AWS Lambda environments.

Project description

Ariadne AWS Lambda Extension

This package extends the Ariadne library by adding a GraphQL HTTP handler designed for use in AWS Lambda environments. It enables easy integration of GraphQL services with AWS serverless infrastructure, making it straightforward to deploy GraphQL APIs without worrying about the underlying server management.

Introduction

This project provides an extension to the Ariadne GraphQL library, specifically tailored for deploying GraphQL APIs on AWS Lambda. It simplifies handling GraphQL requests by providing a custom HTTP handler that seamlessly integrates with the AWS Lambda and API Gateway, allowing developers to focus on their GraphQL schema and resolvers instead of server and infrastructure management.

Installation

To install the extension, use pip:

pip install ariadne-lambda

Quick Start

Here's a basic example of how to use the extension in your AWS Lambda function:

from typing import Any

from ariadne import QueryType, gql, make_executable_schema
from ariadne_lambda.graphql import GraphQLLambda
from asgiref.sync import async_to_sync
from aws_lambda_powertools.utilities.typing import LambdaContext

type_defs = gql(
    """
    type Query {
        hello: String!
    }
"""
)
query = QueryType()


@query.field("hello")
def resolve_hello(_, info):
    request = info.context["request"]
    user_agent = request.headers.get("user-agent", "guest")
    return "Hello, %s!" % user_agent


schema = make_executable_schema(type_defs, query)
graphql_app = GraphQLLambda(schema=schema)


def graphql_http_handler(event: dict[str, Any], context: LambdaContext):
    return async_to_sync(graphql_app)(event, context)

Documentation

For full documentation on Ariadne, visit Ariadne's Documentation. For details on AWS Lambda, refer to the AWS Lambda Developer Guide.

Features

  • Easy integration with AWS Lambda and API Gateway.
  • Support for GraphQL queries and mutations.
  • Customizable context and error handling.
  • Seamless extension of the Ariadne library for serverless applications.

Contributing

We welcome all contributions to Ariadne! If you've found a bug or issue, feel free to use GitHub issues. If you have any questions or feedback, don't hesitate to catch us on GitHub discussions.

For guidance and instructions, please see CONTRIBUTING.md.

Also make sure you follow @AriadneGraphQL on Twitter for latest updates, news and random musings!

Crafted with ❤️ by Mirumee Software hello@mirumee.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ariadne_lambda-0.3.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

ariadne_lambda-0.3.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file ariadne_lambda-0.3.1.tar.gz.

File metadata

  • Download URL: ariadne_lambda-0.3.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for ariadne_lambda-0.3.1.tar.gz
Algorithm Hash digest
SHA256 92ebc4a38f7477ecf69d9ad198604777457a5bc523821778485a15ec8a3edb64
MD5 22e04492277a9b402480ddb16aa6f508
BLAKE2b-256 4955fe45caeff6457c34bd0d94c797eff1b0701c781183000d2951d25ab0aa20

See more details on using hashes here.

File details

Details for the file ariadne_lambda-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ariadne_lambda-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d85a8a226753a3b5a9ac71aaaa72be68b9fdee15c1a701f0110371ca4c1c0630
MD5 04b83536a2f9b391d7198ce0c214306d
BLAKE2b-256 fadaaf76af3861a38e3c55a9681b03f77a020303f0c30d62fbcb291159e219f8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page