python boto3 permite grupos de segurança de ingresso

6

Estou desenvolvendo um script python simples para adicionar regras a securitygroups, e estou querendo saber qual é a diferença entre os dois métodos disponíveis no boto3: authorize_security_group_ingress(**kwargs) e authorize_ingress (** kwargs) ?

As descrições são as mesmas: "Adiciona uma ou mais regras de entrada a um grupo de segurança"

    
por Tom 16.10.2015 / 16:34

2 respostas

8

As duas classes diferentes são sobre diferentes níveis de abstração.

  • As classes Cliente são wrappers de baixo nível em torno de cada ação da API. ie. AutorizeSecurityGroupIngress
  • As classes Recurso são orientadas a objetos, você instancia um objeto para representar o grupo e interage com ele dessa maneira. Ele fornece um nível mais alto de abstração que desacopla você das chamadas de API individuais e fornece alguma persistência

para mostrar a diferença, vamos criar um grupo de segurança e abrir a porta 80 para a internet.

com o cliente

    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)

com recurso:

    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) 

A principal diferença aqui é que o objeto resource elimina a necessidade de uma variável "response" e se encarrega de lembrar o grupo Security para uso posterior. Não parece ser uma grande diferença, mas torna seu código mais limpo e mais orientado a objetos. veja os docs do boto: link para mais detalhes sobre eles.

    
por 07.11.2015 / 09:01
1

A única diferença que posso ver entre as duas funções é que elas pertencem a classes diferentes. A função authorize_security_group_ingress reside em EC2.Client e authorize_ingress reside em EC2.SecurityGroup . Eles fazem a mesma coisa.

    
por 19.10.2015 / 07:44