0
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'}}
4

1 回答 1

0

参数allow_version_upgrade,publicly_accessibleencrypted期望值bool,要么True要么False。您正在传递一个包含值 None 的字符串。此外,因为cluster_version您还传递了一个包含值 None 而不是特殊常量的字符串None

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

于 2013-09-30T12:16:51.730 回答