在AWS Redshift中使用boto创建集群

时间:2013-09-30 06:04:00

标签: python amazon-web-services boto amazon-redshift

obj = boto.redshift.layer1.RedshiftConnection()
obj.create_cluster(
    cluster_identifier='bototest',
    node_type='dw.hsl.xlarge',
    master_username='suresh',
    master_user_password='Suresh123',
    db_name='dev',
    cluster_type='single-node',
    cluster_security_groups='None',
    vpc_security_group_ids='None',
    cluster_subnet_group_name='None',
    availability_zone='us-east-1',
    preferred_maintenance_window='None',
    cluster_parameter_group_name='None',
    automated_snapshot_retention_period='None',
    port=5439,
    cluster_version='None',
    allow_version_upgrade='None',
    number_of_nodes=1,
    publicly_accessible='None',
    encrypted='None')

为什么我会收到错误?

File "/usr/local/lib/python2.7/dist-packages/boto-2.13.3-py2.7.egg/boto/redshift/layer1.py", line 577, in create_cluster
    path='/', params=params)
File "/usr/local/lib/python2.7/dist-packages/boto-2.13.3-py2.7.egg/boto/redshift/layer1.py", line 2189, in _make_request
    body=json_body)
**boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request**
{u'RequestId': u'76d9f16d-2994-11e3-85df-a5bac8eed36b', u'Error': {u'Message': u'boolean must follow xsd1.1 definition', u'Code': u'MalformedInput', u'Type': u'Sender'}}

1 个答案:

答案 0 :(得分:0)

参数allow_version_upgradepublicly_accessibleencrypted期望boolTrueFalse。您正在传递包含值None的字符串。此外,对于cluster_version,您还传递一个包含值None而不是特殊常量None的字符串。

create_cluster方法的在线文档非常完整。你可以在这里找到它们:http://docs.pythonboto.org/en/latest/ref/redshift.html#boto.redshift.layer1.RedshiftConnection.create_cluster