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

Github Actions备份Firestore遇版本及认证问题求助

Firestore备份Github Actions脚本问题排查与修复

问题概述

使用Github Actions定时备份GCP Firestore时,先后遇到两个错误:

  1. 初始脚本使用google-github-actions/setup-gcloud@master,报错Unable to resolve action 'google-github-actions/setup-gcloud@master', unable to find version 'master'
  2. 将分支改为main或v1后,执行gcloud firestore export时出现认证错误:

ERROR: (gcloud.firestore.export) You do not currently have an active account selected.

错误原因分析

  1. 分支名变更:google-github-actions/setup-gcloud仓库的默认分支已从master改为main,同时官方推荐使用版本标签(如v2)而非分支名,避免分支变动导致的兼容性问题。
  2. 认证未正确生效:虽然配置了service_account_key和export_default_credentials: true,但部分gcloud命令需要明确激活服务账号才能使用凭证,或服务账号权限不足。

修复步骤

1. 使用正确的Action版本

替换setup-gcloud的引用为官方推荐的稳定版本标签(如v2.1.0),版本标签比分支名更稳定,能避免仓库分支变动带来的问题。

2. 确保服务账号权限

为用于认证的GCP服务账号添加以下权限:

  • Cloud Datastore Import Export Editor:用于执行Firestore导出操作
  • Storage Object Admin:用于读写备份存储桶

3. 完善认证流程

在setup-gcloud步骤后,添加明确激活服务账号的命令,确保gcloud工具使用指定的凭证。

最终修复后的脚本

name: Backup Firestore

on:
  schedule:
    - cron: '41 16 * * *'

env:
  PROJECT_ID: polydds-b712c
  BUCKET: gs://backup_polydts01

jobs:
  backup:
    runs-on: ubuntu-latest
    steps:
    - name: Set up gcloud CLI
      uses: google-github-actions/setup-gcloud@v2.1.0
      with:
        service_account_key: ${{ secrets.GCP_SA_KEY }}
        project_id: ${{ env.PROJECT_ID }}
        export_default_credentials: true
    - name: Activate service account
      run: gcloud auth activate-service-account --key-file=${{ secrets.GCP_SA_KEY }}
    - name: Export Firestore data
      run: gcloud firestore export ${{ env.BUCKET }}

额外说明

  • 直接在setup-gcloud的project_id参数中指定项目ID,无需单独执行gcloud config set project
  • 确保GCP_SA_KEY这个Github Secret已正确配置,内容为服务账号的JSON密钥文件完整内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:28