[英]AWS secret manager returned only master host from RDS cluster. Slave hosts are not returned
我正在用python语言创建一个AWS lambda以从RDS(Aurora)获取数据。 RDS凭证存储在AWS Secret Manager中。 在创建机密时,要求我选择RDS群集。 选定的RDS群集具有主主机和从属主机。 但是,当我通过访问使用密钥管理器创建的密钥在lambda中获取凭据时,它仅返回该群集中的主主机,而不返回从属主机。 有什么方法可以访问从属主机?
码:
def get_secret():
secret_name = "abc"
region_name = "xyz"
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
print(e)
else:
if 'SecretString' in get_secret_value_response:
secret = get_secret_value_response['SecretString']
#Print Credentials
print(secret)
输出:
{"username":"xxxxx","password":"yyyyyyy","engine":"mysql","host":"**returned only master host here**","port":1234,"dbClusterIdentifier":"aaaaaaaaa"}
主服务器和从服务器上的密码(实际密码)相同。 由于Secrets Manager仅需要知道母版即可完成轮换,因此它存储在机密中。
通常,应用程序仅连接到主服务器,以便它们可以写入数据。 如果要连接到只读从属服务器(例如,卸载主服务器),则可能必须调用describe db clusters来获取从属端点。 但是,这并不总是一个好主意。 如果从属设备承受重负载,则与主设备同步可能会失败,从而使其处于损坏状态。 我以前在MySQL上已经看到过这一点,它需要手动操作来恢复从属。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.