AWS Lambda调用SecretsManager遇TypeError问题求助
解决TypeError: string indices must be integers问题
你遇到的问题核心是:从SecretsManager获取的SecretString是JSON格式的字符串,而非Python字典。字符串只能用整数作为索引,直接用键名(如"Access_key")访问自然会报错。
解决方案
使用Python内置的json模块,将JSON字符串解析为Python字典后再按键访问:
import json import boto3 sm_client = boto3.client('secretsmanager') # 获取SecretString(JSON格式字符串) secret_str = sm_client.get_secret_value(SecretId='Lambda_IAMUser')['SecretString'] # 解析为Python字典 credentials = json.loads(secret_str) # 正常访问键值 print(credentials["Access_key"])
验证说明
解析后credentials会变成标准的Python字典,你可以像操作普通字典一样访问Access_key和Secret_key,不会再触发类型错误。
内容的提问来源于stack exchange,提问作者syntax_error
相关产品推荐
相关产品推荐

