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

GitHub Actions部署Serverless报错:--config不支持对应文件扩展名

问题现象

使用GitHub Actions部署Serverless Lambda函数时,流程中断抛出如下错误:

"Invalid "--config" value: Unsupported file extension (expected one of: yml, yaml, json, js, ts",

涉及的GitHub Actions工作流配置、serverless.yml配置均存放在仓库根目录。

报错根因
  • 核心触发原因:serverless/github-action@v3.x版本的默认入口点已调整为直接调用Serverless CLI,不再默认通过Shell解析传入的args参数。当前配置直接传入-c "serverless plugin install --name serverless-offline && serverless deploy",实际执行的命令等价于serverless -c "serverless plugin install --name serverless-offline && serverless deploy",Serverless CLI会将-c识别为--config(指定配置文件路径)的短参数,把后面的整串命令字符串当成配置文件路径解析,自然无法匹配yml/yaml/json/js/ts这类合法配置后缀,直接抛出扩展名不支持的错误。
  • 冗余操作问题:配置中安装的serverless-offline是本地离线调试专用插件,云端部署阶段不需要安装,该步骤只会拉长工作流执行时长,无实际部署价值。
可行解决方案
  • 方案1:适配v3版本Action的规则,显式指定Shell作为执行入口,同时移除冗余的插件安装步骤,修改后的部署步骤配置如下:
- name: Deploy Serverless Service
  uses: serverless/github-action@v3.1
  with:
    args: -c "serverless deploy"
  entrypoint: sh
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  • 方案2:如果不想调整现有命令写法,可以直接降级使用v2版本的Serverless Action,v2版本默认通过Shell解析传入的参数,原有命令写法可直接兼容,仅需将步骤中的uses字段修改为serverless/github-action@v2即可。
  • 前置校验项:执行部署前确认仓库根目录的serverless.yml文件无拼写错误(不要出现serverless.yml.txt这类被系统自动追加后缀的情况),同时确认actions/checkout@v2步骤正常拉取了仓库全量文件,避免出现配置文件找不到的次生问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:39:17