Код: Выделить всё
def create_db_engines():
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=os.environ['region']
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=os.environ['rds_credentials']
)
except ClientError as e:
print('ERROR getting secret ' + str(e))
raise e
# Decrypts secret using the associated KMS key.
secret = json.loads(get_secret_value_response['SecretString'])
username = secret['username']
password = secret['password']
print('password:' + password) # added temporarily for debugging
engine = create_engine(
f"postgresql://{username}:{password}@{os.environ['db_endpoint']}/postgres")
engine_async = create_async_engine(
f"postgresql+asyncpg://{username}:{password}@{os.environ['db_endpoint']}/postgres")
return engine, engine_async
Но я все равно получаю сообщение об ошибке «Не удалось выполнить аутентификацию пароля для пользователя» postgres"" и я не знаю почему.
Если я меняю пароль в rds, все работает нормально, но перестает работать при следующей ротации.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ssword-rot