[英]Create AWS SG using python boto3
我試圖通過在代碼執行期間傳遞變量來在特定vpc內創建安全組,但是當我對變量運行以下命令時,出現以下錯誤。
./create_sg.py vpc-e79569b2 dev_test_sg testing tcp 22 22 0.0.0.0/0
調用CreateSecurityGroup操作時發生錯誤(InvalidVpcID.NotFound):vpc ID'VPC_ID'不存在
#!/usr/bin/env python
import sys
import boto3
from botocore.exceptions import ClientError
region = "us-west-1"
VPC_ID=sys.argv[0]
SECURITY_GROUP_NAME=sys.argv[1]
DESCRIPTION=sys.argv[2]
IP_PROTOCOL_1=sys.argv[3]
FROM_PORT_1=sys.argv[4]
TO_PORT_1=sys.argv[5]
CIDR_IP_1=sys.argv[6]
ec2 = boto3.client('ec2')
response = ec2.describe_vpcs()
vpc_id = 'VPC_ID'
try:
response = ec2.create_security_group(GroupName='SECURITY_GROUP_NAME',Description='DESCRIPTION',VpcId=vpc_id)
security_group_id = response['GroupId']
print('Security Group Created %s in vpc %s.' % (security_group_id, vpc_id))
data = ec2.authorize_security_group_ingress(
GroupId=security_group_id,
IpPermissions=[
{'IpProtocol': 'IP_PROTOCOL_1',
'FromPort': FROM_PORT_1,
'ToPort': TO_PORT_1,
'IpRanges': [{'CidrIp': 'CIDR_IP_1'}]}
])
print('Ingress Successfully Set %s' % data)
except ClientError as e:
print(e)
請查看代碼,讓我知道是否需要在其中更改某些內容才能成功創建安全組。
這行全錯了...
response = ec2.create_security_group(GroupName='SECURITY_GROUP_NAME',Description='DESCRIPTION',VpcId=vpc_id)
IMO應該是:
response = ec2.create_security_group(GroupName=SECURITY_GROUP_NAME,Description=DESCRIPTION,VpcId=VPC_ID)
好的,下面是對字符串文字進行更正的完整代碼:
#!/usr/bin/env python
import sys
import boto3
from botocore.exceptions import ClientError
region = "us-west-1"
VPC_ID=sys.argv[0]
SECURITY_GROUP_NAME=sys.argv[1]
DESCRIPTION=sys.argv[2]
IP_PROTOCOL_1=sys.argv[3]
FROM_PORT_1=sys.argv[4]
TO_PORT_1=sys.argv[5]
CIDR_IP_1=sys.argv[6]
ec2 = boto3.client('ec2')
response = ec2.describe_vpcs()
try:
response = ec2.create_security_group(GroupName=SECURITY_GROUP_NAME,Description=DESCRIPTION,VpcId=VPC_ID)
security_group_id = response['GroupId']
print('Security Group Created %s in vpc %s.' % (security_group_id, VPC_ID))
data = ec2.authorize_security_group_ingress(
GroupId=security_group_id,
IpPermissions=[
{'IpProtocol': IP_PROTOCOL_1,
'FromPort': int(FROM_PORT_1),
'ToPort': int(TO_PORT_1),
'IpRanges': [{'CidrIp': CIDR_IP_1}]}
])
print('Ingress Successfully Set %s' % data)
except ClientError as e:
print(e)
嘗試刪除'VPC_ID'
周圍的引號:
vpc_id = VPC_ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.