単純なpythonスクリプトをセキュリティグループに追加するスクリプトを開発しています。boto3内で使用可能な2つのメソッドの違いは何ですか? authorize_security_group_ingress(** kwargs) =および authorize_ingress(** kwargs) ?
説明は同じです:「セキュリティグループに1つ以上の進入ルールを追加します」
2つの異なるクラスは、異なるレベルの抽象化に関するものです。
違いを示すために、セキュリティグループを作成し、インターネットにポート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 docs https://boto3.readthedocs.org/en/latest/guide/resources.html を参照してください。
2つの関数の違いは、それらが異なるクラスに属していることだけです。関数authorize_security_group_ingress
はEC2.Client
にあり、authorize_ingress
はEC2.SecurityGroup
にあります。彼らは同じことをします。