部署Cloud Functions时如何排除ServiceAccountKey.json?部署疑问解答
部署Cloud Functions时排除ServiceAccountKey.json的方法及相关问题说明
一、怎么排除ServiceAccountKey.json不上传
- 用
.gcloudignore文件控制:在你的函数项目根目录创建(没有就新建).gcloudignore文件,把ServiceAccountKey.json写进去就行。这个文件和.gitignore逻辑一样,专门告诉gcloud CLI哪些文件不用传到GCP。示例内容:ServiceAccountKey.json - 复用git忽略规则:如果你的
.gitignore已经把这个文件排除了,可以在.gcloudignore里加一行!include:.gitignore,这样gcloud会直接套用git的忽略列表,不用重复配置。
二、firebase deploy --only functions会不会上传这个文件
默认情况下,Firebase CLI部署时会遵循.firebaseignore或者.gcloudignore的规则(底层依赖gcloud的逻辑)。如果没配置任何忽略规则,这个密钥文件很大概率会被上传到GCP的函数环境里,这绝对是安全隐患——毕竟这个文件包含服务账号的权限密钥,泄露后可能导致你的GCP资源被恶意使用。
所以一定要先配置好忽略规则,再执行部署命令。
额外提醒:本地开发时,建议用环境变量来指定密钥文件路径,比如在终端运行export GOOGLE_APPLICATION_CREDENTIALS=./ServiceAccountKey.json(Linux/macOS)或者set GOOGLE_APPLICATION_CREDENTIALS=./ServiceAccountKey.json(Windows),这样代码里通过默认凭据链就能获取权限,还能避免文件被误提交或上传。
内容的提问来源于stack exchange,提问作者Shun Takahashi
相关产品推荐
相关产品推荐

