如何通过Serverless引用AWS Secrets Manager中JSON密钥的嵌套值
引用Secrets Manager中JSON格式密钥嵌套值的方法
Serverless 框架自带的 ${ssm} 参数引用语法原生支持解析JSON格式的密钥内容,直接通过点号拼接字段路径即可读取嵌套值,无需额外编写自定义解析逻辑。
配置示例
若你的密钥存储路径为 /darksky-api-key,存储内容为包含username、password字段的JSON结构,读取password字段的配置写法如下:
DARKSKY_API_PASSWORD: ${ssm:/darksky-api-key.password~true}
对应读取username字段的写法为:
DARKSKY_API_USERNAME: ${ssm:/darksky-api-key.username~true}
关键说明
- 配置末尾的
~true标记必须保留,作用是告知Serverless拉取参数时自动执行Secrets Manager的解密操作,缺失该标记会拿到加密后的密文,无法正常解析JSON结构 - 支持多层嵌套结构取值,只需连续用点号拼接字段路径即可。例如下方三层嵌套的JSON结构:
对应{ "service": { "credential": { "password": "your_password_here" } } }password字段的引用写法为${ssm:/your-secret-name.service.credential.password~true} - 请确保存入Secrets Manager的内容为标准合法JSON格式,否则会触发解析报错;如果JSON的键名本身包含点号,需要对键名做转义后再引用。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

