python - AWS 机密管理器仅从 RDS 集群返回主主机。从主机不返回
问题描述
我正在用 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 只需要知道 master 就可以完成轮换,这就是它存储在 secret 中的全部内容。
通常,应用程序只是连接到主服务器,以便它们可以写入数据。如果您想连接到只读从属设备(例如卸载主设备),您可能必须调用describe db clusters来获取从设备端点。然而,这并不总是一个好主意。如果从站处于重负载下,则可能会发生与主站同步的失败,从而使其处于损坏状态。我以前在 MySQL 上看到过这种情况,它需要手动操作来恢复从站。
推荐阅读
- reactjs - 反应路由和代理 - 路由不允许代理捕获
- hadoop - 无法连接到 localhost:10000 HUE GUI
- php - 当三个不同的用户单击按钮 AJAX 时隐藏帖子
- scala - 使用 udf 中的 Try 匹配进行错误处理 - 并记录失败的行
- python - 读取某些图像时在python中对循环进行矢量化
- c# - 为什么视觉工作室在双回车上双缩进?
- python-3.x - 通过 pandas 内置的数据可视化方法绘制图表时,是否可以显式设置图表颜色参数?
- javascript - 如何使用回调重写以消除对单独变量标签的需要?
- jquery - 如何检测浏览器宽度变化并调用所有数据表元素并告诉它们调整大小?
- c# - 从现有的 MailItem 对象复制嵌入的图像