在我的package.json
中,有以下一行:
{
"deploy:ci": firebase deploy --force --only functions --token \"$SECRET\"
}
还有我的cloudbuild.yaml
:
steps:
- name: "gcr.io/cloud-builders/docker"
args: ["build", "--tag", "gcr.io/$PROJECT_ID/functions", "."]
- name: "gcr.io/$PROJECT_ID/functions"
args: ["yarn", "deploy:ci"]
secretEnv: ["FIREBASE_TOKEN"]
secrets:
- kmsKeyName: projects/myproject/locations/global/keyRings/enviroment/cryptoKeys/firebase
secretEnv:
FIREBASE_TOKEN: VERY_LONG_UNGLY_AND_BORING_BASE64_STRING
我想知道是否可以向cloudbuild添加一些“特殊”权限,以允许在没有此FIREBASE_TOKEN
的情况下进行部署。
(所有文件都在同一个项目中)
答案 0 :(得分:1)
是的,有可能。但是您需要做几件事
假设您的云构建看起来像这样
steps:
- name: "gcr.io/cloud-builders/npm"
args: ["install"]
- name: "gcr.io/cloud-builders/npm"
args: ["run", "build]
- name: "gcr.io/cloud-builders/firebase"
args: ["deploy"]
您需要从here上传自己的firebase
图像,我想您已经对此很熟悉,否则,我基本上写了一篇类似的文章来介绍如何here反正...
在那之后,您要求的IAM是Firebase Admin
,您需要将其分配到您的...@cloudbuild.gserviceaccount.com
帐户。
Voila!您可以像使用sdk一样对其进行测试
gcloud builds submit --config cloudbuild.yaml .
当然要指向您的文件位置。
有意见的评论:我不是这种方法的忠实拥护者,我尝试了几次,并且总是存在一些问题,但这就是我们称之为{{1}的原因}:)
祝你好运。