【问题标题】:AWS secret manager returned only master host from RDS cluster. Slave hosts are not returnedAWS 机密管理器仅从 RDS 集群返回主主机。从主机不返回
【发布时间】:2019-11-27 00:07:13
【问题描述】:

我正在用 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"}

【问题讨论】:

    标签: python amazon-web-services aws-lambda aws-secrets-manager


    【解决方案1】:

    主服务器和从服务器上的密码(实际密码)相同。由于 Secrets Manager 只需要知道 master 就可以完成轮换,这就是它存储在 secret 中的全部内容。

    通常,应用程序只是连接到主服务器,以便它们可以写入数据。如果您想连接到只读从属设备(例如卸载主设备),您可能必须调用describe db clusters 来获取从设备端点。然而,这并不总是一个好主意。如果从站处于重负载下,则可能会发生与主站同步的失败,从而使其处于损坏状态。我以前在 MySQL 上看到过这种情况,它需要手动操作来恢复从属服务器。

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 2013-03-01
      • 1970-01-01
      • 2018-03-08
      • 2016-08-07
      • 1970-01-01
      • 2021-02-20
      • 2012-11-09
      • 2013-12-31
      相关资源
      最近更新 更多