Skip to content

Releases: yezz123/asgi-aws

2.0.0

25 Mar 11:36
03afd42
Compare
Choose a tag to compare

What's Changed

  • Support Python 3.11 & Use Hatch as Project management by @yezz123 in #7
  • Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in #8

New Contributors

Full Changelog: 1.0.0...2.0.0

🔖 release 1.0.0

21 Jul 18:13
b7a6dbe
Compare
Choose a tag to compare

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.