Неверные учетные данные из Astra DB connect
В настоящее время я изучаю Astra DB по этой ссылке на YouTube https://www.youtube.com/watch?v=NyDT3KkscSk&t=2439s
Мне удалось загрузить файл connection.zip из Astra DB и сгенерировать ключи токена администратора. Но когда я пытаюсь установить такое соединение, как:
from app.crud import create_entry
Я получу эту ошибку:
raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:611a8370-f129-4099-84e2-c3b2f426ebdc': AuthenticationFailed('Failed to authenticate to 98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:611a8370-f129-4099-84e2-c3b2f426ebdc: Error from server: code=0100 [Bad credentials] message="We recently improved your database security. To find out more and reconnect, see https://docs.datastax.com/en/astra/docs/manage-application-tokens.html"'), '98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:040ab116-8c77-4eb4-a357-c9bdcbb637d4': AuthenticationFailed('Failed to authenticate to 98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:040ab116-8c77-4eb4-a357-c9bdcbb637d4: Error from server: code=0100 [Bad credentials] message="We recently improved your database security. To find out more and reconnect, see https://docs.datastax.com/en/astra/docs/manage-application-tokens.html"'), '98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:536e6e99-ef4e-47d0-9308-b0c6cdf4aa37': AuthenticationFailed('Failed to authenticate to 98db9cb2-907a-4f9d-a935-69b69fb2157f-asia-south1.db.astra.datastax.com:29042:536e6e99-ef4e-47d0-9308-b0c6cdf4aa37: Error from server: code=0100 [Bad credentials] message="We recently improved your database security. To find out more and reconnect, see https://docs.datastax.com/en/astra/docs/manage-application-tokens.html"')})
Вот мой db.py:
import os
import pathlib
from dotenv import load_dotenv
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra.cqlengine.connection import register_connection, set_default_connection
BASE_DIR = pathlib.Path(__file__).parent
CLUSTER_BUNDLE = BASE_DIR / 'ignored'/ 'connect.zip'
load_dotenv()
astra_db_client_id = os.environ.get('ASTRA_DB_CLIENT_ID')
astra_db_client_secret = os.environ.get('ASTRA_DB_CLIENT_SECRET')
def get_cluster():
cloud_config= {
'secure_connect_bundle': CLUSTER_BUNDLE
}
auth_provider = PlainTextAuthProvider(astra_db_client_id, astra_db_client_secret)
cluster = Cluster(cloud=cloud_config, auth_provider=auth_provider, control_connection_timeout=30,
connect_timeout=30)
return cluster
def get_session():
cluster = get_cluster()
session = cluster.connect()
register_connection(str(session), session=session)
set_default_connection(str(session))
return session
# session = get_session()
# row = session.execute("select release_version from system.local").one()
# if row:
# print(row[0])
# else:
# print("An error occurred.")
Я много раз пытался воссоздать ключ токена и повторно загрузить драйверы, но мне все еще не удалось передать здесь неверные ошибки учетных данных:
мой crud.py
from .db import get_session
from .models import Product
from cassandra.cqlengine.management import sync_table
session = get_session()
sync_table(Product)
def create_entry(data:dict):
return Product.create(**data)
models.py
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
class Product(Model): # -> table
__keyspace__ = "testing" #
asin = columns.Text(primary_key=True, required=True)
title = columns.Text()
1 ответ
Вы можете взглянуть на это
Конкретно раздел здесь:
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
cloud_config= {
'secure_connect_bundle': '/path/to/secure-connect-database_name.zip'
}
auth_provider = PlainTextAuthProvider('username', 'password')
cluster = Cluster(cloud=cloud_config, auth_provider=auth_provider)
session = cluster.connect()
При создании подключения вам потребуется передать ZIP-файл пакета безопасного подключения . Затем вы предоставите clientId и clientSecret в качестве имени пользователя и пароля из загруженного вами файла подключений.