如何使用 Django Cassandra Engine 连接 AWS Keyspace?
How to connect AWS Keyspace using Django Cassandra Engine?
我正在尝试设置一个 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("Connection name '{0}' doesn't exist in the registry.".format(name))
cassandra.cqlengine.CQLEngineException: 注册表中不存在连接名称 'default'。
我没有使用过 Keyspaces 或 Cassandra,但是通过查看 AWS 中的 endpoint documentation and python examples,我猜测端口应该是 9142
而不是 9042
。
想通了:-
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')
}
}
}
}
我正在尝试设置一个 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("Connection name '{0}' doesn't exist in the registry.".format(name)) cassandra.cqlengine.CQLEngineException: 注册表中不存在连接名称 'default'。
我没有使用过 Keyspaces 或 Cassandra,但是通过查看 AWS 中的 endpoint documentation and python examples,我猜测端口应该是 9142
而不是 9042
。
想通了:-
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')
}
}
}
}