Amazon-Web-Services

python boto3允許入口安全組

  • August 7, 2016

我正在開發一個簡單的 python 腳本來向安全組添加規則,我想知道 boto3 中可用的兩種方法有什麼區別:authorize_security_group_ingress(**kwargs)authorize_ingress(**kwargs)

描述相同:“將一個或多個入口規則添加到安全組”

這兩個不同的類是關於不同的抽象級別。

  • 客戶端類是每個 API 操作的低級包裝器。IE。授權SecurityGroupIngress
  • 資源類是物件導向的,您實例化一個對象來表示組並以這種方式與之互動。它提供了更高級別的抽象,將您與單個 API 呼叫分離並提供了一些持久性

為了顯示差異,讓我們創建一個安全組並打開埠 80 到網際網路。

與客戶

   ec2 = boto3.client('ec2')
   response = ec2.create_security_group(GroupName='testgroup2',Description='testme')
   ec2.authorize_security_group_ingress(GroupId=response['GroupId'],IpProtocol="tcp",CidrIp="0.0.0.0/0",FromPort=80,ToPort=80)

有資源:

   ec2 = boto3.resource('ec2')
   mysg = ec2.create_security_group(GroupName="testgroup",Description='testme')
   mysg.authorize_ingress(IpProtocol="tcp",CidrIp="0.0.0.0/0",FromPort=80,ToPort=80) 

這裡的關鍵區別在於資源對象消除了對“響應”變數的需要,並負責記住安全組以供以後使用。看起來差別不大,但它使您的程式碼更清晰,更物件導向,

請參閱 boto 文件:https ://boto3.readthedocs.org/en/latest/guide/resources.html以獲取有關它們的更多詳細資訊。

引用自:https://serverfault.com/questions/729457