我正在尝试执行以下代码
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‘。有人能给我建议一下怎么做吗?
发布于 2016-08-25 07:49:41
(最新情况)
1.boto3.resources(“ec2”)类实际上是围绕客户端类的高级类。您必须使用boto3.resources(“ec2”).Vpc创建一个提取类实例化,以便附加到特定的VPC ID。
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 组,您将看到以下内容:
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堆栈。
https://stackoverflow.com/questions/39114714
复制相似问题