Skip to main content

pspring-aws

This framework is member of pspring based family of frameworks. It provides a means to access aws resources with minimal code. boto3 library is used internally for http requests.

All the default variables are listed in defaultvars.py

Annotations / Decorators that come along with this framework are listed below

  • @SecretValue(name="",region="",column="",columns=[])

    This is a class decorator can be used to retrieve value of secret in AWS secrets manager. We could also specify a list of columns or a single column name from the secret response to be retrived. A method named "getSecretValue" will be available on the class.

  • @DynamoDBTable(tableName="",primaryKey="",sortKey="",ttlColumnName="",ttl="")

    This is a class decorator which can be tagged with a dynamodb table. Once tagged with this decorator, the class will have implementations of get and put methods. get(self,primaryKey,sortKey="",columns="",column="") method can be used to retrive only specific columns put(self,data) can be used to insert data

  • @LambdaHandler(type="lambdaproxy")

    This is a class decorator which provides below functionalities. You should implement "handler" method which will be enhanced

    1. debug,info,warn,error - This will log a message will required tracking fields like requestId etc.
    2. handle cold start requests with requestId = "COLD_START_WARMER"
    3. addToLogger method can be used to add a field to all logging messages.
    4. returns a 200 response along with the dictionary returned from the "handler" method as json.
    5. handles all exceptions and returns gracefully a 500 Internal server error.

Below exceptions are available from this framework

  • LambdaException
  • NotFoundException
  • UnAuthorizedException
  • InternalServerException
  • CreatedException
  • RedirectException
  • RealTimeSecretsMgrConfigProvider

    This along with https://github.com/vasudevan-palani/appsync-client.git works as a real time secrets manager ( what this means is, you will get notified about the changes to secrets mngr's value as a push event )

      from pspring import Configuration
    
      config = Configuration.getConfig(__name__)
    
      Configuration.initializer([
        RealTimeSecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1")
      ])
    
  • SecretsMgrConfigProvider

    ConfigurationProvider for secrets manager in aws to work alongside pspring.Configuration

        from pspring import Configuration
    
        config = Configuration.getConfig(__name__)
    
        Configuration.initializer([
          SecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1")
        ])
    
  • SecretsManager

    Utility class to interact with aws secrets manager encapsulating the boiler plate code

      from pspringaws import SecretsManager
    
      secretsmngr = SecretsManager(secretId="mysecretId")
    
      secretsmngr.getSecretValue()
    
  • DynamoDBTable

    Utility class to interact with aws dynamodb encapsulating the boiler plate code

      from pspringaws import DynamoDBTable
    
      secretsmngr = DynamoDBTable(tableName="mytable",primaryKey="primaryKey",sortKey="sortKey")
    
      item = secretsmngr.get("primaryKeyValue")
    
      item = secretsmngr.put(primaryKeyValue,item)
    

Example:

from pspring import *
from pspringaws import *


@LambdaHandler()
class MyHandler():
    @Autowired()
    def __init__(self,customerbackend:CustomerBackend, cache:DataCache):
        self.customerbackend = customerbackend
        self.cache = cache

    def handler(self,event,context):
      return self.customerbackend(...)

context.initialize()
newhandler = MyHandler()
def handler(event,context):
    return newhandler.handler(event,context)

To do:

  • Support Lambda integration types

Metadata

Release files for pspring-aws 0.0.44

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pspring-aws 0.0.44
File Size Uploaded Provenance Actions
pspring-aws-0.0.44.tar.gz 9.8 kB Without provenance Details for pspring-aws-0.0.44.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pspring-aws 0.0.44
File Interpreter ABI Platform Actions
pspring_aws-0.0.44-py3-none-any.whl Python 3 none any Details for pspring_aws-0.0.44-py3-none-any.whl

Total release size: 25.8 kB

Release files / pspring-aws-0.0.44.tar.gz

Download URL pspring-aws-0.0.44.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
524d028b3bb9cb3f3905654b3a1384f9d10f0ad12e94365fc6ab79cf69cd10e9
BLAKE2b-256 checksum
How to use checksums
456c1f51e4f5186a26a462265d9742fab24b64465fb1b3b3c359224e461d1aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.3

Release files / pspring_aws-0.0.44-py3-none-any.whl

Download URL pspring_aws-0.0.44-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
547632fee7c5bfeef1334da8f3dcfebd49be5436e3d64dc76a3c951ebb850059
BLAKE2b-256 checksum
How to use checksums
83deb12d371dc2eead54bc41aeb8d01b0088f3a1892ed1cf556ab8bb87cadca6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.3

Security for pspring-aws 0.0.44

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.44 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page