AWS Serverless读取外部JSON文件变量遇语法错误求助
解决Serverless配置读取外部JSON变量的语法错误问题
你肯定是用了框架不支持的自定义变量前缀才触发的这个错误——Serverless明确只允许引用环境变量、命令行选项和文件这三类来源,所以得用官方规定的file变量引用语法来读取外部JSON里的内容。
给你举个具体的修正例子,一看就懂:
假设你有一个名为config.json的外部配置文件,内容如下:
{ "gf": { "apiKey": "your-api-key", "endpoint": "https://your-service-endpoint.com" } }
那在你的serverless.yml里,要引用这个JSON里的变量,得这么写:
service: your-serverless-service provider: name: aws runtime: nodejs18.x environment: API_KEY: ${file(./config.json):gf.apiKey} SERVICE_ENDPOINT: ${file(./config.json):gf.endpoint} # 其他服务配置...
这里有几个关键细节要注意:
- 必须用
${file(文件路径)}作为前缀,路径要和你的serverless.yml文件位置对应,找不到文件也会触发报错 - 如果JSON里有嵌套结构,用
.来逐层访问键值,比如gf.apiKey就对应JSON里gf对象下的apiKey字段 - 别自己自定义变量前缀(比如你之前用的
serverless-gf),框架根本不认这种非官方的引用格式
按照这个格式修改后,应该就能正常读取外部JSON里的变量了。
内容的提问来源于stack exchange,提问作者ajfrank
相关产品推荐
相关产品推荐

