RDS Proxy работает с psycopg2, но не с SQLAlchemy ⇐ Python
-
Anonymous
RDS Proxy работает с psycopg2, но не с SQLAlchemy
Я подключаюсь к экземпляру RDS, на котором работает PostgreSQL, через прокси-сервер.
Я могу без проблем подключить базу данных, когда запускаю ее через psycopg2, используя приведенный ниже код
creds = read_config(config_file_location) rds_client = boto3.client('rds') auth_token = rds_client.generate_db_auth_token( DBHostname=creds['хост'], Порт=creds['порт'], DBUsername=creds['пользователь'], Регион=кредиты['регион'] ) return psycopg2.connect(user=creds['user'], пароль=auth_token, хост=creds['хост'], порт=creds['порт'], база данных=creds['db'], sslmode='требуется') Но когда я пытаюсь использовать SQLAlchemy
config = read_config(config_file_location) rds_client = boto3.client('rds') auth_token = rds_client.generate_db_auth_token( DBHostname=config['хост'], Порт=конфигурация['порт'], DBUsername=config['пользователь'], Регион=конфигурация['регион'] ) config['пароль'] = auth_token sqlalchemy_url = "postgresql://{user}:{пароль}@{host}:{port}/{db}".format(**config) engine = create_engine(sqlalchemy_url(), connect_args={"sslmode": "require"}) Это вызывает ошибку
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) подключение к серверу в «» (>) произошел сбой порта 5432: НЕУСТРАНИТЕЛЬНО: не удалось выполнить аутентификацию IAM для роли >. Проверьте токен IAM для этой роли и повторите попытку. Соединение SQLAlchemy работает, если я подключаюсь напрямую к БД с помощью пароля
Не уверен, что только Прокси + Алхимия не сработают. Любые предложения приветствуются
Я подключаюсь к экземпляру RDS, на котором работает PostgreSQL, через прокси-сервер.
Я могу без проблем подключить базу данных, когда запускаю ее через psycopg2, используя приведенный ниже код
creds = read_config(config_file_location) rds_client = boto3.client('rds') auth_token = rds_client.generate_db_auth_token( DBHostname=creds['хост'], Порт=creds['порт'], DBUsername=creds['пользователь'], Регион=кредиты['регион'] ) return psycopg2.connect(user=creds['user'], пароль=auth_token, хост=creds['хост'], порт=creds['порт'], база данных=creds['db'], sslmode='требуется') Но когда я пытаюсь использовать SQLAlchemy
config = read_config(config_file_location) rds_client = boto3.client('rds') auth_token = rds_client.generate_db_auth_token( DBHostname=config['хост'], Порт=конфигурация['порт'], DBUsername=config['пользователь'], Регион=конфигурация['регион'] ) config['пароль'] = auth_token sqlalchemy_url = "postgresql://{user}:{пароль}@{host}:{port}/{db}".format(**config) engine = create_engine(sqlalchemy_url(), connect_args={"sslmode": "require"}) Это вызывает ошибку
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) подключение к серверу в «» (>) произошел сбой порта 5432: НЕУСТРАНИТЕЛЬНО: не удалось выполнить аутентификацию IAM для роли >. Проверьте токен IAM для этой роли и повторите попытку. Соединение SQLAlchemy работает, если я подключаюсь напрямую к БД с помощью пароля
Не уверен, что только Прокси + Алхимия не сработают. Любые предложения приветствуются