A framework to do a better development.
Project description
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
getandputmethods.get(self,primaryKey,sortKey="",columns="",column="")method can be used to retrive only specific columnsput(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
- debug,info,warn,error - This will log a message will required tracking fields like requestId etc.
- handle cold start requests with requestId = "COLD_START_WARMER"
- addToLogger method can be used to add a field to all logging messages.
- returns a 200 response along with the dictionary returned from the "handler" method as json.
- handles all exceptions and returns gracefully a 500 Internal server error.
Below exceptions are available from this framework
- LambdaException
- NotFoundException
- UnAuthorizedException
- InternalServerException
- CreatedException
- RedirectException
-
RealTimeSecretsMgrConfigProviderThis 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") ])
-
SecretsMgrConfigProviderConfigurationProvider 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") ])
-
SecretsManagerUtility class to interact with aws secrets manager encapsulating the boiler plate code
from pspringaws import SecretsManager secretsmngr = SecretsManager(secretId="mysecretId") secretsmngr.getSecretValue()
-
DynamoDBTableUtility 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pspring-aws-0.0.44.tar.gz.
File metadata
- Download URL: pspring-aws-0.0.44.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
524d028b3bb9cb3f3905654b3a1384f9d10f0ad12e94365fc6ab79cf69cd10e9
|
|
| MD5 |
6155d0f7425b9373750ceeead31f8d20
|
|
| BLAKE2b-256 |
456c1f51e4f5186a26a462265d9742fab24b64465fb1b3b3c359224e461d1aac
|
File details
Details for the file pspring_aws-0.0.44-py3-none-any.whl.
File metadata
- Download URL: pspring_aws-0.0.44-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
547632fee7c5bfeef1334da8f3dcfebd49be5436e3d64dc76a3c951ebb850059
|
|
| MD5 |
173a07ade8fbe6f242ec608659726046
|
|
| BLAKE2b-256 |
83deb12d371dc2eead54bc41aeb8d01b0088f3a1892ed1cf556ab8bb87cadca6
|