You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Secrets Manager提取信息解决psycopg2连接报错问题?

问题解决:从AWS Secrets Manager提取密钥用于psycopg2连接

你遇到的TypeError: string indices must be integers错误,核心原因是Secrets Manager返回的密钥内容是JSON格式的字符串,不是Python字典,直接用字典索引自然会报错。

解决步骤:

  • 先导入json模块,把返回的JSON字符串解析成Python字典,再提取字段
  • 完整示例代码:
import json
import psycopg2
import boto3

# 初始化Secrets Manager客户端并获取密钥
secrets_client = boto3.client('secretsmanager')
secret_response = secrets_client.get_secret_value(SecretId='你的密钥资源ID')
secret_json_str = secret_response['SecretString']

# 将JSON字符串解析为Python字典
secret_dict = json.loads(secret_json_str)

# 提取所需参数
username = secret_dict['username']
password = secret_dict['password']
# 如果密钥中包含主机信息,直接提取;没有则用默认值
db_host = secret_dict.get('host', '你的默认主机地址')

# 建立psycopg2连接
conn = psycopg2.connect(
    host=db_host,
    port='5432',
    database="你的数据库名",
    user=username,
    password=password
)

额外注意事项:

  • 确保你的执行角色/用户拥有secretsmanager:GetSecretValue权限
  • 如果密钥用KMS加密,还需要对应KMS密钥的解密权限
  • 用dict.get(key, 默认值)的方式提取字段,能避免因密钥缺少字段导致的报错

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:20:24