首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将协议设置为all的.authorize_egress()

将协议设置为all的.authorize_egress()
EN

Stack Overflow用户
提问于 2016-08-24 04:57:24
回答 1查看 135关注 0票数 0

我正在尝试执行以下代码

代码语言:javascript
复制
def createSecurityGroup(self, securitygroupname): 
    conn = boto3.resource('ec2') 
    response = conn.create_security_group(GroupName=securitygroupname, Description = 'test')

VPC_NAT_SecurityObject = createSecurityGroup("mysecurity_group")

response_egress_all =  VPC_NAT_SecurityObject.authorize_egress(
        IpPermissions=[{'IpProtocol': '-1'}])

并获得以下异常

异常:调用InvalidParameterValue操作时发生错误( AuthorizeSecurityGroupEgress ):此操作只能使用Amazon安全组。

我尝试了几种不同的组合,但无法将协议设置给所有人。正如boto3文档中所解释的那样,我使用了'-1‘。有人能给我建议一下怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 07:49:41

(最新情况)

1.boto3.resources(“ec2”)类实际上是围绕客户端类的高级类。您必须使用boto3.resources(“ec2”).Vpc创建一个提取类实例化,以便附加到特定的VPC ID。

代码语言:javascript
复制
import boto3
ec2_resource = boto3.resource("ec2") 
myvpc = ec2_resource.Vpc("vpc-xxxxxxxx") 
response = myvpc.create_security_group(
   GroupName = securitygroupname, 
   Description = 'test')

2.有时使用boto3 3客户机(“EC2”)很简单,如果您检查boto3 EC2 client ,您将看到以下内容:

代码语言:javascript
复制
response = client.create_security_group(
  DryRun=True|False,
  GroupName='string',
  Description='string',
  VpcId='string'
 )

如果您使用自动化脚本/模板来重建VPC,例如盐云,您需要给VPC一个标签名,以便从boto3脚本中自动获取它。当AWS将所有AWS资源ID从8个字母数字迁移到12个或15个字符时,这将节省所有麻烦。

另一个选项是使用cloudformation,它允许您将所有内容放入模板中并指定变量来重新创建VPC堆栈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39114714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档