Amazon-Web-Services
python boto3允許入口安全組
我正在開發一個簡單的 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以獲取有關它們的更多詳細資訊。