Группы безопасности БД могут быть связаны только с экземплярами БД VPC с использованием версий API

У меня есть этот код ниже, чтобы создать экземпляр RDS в AWS:

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

Но у меня всегда есть эта ошибка, связанная с группами безопасности:

Группы безопасности БД могут быть связаны только с экземплярами БД VPC с использованием версий API с 2012-01-15 по 2012-09-17.

Может кто-нибудь, пожалуйста, помогите решить эту проблему?

Если я использую vpc_security_groups вместо security_groups, я получаю:

 <Message>Invalid security group , groupId= f, u, d, t, e, a, l, groupName=.</Message>

3 ответа

Экземпляры RDS в VPC не могут быть членами групп безопасности RDS. Вместо этого RDS внутри VPC должен находиться в группе безопасности VPC. В бото используйте vpc_security_groups параметр (с идентификатором группы безопасности VPC в качестве значения), а не security_groups параметр. Смотрите также документы boto RDS для create_dbinstance(),

Boto переносит RDSConnection из версии 1 в версию 2. Вы можете проверить это - раньше мы могли получить все db_instances, используя get_all_dbinstances()но теперь мы можем получить только с помощью describe_db_instances(), Попробуйте использовать vpc_security_group(), Официальный документ для новой версии RDS, то есть RDS2 здесь.

Это может сработать. Я не получаю ошибку с моим сценарием, но мой клиент. Я предполагаю, что это потому, что у меня есть группа безопасности VPC по умолчанию, которую AWS использует молча, а он - нет.

boto.rds.RDSConnection.APIVersion = '2012-09-17'

идея заключается в том, что, поскольку этот API находится в пределах (в конце) указанного диапазона, ошибка не будет применена.

Я получил идею от https://github.com/boto/boto/issues/2923

Другие вопросы по тегам