【问题标题】:Use Google Cloud Build to deploy Firebase without Firebase CI token使用 Google Cloud Build 部署 Firebase,无需 Firebase CI 令牌
【发布时间】:2019-06-11 19:04:45
【问题描述】:

在我的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 的情况下进行部署。

(所有文件都在同一个项目中)

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions google-cloud-build


    【解决方案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 帐户。

    瞧!你可以测试它(使用 sdk)

    gcloud builds submit --config cloudbuild.yaml .
    

    当然指向你的文件位置。

    意见评论:我不是这种方法的忠实拥护者,我尝试了几次,但总是有一些问题,但是,这就是我们称之为opinionated comment 的原因: )

    祝你好运。

    【讨论】:

    • 谢谢@andresmijares,我同意你的看法。
    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多