5X AWS Athena Client Authentication Library
This Python library provides a simple way to create an AWS Athena client using AWS credentials. It handles authentication seamlessly, allowing developers to focus on querying Athena.
- Authentication Method: AWS Credentials (Access Key and Secret Key)
- Region Configuration: Configurable AWS Region
Installation
Install the package from PyPI using:
pip install 5x-aws-athena-auth-manager
Environment Variables
This library relies on environment variables for authentication.
| Variable | Description | Example |
|---|---|---|
FIVEX_ATHENA_AWS_ACCESS_KEY |
AWS Access Key ID | AKIA1234567890EXAMPLE |
FIVEX_ATHENA_AWS_SECRET_KEY |
AWS Secret Access Key | wJalrXUtnFEMI/K7MDENG/123456 |
FIVEX_ATHENA_AWS_REGION |
AWS Region | us-east-1 |
Example: Setting Environment Variables
export FIVEX_ATHENA_AWS_ACCESS_KEY="your-access-key"
export FIVEX_ATHENA_AWS_SECRET_KEY="your-secret-key"
export FIVEX_ATHENA_AWS_REGION="your-aws-region"
Usage
Import and Use in Python
from athena_auth import AthenaConnectionManager
try:
manager = AthenaConnectionManager()
client = manager.get_client()
print("✅ Athena Client Created Successfully!")
except Exception as e:
print(f"❌ Error: {e}")
Class Overview
AthenaConnectionManager
Creates and manages an AWS Athena client using environment variables.
How It Works
✔ Validates AWS credentials from environment variables
✔ Creates a boto3 Athena client with proper configuration
✔ Tests the connection to ensure credentials are valid
✔ Implements comprehensive error handling for debugging
Error Handling
The library provides detailed error handling with specific exceptions:
| Exception | Cause |
|---|---|
ValueError |
Missing or invalid credentials |
ClientError |
AWS API errors (invalid region, etc.) |
ConnectionError |
Network or connectivity issues |
Exception |
Unexpected errors during client creation |
Example Error Handling
from athena_auth import AthenaConnectionManager
from botocore.exceptions import ClientError
try:
manager = AthenaConnectionManager()
client = manager.get_client()
except ValueError as e:
print(f"❌ Configuration Error: {e}")
except ClientError as e:
print(f"❌ AWS Client Error: {e}")
except ConnectionError as e:
print(f"❌ Connection Error: {e}")
except Exception as e:
print(f"❌ Unexpected Error: {e}")
Testing
The library includes comprehensive test utilities:
Simple Test
# simple_test.py
from athena_auth import AthenaConnectionManager
def test_athena_connection():
manager = AthenaConnectionManager()
client = manager.get_client()
response = client.list_work_groups(MaxResults=1)
print("✅ Connection successful!")
if __name__ == "__main__":
test_athena_connection()
Full Test Suite
# Run the complete test suite
python test.py
Dependencies
Core dependencies required:
boto3>=1.26.0
botocore>=1.29.0
Why Use This Library?
✔ Simplifies AWS Athena authentication – No need to manage credentials manually
✔ Ensures proper credential validation – Validates credentials before use
✔ Provides comprehensive error handling – Clear, actionable error messages
✔ Includes testing utilities – Easy to verify your setup
✔ Production-ready – Used by 5X platform services
Contributing
We welcome contributions! Please feel free to submit a Pull Request.
License
MIT License - feel free to use this library in your projects!
Metadata
Release files for 5x-aws-athena-auth-manager 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| 5x_aws_athena_auth_manager-0.1.2.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.9 kB
Release files / 5x_aws_athena_auth_manager-0.1.2.tar.gz
| Download URL | 5x_aws_athena_auth_manager-0.1.2.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82f3245fca84648028606ba03305d8cd48fc13fa2ba7e2328eb66dd1a46c0c4f
|
|
BLAKE2b-256 checksum How to use checksums |
31c2bb229f8b9d6c46d0874cadd5500a01828bba5a28ff58b32c2c80e9e44397
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / 5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl
| Download URL | 5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl |
|---|---|
| Size | 4.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b125b294bbdfcf7633ad263881b5746e448d6f2645f8ce8904e20ac0c30162a9
|
|
BLAKE2b-256 checksum How to use checksums |
90fa1c1cd89465f18903f7a420486a84df1050d8a252a6ab54583424b52e3e83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|