Skip to main content

AWS Python SDK wrapper for boto3 commonly used functions

Project description

AWS Python SDK

Simple wrapper for AWS boto3 SDK commonly used functions.

Features

  • 📦 S3 operations (read, write, copy, list, delete, signed URLs)
  • 🔐 SSM Parameter Store integration
  • ⚡ Lambda function invocation (async and sync)
  • 🚀 Optimized for AWS Lambda and serverless environments

Installation

pip install actvalue.aws-pysdk

Or with uv:

uv add actvalue.aws-pysdk

Configuration

Provide the following environment variables:

  • ENV: development | production | ...
  • AWSPROFILE: A named profile (non-default) in the credential file, e.g.: myprofile
  • AWSREGION: A region name, e.g.: eu-west-1

Note: AWSPROFILE and AWSREGION are needed in development only. Production uses the default session/client configuration.

Usage

S3 Operations

from aws_pysdk import s3_write, s3_read, s3_read_to_string, s3_get_signed_url
import os

# Write to S3
s3_write('my-bucket', 'hello.txt', 'Hello World', 'text/plain')

# Read from S3
response = s3_read('my-bucket', 'hello.txt')
content = response['Body'].read()

# Read directly to string
content_str = s3_read_to_string('my-bucket', 'hello.txt')

# Get signed URL for reading
read_url = s3_get_signed_url(
    {'Bucket': 'my-bucket', 'Key': 'file.txt'},
    'READ',
    3600  # expires in 1 hour
)

# Get signed URL for writing
write_url = s3_get_signed_url(
    {'Bucket': 'my-bucket', 'Key': 'file.txt', 'ContentType': 'text/plain'},
    'WRITE',
    3600
)

SSM Parameter Store

from aws_pysdk import ssm_load_parameters
import os

# Define parameters to load
params = [
    {'name': '/app/bucket/name', 'env_var_name': 'MY_BUCKET', 'decrypt': False},
    {'name': '/app/api/key', 'env_var_name': 'API_KEY', 'decrypt': True},
]

# Load parameters into environment variables
ssm_load_parameters(params)

# Access loaded parameters
my_bucket = os.environ['MY_BUCKET']
api_key = os.environ['API_KEY']

Lambda Function Invocation

from aws_pysdk import lambda_invoke, lambda_invoke_with_response

# Asynchronous invocation (fire and forget)
lambda_invoke('my-function', {'key': 'value'})

# Synchronous invocation (wait for response)
result = lambda_invoke_with_response('my-function', {'key': 'value'})
print(result)  # Parsed JSON response

# Invoke with ARN
lambda_invoke_with_response(
    'arn:aws:lambda:region:account:function:my-function',
    {'data': 'payload'}
)

Development

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Setup with uv (recommended)

# Install dependencies
make install

# Run tests
make test

# Format code
make format

# Lint code
make lint

# Build package
make build

Available Make Commands

make help           # Show all available commands
make install        # Install dependencies with uv
make test           # Run tests with pytest
make lint           # Lint code with ruff
make format         # Format code with ruff
make build          # Build package with uv
make publish        # Publish to PyPI
make publish-test   # Publish to Test PyPI
make clean          # Clean build artifacts
make venv           # Show virtual environment location

Manual Setup

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install package in development mode
pip install -e ".[dev]"

# Run tests
pytest

Publishing

To Test PyPI

make publish-test

To Production PyPI

make publish

License

MIT

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

actvalue_aws_pysdk-1.0.2.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

actvalue_aws_pysdk-1.0.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file actvalue_aws_pysdk-1.0.2.tar.gz.

File metadata

  • Download URL: actvalue_aws_pysdk-1.0.2.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for actvalue_aws_pysdk-1.0.2.tar.gz
Algorithm Hash digest
SHA256 447514973ff6cb39734f1ecb52fe21655812f169fe302171941aa11dc7e6526b
MD5 1e49e90b0d177ade1bd1c6cd6c5aac8e
BLAKE2b-256 6d15db9671d4f98bf1ec6db0a41b8faa9498b65a3ac777cdb5e2770d26e94350

See more details on using hashes here.

File details

Details for the file actvalue_aws_pysdk-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for actvalue_aws_pysdk-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 20226c8d10e057ecb254840ddef963fefcae39490311f594904af9551e8ae918
MD5 866cc7ee16f2f970be73c5ececc90879
BLAKE2b-256 f7b66af174390c572bd9c4b4e3c0549d2b4883b19b2cf9b3de9d5422f24d59dc

See more details on using hashes here.

Supported by

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