微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Django Cassandra 引擎连接 AWS Keyspace?

如何解决如何使用 Django Cassandra 引擎连接 AWS Keyspace?

我正在尝试设置 django 应用程序并将其连接到 AWS Keyspaces。 尝试使用 django-cassandra-engine 来做到这一点。

我目前正在设置中使用此设置,但它不起作用。

    ssl_context = SSLContext(PROTOCOL_TLSv1_2)
    ssl_context.load_verify_locations('/Users/amit/sf-class2-root.crt')
    ssl_context.verify_mode = CERT_required

DATABASES = {
    'default': {
        'ENGINE': 'django_cassandra_engine','NAME': 'Keyspace Name','HOST': 'Cluster()','connection': {
            'port': 9142,'contact_points': ['cassandra.us-east-1.amazonaws.com'],'ssl_context': ssl_context,'auth_provider': PlainTextAuthProvider(username='USERNAME',password='PASSWORD')

        }
    }
}

错误

 File "/Users/amit/workspace/eventHandler/venv/lib/python3.9/site-packages/django_cassandra_engine/connection.py",line 78,in register
connection.get_connection(name=self.alias)

文件“/Users/amit/workspace/eventHandler/venv/lib/python3.9/site-packages/cassandra/cqlengine/connection.py”,第247行,在get_connection raise cqlengineException("连接名称 '{0}' 在注册表中不存在。".format(name)) cassandra.cqlengine.cqlengineException: 注册表中不存在连接名称“default”。

解决方法

我没有使用过 Keyspaces 或 Cassandra,但是从 AWS 中的 endpoint documentationpython examples 来看,我猜测端口应该是 9142 而不是 {{1 }}。

,

想通了:-

DATABASES = {
'default': {
    'ENGINE': 'django_cassandra_engine','NAME': 'KEYSPACE_NAME','HOST': 'cassandra.us-east-1.amazonaws.com','OPTIONS': {
        'replication': {
            'strategy_class': 'SimpleStrategy','replication_factor': 1
        },'connection': {
            'port': 9142,'ssl_context': ssl_context,'auth_provider': PlainTextAuthProvider(username='USERNAME',password='PASSWORD')

        }

    }
}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。