AWS 的Python SDK包名为 boto3, 可以使用命令pip install boto3安装使用

BOTO3中的基本概念

  1. boto3提供了两个级别的接口来访问AWS服务:High Level的Resource级别的接口,Low Level的Client接口

    Client级别的接口则是返回Dictionary来表示查询到的资源信息。而Resource级别的接口是对Client级别的接口进行了面向对象的封装,接口的返回值大部分都是Resource对象(如果返回值是某个Resource的信息的话),我们可以对返回的对象再进行操作(比如删除,修改等)。

    全局设置包括:

    • boto3.set_stream_logger(name='boto3', level=10, format_string=None)设置日志级别
    • boto3.setup_default_session(**kwargs)设置默认session

    重要入口类包括:

    • boto3.resource(*args, **kwargs):最终会调用session包下的resource函数boto3.session.Session.resource()
    • boto3.client(*args, **kwargs):最终会调用session包下的resource函数boto3.session.Session.client()
  2. session

    session是对一组configuration的抽象表达,通过同一session调用的所有api共享一组configuration. session也是访问所有API的入口。默认的session是boto3.

    • get_available_partitions():获取可用分区列表

    • get_available_regions():获取可用region列表

    • available_profiles:获取可用的配置文件目录

    • get_available_regions(service_name, partition_name='aws', allow_non_regional=False):获取可用分区

    • get_available_resources():获取可用资源列表,也就是可以用sess.resource(service_name)函数获取的服务列表

    • get_awailable_services():获取可用服务列表,也就是可以用sess.client(service_name)函数获取的服务列表

    • get_credentials():和此session有关的秘钥,使用botocore.credential.Credential对象存储。

    利用Session可以构建最重要的两个入口类:

    resource(service_name, region_name=None, api_version=None, use_ssl=True, verify=None, endpoint_url=None, aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, config=None)
    client(service_name, region_name=None, api_version=None, use_ssl=True, verify=None, endpoint_url=None, aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, config=None)
  3. resource

    这是Resource级别接口里面的概念,Resource分为Service Resource和Individual Resource. Service Resource表示某个服务,而Individual Resource表示某个服务里面的资源

  4. Configuration

    boto3会依次查找如下位置的配置,直到找到配置为止(也就是如下配置优先级递减):

  • boto.client()方法中的参数
  • 创建session时传递的参数
  • 环境变量
  • Shared credential file (~/.aws/credentials)
  • AWS config file (~/.aws/config)
  • Assume Role provider
  • Boto2 config file (/etc/boto.cfg and ~/.boto)
  • Instance metadata service on an Amazon EC2 instance that has an IAM role configured.

SDK设置AK SK的N种方法

在AWS的控制台中,使用根账号登陆,创建用户的时候允许编程访问形式,并保存下生成的CSV文件,一定要保存好,这个文件只会在创建时生成一次

官方推荐设置方法

此方法适用于调用SDK的程序,以及aws-cli使用

在系统 家目录下,创建一个隐藏目录.aws。所有的设置文件都在该目录下设置

windows: C:\Users\xxx\.aws

Mac & Linux: ~/.aws/

目录下文件所能设置的内容

credentials: 用来配置AWS中的 AK SK
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
config: 用来设置常用的一些默认参数
[default]
output = json # 默认输出类型为json
region = us-west-1 # 默认可用region区域

注意:配置文件中不能填写中文,否则SDK调用时会报错

代码中动态指定

  • 在初始化resource时指定

    import boto3
    # 这里的配置设定,只针对于初始化的S3这个方法
    s3 = boto3.resource(
    "s3",
    aws_access_key_id='xxxxxxxxxxxxxxxx',
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxxx',
    region_name='us-west-1'
    ) rds = boto3.resource(
    "rds",
    aws_access_key_id='xxxxxxxxxxxxxxxx',
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxxx',
    region_name='us-west-2'
    )
  • 指定默认session的参数

    import boto3
    # 这里设定后,所有使用boto3的库全部继承此配置
    boto3.setup_default_session(
    aws_access_key_id='xxxxxxxxxxxxxxx',
    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxxxxxxx',
    region_name='us-west-1'
    ) # 此时,s3和rds方法,使用的配置都是上边boto3的
    s3 = boto3.resource("s3")
    rds = boto3.resource("rds")

AWS SDK 使用说明的更多相关文章

  1. AWS SDK for C++调用第三方S3 API

    这里介绍AWS SDK for C++ 1.0.x版本,比如下载: https://github.com/aws/aws-sdk-cpp/archive/1.0.164.tar.gz 环境:RHEL/ ...

  2. AmazonS3 使用AWS SDK for Java实现跨源资源共享 (CORS)

    CORS 配置 创建 CORS 配置并对存储桶设置该配置 通过添加规则来检索并修改配置 向存储桶添加修改过的配置 删除配置 import com.amazonaws.AmazonServiceExce ...

  3. ceph rgw s3 java sdk 上传大文件分批的方法

    Using the AWS Java SDK for Multipart Upload (High-Level API) Topics Upload a File Abort Multipart Up ...

  4. golang DynamoDB sdk AccessDeniedException

    golang调用aws sdk时候提示: AccessDeniedException: User: arn:aws:sts::818539432014:assumed-role/bj-develop/ ...

  5. AWS认证权威考经(助理级认证篇)

    笔者作为AWS官方认证的早期通过者,已经拿到了AWS的助理级解决方案架构师.开发者认证,系统管理员认证.这几年也陆续指导公司多人通过AWS的认证.本篇文章将分享如何通过自学的方式轻松通过AWS的助理级 ...

  6. AWS Step Function Serverless Applications

    Installing VS Components To follow along with this article, you must have an AWS account and install ...

  7. AWS 移动推送到iOS设备,Amazon Pinpoint

    前言 第一次对接aws,遇到的坑是真多.现在记录一下.本文主要用到的是[Amazon Pinpoint]推送. 开发人员的指南:https://docs.aws.amazon.com/zh_cn/pi ...

  8. Automated EBS Snapshots using AWS Lambda & CloudWatch

    Overview In this post, we'll cover how to automate EBS snapshots for your AWS infrastructure using L ...

  9. AWS云使用100条宝贵经验分享

    在今天的文章中,我整理出了大量当初曾经错过.而至今仍将我追悔莫及的Amazon Web Services(简称AWS)使用心得.在几年来的实践当中,我通过在AWS之上新手构建及部署各类应用程序而积累到 ...

随机推荐

  1. centos7安装YouCompleteMe,vim打造成C++的IDE

    一.安装python3 1.安装编译工具 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...

  2. JavaScript封装函数:获取下一个/上一个兄弟元素节点

    要求: 获得下一个/上一个兄弟元素节点,不包括文本节点等 解决IE兼容性问题 代码实现: 获得下一个兄弟元素节点: function getNextElement(element) { var el ...

  3. 用python处理excel文件有多轻松?工作从未如此简单

    最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...

  4. 踩坑系列:MySql only_full_group_by配置,竟导致所有应用报错?

    1. 踩坑经历 一个很平常的下午,大家都在埋头认真写bug呢,突然企业微信群里炸锅了,好多应用都出现大量的Error日志,而且都报同一个错误,就是下面这个: Caused by: com.mysql. ...

  5. 如何获取value值,获取属性值,设置属性值,

    1.获取select下拉框的value值,   2.获取select  的tid值 3.设置属性值  4.判断哪个单选框选中了 prop好像是判断的意思吧,个人理解勿喷谢谢!!!!!!

  6. 炉石传说酒馆战棋一键拔线(windows)

    小编的业余游戏之一<炉石传说>,这里分享的是现在很火的游戏拔线(跳过约20秒的战斗动画),用夜吹的话说,注意,不是"日你大坝",是"整活",哈哈.小 ...

  7. rs485转以太网转换器

    rs485转以太网转换器ZLAN5103 实现RS485转以太网(即485转网口)主要一个硬件转换器和一个软件驱动.硬件转换器分为两种:串口服务器(串口联网服务器.串口通信服务器).串口联网模块.RS ...

  8. 联赛模拟测试18 A. 施工 单调队列(栈)优化DP

    题目描述 分析 对于 \(Subtask\ 1\),可以写一个 \(n^3\) 的 \(DP\),\(f[i][j]\) 代表第 \(i\) 个建筑高度为 \(j\) 时的最小花费,随便转移即可 时间 ...

  9. 学习ing

    1.从硬件和逻辑两个角度探讨什么是内存?硬件上看,内存就是电脑上的硬件--内存条.内存通过内存条不同的实现原谅分为DRAM(DRAM已经发展出好多代)和SRAM.从逻辑的角度来说,内存就是一个可以随机 ...

  10. nginx集群:nginx配置负载均衡集群(nginx1.18.0)

    一,nginx的负载均衡集群的特点: 1,nginx集群和lvs的不同? lvs集群:工作在第4层(传输层) nginx集群:工作在第7层(应用层) lvs集群:性能更强 nginx集群:功能更强:可 ...