Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql DB安全组只能使用API版本与VPC DB实例关联_Mysql_Amazon Web Services_Boto_Amazon Rds - Fatal编程技术网

Mysql DB安全组只能使用API版本与VPC DB实例关联

Mysql DB安全组只能使用API版本与VPC DB实例关联,mysql,amazon-web-services,boto,amazon-rds,Mysql,Amazon Web Services,Boto,Amazon Rds,我有以下代码在aws中创建RDS实例: import boto.rds REGION="us-east-1" INSTANCE_TYPE="db.t1.micro" ID = "MySQL-db-instance-database-test2" USERNAME="root" PASSWORD = "pass" DB_PORT = 3306 DB_SIZE = 5 DB_ENGINE = "MySQL5.1" DB_NAME = "databasetest2" SECGROUP_HANDLE=

我有以下代码在aws中创建RDS实例:

import boto.rds

REGION="us-east-1"
INSTANCE_TYPE="db.t1.micro"
ID = "MySQL-db-instance-database-test2"
USERNAME="root"
PASSWORD = "pass"
DB_PORT = 3306
DB_SIZE = 5
DB_ENGINE = "MySQL5.1"
DB_NAME = "databasetest2"
SECGROUP_HANDLE="default"

print "Connecting to RDS"

conn = boto.rds.connect_to_region(REGION)

print "Creating a RDS Instance"

instance = conn.create_dbinstance(ID, DB_SIZE, INSTANCE_TYPE, USERNAME, PASSWORD, port=DB_PORT, engine=DB_ENGINE,db_name=DB_NAME, security_groups = [SECGROUP_HANDLE],)

print instance
但我总是遇到与安全组相关的错误:

DB安全组只能使用API版本2012-01-15至2012-09-17与VPC DB实例关联

谁能帮我解决这个问题

如果我使用专有网络安全组而不是我拥有的安全组:

 <Message>Invalid security group , groupId= f, u, d, t, e, a, l, groupName=.</Message>
无效的安全组,groupId=f,u,d,t,e,a,l,groupName=。

专有网络中的RDS实例不能是RDS安全组的成员。相反,VPC中的RDS应该位于VPC安全组中。在boto中,使用
vpc\u security\u groups
参数(将vpc security group ID作为其值),而不是
security\u groups
参数。另请参见有关
create_dbinstance()

的信息,Boto正在将RDSConnection从版本1迁移到版本2。你可以查一下- 之前我们可以使用
get\u all\u dbinstances()
获取所有db\u实例,但现在我们只能使用
descripe\u db\u instances()
获取。 尝试使用
vpc\u security\u group()
。 新版RDS(即RDS2)的官方文档为。

这可能有效。我的脚本没有出现错误,但我的客户端出现了错误。我猜这是因为我有一个默认的VPC安全组,AWS正在静默使用,而他没有

boto.rds.RDSConnection.APIVersion = '2012-09-17'
其思想是,由于此API在指定范围内(在指定范围的末尾),因此错误将不适用


我从

中得到了这个想法,它将有助于查看堆栈跟踪和准确的错误消息。基于我的预感,您正在遗漏一些错误消息(即某些特定的API版本)…谢谢您的评论。我忘了把完整的信息,但现在我更新了这个问题!Upaang的答案也很有趣。您可以使用版本2,在这种情况下,
create\u dbinstance()
保持相同的功能,但
vpc\u security\u groups
参数已更改为
vpc\u security\u group\u id
。感谢您的回答。但是我不明白为什么我会有这个vpc错误。我没有使用任何专有网络,我的问题代码中也没有任何与专有网络相关的内容,只有我的错误。但是我尝试使用vpc安全组而不是安全组,但不起作用!我还有一个问题:TypeError:create\u dbinstance()得到了一个意外的关键字参数“vpc\u security\u group\u id”