AWS Python SDK boto3中的基本概念與使用方法


最近在用boto3編寫AWS的lamda函數,學習到了boto3中的一些基本概念與使用方法。在此進行總結。

1. boto3提供了兩個級別的接口來訪問AWS服務:High Level的Resource級別的接口,Low Level的Client接口。

  Client級別的接口則是返回Dictionary來表示查詢到的資源信息。而Resource級別的接口是對Client級別的接口進行了面向對象的封裝,接口的返回值大部分都是Resource對象(如果返回值是某個Resource的信息的話),我們可以對返回的對象再進行操作(比如刪除,修改等)。

2. session

  session是對一組configuration的抽象表達,通過同一session調用的所有api共享一組configuration. session也是訪問所有API的入口。默認的session是boto3.
      所以一般通過如下代碼來得到Resource級別的API對象和Client級別的API對象:

      res = boto3.resource('service name')

      client = boto3.client('service name')

3. resource

    這是Resource級別接口里面的概念,Resource分為Service Resource和Individual Resource. Service Resource表示某個服務,而Individual Resource表示某個服務里面的資源

3.1 resource identifier

      Resource的唯一標示符,一般就是id或是url。很明顯Service Resource不需要identifier,因為它是通過名字標識(例如:'ec2')

3.2 attribute

      其實就是Resource的屬性

3.3 action

      就是Resource支持的操作

3.4 subResource

      Resource的子級Resource,可以通過identifier來獲取Resource對象

3.5 collection

      Resource的子級Resource的集合,可以對collection進行查詢,篩選等(對AWS的網絡請求只有在collection執行操作(遍歷,轉換為list, 批量處理)的時候才會產生並發出)

4. 一般使用方式

4.1 Resource級別

var serviceRes = boto3.resource('ec2') //得到Service Resource

var instance = serviceRes.create_instances(**kwargs) //執行Service Resource級別的操作

var instance = serviceRes.Instance(id) // 通過identifier得到Sub Resource(Individual Resource)

var instances = serviceRes.instances.filter(filter) // 通過filter得到一個Sub Resource的collection

instance.start() //執行Sub Resource上的操作

4.2 Client級別

var ec2Client = boto3.client('ec2') //得到對應服務的client

ec2Client.run_instances(**kwargs) //執行操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM