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

使用GitHub Action部署Django到Google App Engine报JSON解析错误

问题解决步骤

1. 修正Google Deploy Action的参数适配问题

你升级到v0.4.0版本的deploy-appengine action后,旧参数credentials已经被弃用,替换为service_account_key,修改deploy步骤的配置:

- name: Deploy to App Engine
  id: deploy
  uses: google-github-actions/deploy-appengine@v0.4.0
  with:
    project_id: ${{ secrets.GCP_PROJECT_ID }}
    deliverables: app.yaml # 如果app.yaml在src目录下,此处改为src/app.yaml
    service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
    version: v1

2. 修复服务账号凭证的存储问题

Error: Unexpected token � in JSON at position 0 90%以上的场景是GitHub Secrets中存储的服务账号JSON内容异常导致,按以下步骤排查:

  • 确认你存储GOOGLE_APPLICATION_CREDENTIALSSecret时,直接粘贴的是JSON文件的原始纯文本内容,没有做base64编码。旧教程要求的base64编码仅适配极早期的action版本,新版不需要编码,编码后的内容会直接导致JSON解析失败
  • 确认你复制JSON内容时没有带UTF-8 BOM头:用VS Code打开服务账号JSON文件,点击右下角的编码选项,选择「UTF-8」(不要选带BOM的版本),重新复制内容更新GitHub Secrets即可

3. 修正路径&语法错误

  • 你全局配置了working-directory: src,如果app.yaml存放在src目录下,需要把deliverables的值改为src/app.yaml,否则action会在仓库根目录找不到配置文件
  • 最后test步骤的curl命令缺少闭合双引号,修改为:
    - name: Test
      run: curl "${{ steps.deploy.outputs.url }}"
    

关于app.yaml的异常说明

你当前的app.yaml配置完全符合Google App Engine的规范,不需要配置on触发器,工作流的触发规则是GitHub Actions的配置项,和app.yaml无关,之前的app.yaml报错基本是路径不对或者缩进异常导致,当前贴出的配置没有问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:09:03