asgi-aws

Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨

MIT License

Stars
24

Bot releases are hidden (Show)

asgi-aws - 2.0.0 Latest Release

Published by yezz123 over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/yezz123/asgi-aws/compare/1.0.0...2.0.0

asgi-aws - 🔖 release 1.0.0

Published by yezz123 about 2 years ago

asgi-aws

Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with
Function URL ✨

Installation

pip install asgi_aws

Example

  • Create a file main.py with:
from asgi_aws import Asgi, AsgiService
from typing import Optional
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

entry_point = Asgi.entry_point(app, AsgiService.aws)

Deploy it

  • Let's create for example a YAML file with the following content:
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31

Resources:
  ExFunctionUrlAPI:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: python3.9
      CodeUri: src/
      Handler: main.entry_point
      MemorySize: 256
      Timeout: 30
      FunctionUrlConfig:
        AuthType: NONE
      Environment:
        Variables:
          AsgiService: AWS Lambda
  • Now, we can deploy the function with the following command:
# deploy HTTP API
sam build -t api.yaml --use-container
sam run deploy

Note: You can also deploy the function under Deployment for Rest API or with
a Function URL.

Related Projects