用于python的aws sdk的扩展
boto3-extensions的Python项目详细描述
概述
此模块向BOTO3库添加更多资源文件,并包括一些功能增强。
快速启动
首先,安装库:
$ pip install boto3_extensions
按照BOTO3文档设置区域和凭据(https://github.com/boto/boto3)。
然后,从python解释器:
>>>importboto3>>>importboto3_extensions>>>r=boto3.resource('cloudtrail',region_name='us-east-1')>>>fortrailinr.trails.all():print(trail.trail_arn)
资源文件
以下资源文件是添加到boto3库中的。
- acm
- autoscaling
- cloudfront
- cloudtrail
- cur
- datapipeline
- directconnect
- elasticache
- elb
- elbv2
- emr
- glue
- health
- kinesis
- lambda
- rds
- redshift
- route53
- support
以下资源文件是BOTO3库中更新的。
- dynamodb
- ec2
- iam
- s3
可刷新的assumeroleprovider
如果在对aws api执行操作之前,您的代码需要将角色分配给另一个角色(无论是在同一个aws帐户中还是在另一个aws帐户中),那么您将面临使用的凭据在使用期间过期的风险。您可以向应用程序中添加代码以不断检查凭据到期时间,或者使用此扩展将凭据刷新卸载到boto3本身。通过在boto3_扩展中使用connectionmanager,它不仅会在凭证到达15分钟以下时自动分配凭证,而且还会缓存凭证。这意味着,如果应用程序多次调用boto3以获取另一个角色的凭据,则connectionmanager将缓存第一个调用,然后为后续调用分发同一会话。
>>>role_arn='arn:aws:iam::1234567890:role/test-role'>>>role_session_name='test'>>>connections=boto3_extensions.ConnectionManager(region_name='us-east-1')>>>session=connections.get_session(role_arn=role_arn,role_session_name=role_session_name)>>>>>>r=session.resource('cloudtrail',region_name='us-east-1')>>>fortrailinr.trails.all():>>>print(trail.trail_arn)
ARN补丁
如果有一个一致的方法来获得资源的收益,那就太好了。boto3_扩展的arn补丁特性允许您通过arn属性从资源获取arn。
>>>importboto3>>>importboto3_extensions>>>fromimpimportreload>>>boto3_extensions.arn_patch_boto3()>>>reload(boto3)>>>>>>r=boto3.resource('rds',region_name='us-east-1')>>>fordbinr.db_instances.all():>>>print(db.arn)
获取帮助
请在我们的Bitbucket回购协议内提出发行票据:https://bitbucket.org/atlassian/boto3_extensions/issues