Python AWS SDK boto3 library enhancement
Project description
Welcome to boto_session_manager Documentation
Feature
Boto Client Enum
Provide an Enum class to access the aws service name to create boto client.
from boto_session_manager import BotoSesManager, AwsServiceEnum
bsm = BotoSesManager()
s3_client = bsm.get_client(AwsServiceEnum.S3)
Cached Client
Once an boto session is defined, each AWS Service client should be created only once in most of the case. boto_session_manager.BotoSesManager.get_client(service_name) allow you to fetch the client object from cache if possible.
from boto_session_manager import BotoSesManager, AwsServiceEnum
bsm = BotoSesManager()
s3_client1 = bsm.get_client(AwsServiceEnum.S3)
s3_client2 = bsm.get_client(AwsServiceEnum.S3)
assert id(s3_client1) = id(s3_client2)
Assume Role
Create another boto session manager based on an assumed IAM role. Allow you to check if it is expired and maybe renew later.
bsm_assumed = bsm.assume_role("arn:aws:iam::669508176277:role/sanhe-assume-role-for-iam-test")
sts_client = bsm_assumed.get_client(AwsServiceEnum.sts)
print(sts_client.get_caller_identity())
print(bsm_assumed.is_expired())
AWS CLI context manager
Suppose you have a boto session manager defined in python, sometime you want to run aws cli from Python using subprocess library. You can use boto_session_manager.BotoSesManager.awscli() context manager to setup temp credential for AWS CLI.
import subprocess
bsm = BotoSesManager(...)
with bsm.awscli():
subprocess.run(["aws", "sts", "get-caller-identity"])
Install
boto_session_manager is released on PyPI, so all you need is:
$ pip install boto_session_manager
To upgrade to latest version:
$ pip install --upgrade boto_session_manager
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
Hashes for boto_session_manager-1.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0df421b8b9e43c23ee626cd912b0e69cfbd50c4d26b46bda58811bf1016719c |
|
MD5 | 6596ca6de4020097b5a07896e2dded1e |
|
BLAKE2b-256 | 5a4f0af6eac43125e5ef2a7578fe672b58d448e325cce421cbcf67acd9a25044 |
Hashes for boto_session_manager-1.2.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06e8dc9ef4f7b1dfb206f1b59d5578aaa02a5c1e91edd315515fa8c176114dcd |
|
MD5 | f1f256d7a64b741edf9ac012226dfc81 |
|
BLAKE2b-256 | 5f3e7088309787889dcaea886e08622fd5781dd04c024f8dca5b35e038893b6c |