Skip to main content

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

Metadata

Release files for actvalue.aws-pysdk 1.0.2

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

Source distribution (sdist)

Source distribution for actvalue.aws-pysdk 1.0.2
File Size Uploaded
actvalue_aws_pysdk-1.0.2.tar.gz 38.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for actvalue.aws-pysdk 1.0.2
File Interpreter ABI Platform
actvalue_aws_pysdk-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 46.9 kB

Release files / actvalue_aws_pysdk-1.0.2.tar.gz

Download URL actvalue_aws_pysdk-1.0.2.tar.gz
Size 38.7 kB
Tags Source
SHA-256 checksum
How to use checksums
447514973ff6cb39734f1ecb52fe21655812f169fe302171941aa11dc7e6526b
BLAKE2b-256 checksum
How to use checksums
6d15db9671d4f98bf1ec6db0a41b8faa9498b65a3ac777cdb5e2770d26e94350
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / actvalue_aws_pysdk-1.0.2-py3-none-any.whl

Download URL actvalue_aws_pysdk-1.0.2-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20226c8d10e057ecb254840ddef963fefcae39490311f594904af9551e8ae918
BLAKE2b-256 checksum
How to use checksums
f7b66af174390c572bd9c4b4e3c0549d2b4883b19b2cf9b3de9d5422f24d59dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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