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

使用GitHub Actions部署Google Cloud Run时认证失败:密钥反序列化错误

解决GitHub Actions中gcloud认证失败问题

问题根源

直接用echo输出GitHub Secrets中的JSON内容到文件时,Bash会解析JSON里的转义字符(比如换行符\n),导致生成的credentials.txt格式不符合标准服务账号JSON要求——尤其是private_key字段的换行结构被破坏,最终引发密钥反序列化错误。


解决方法

方法1:用printf替代echo写入文件

修改ci-cd.yml中的create credentials步骤,printf会原样保留JSON的原始格式,不会解析转义字符:

- name: create credentials
  working-directory: backend
  run: |-
    printf "%s" '${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}' > credentials.txt

方法2:使用官方setup-gcloud Action(更推荐)

直接借助Google官方Action完成凭据配置,无需手动创建文件,步骤更可靠:

jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:          
      - name: Code Checkout
        uses: actions/checkout@v4
      - name: Set up Cloud SDK
        uses: google-github-actions/setup-gcloud@v2
        with:
          service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
          project_id: your-project-id # 替换为你的GCP项目ID
          export_default_credentials: true

配置完成后,后续直接执行gcloud命令即可,无需手动运行gcloud auth login。


调试验证(可选)

若使用方法1,可临时添加步骤检查生成的凭据文件格式(调试完成后建议删除,避免敏感信息泄露):

- name: Verify credentials file
  working-directory: backend
  run: cat credentials.txt

内容的提问来源于stack exchange,提问作者Cường Nguyễn Mạnh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:12:12