【问题标题】:Set firebase functions config with secret environment variable使用秘密环境变量设置 firebase 函数配置
【发布时间】:2019-11-08 21:01:36
【问题描述】:

为源自 google kms 的 firebase 函数设置环境变量的推荐方法是什么?

在我的 cloudbuild.yaml 中,我有以下步骤:

  # Set env
  - name: 'gcr.io/$_PROJECT_ID/firebase'    
    args: ['functions:config:set', 'env.environment=$_ENV', 'env.build=$BUILD_ID','api_key=$API_KEY', '--project', '$_PROJECT_ID']
    dir: 'functions'    
    secretEnv: ['API_KEY','FIREBASE_TOKEN']

对于自定义谷歌云构建器,我遵循了来自 遵循https://github.com/GoogleCloudPlatform/cloud-builders-community/的指示

cloudbuild.yaml 无效或替换不起作用。

编辑:

错误信息

ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: invalid build: key in the template "API_KEY" is not a valid built-in substitution

如果我通过firebase functions:config:get 检索firebase 环境,我会看到$API_KEY$$API_KEYAPI_KEY,具体取决于所选的替换策略。 如果我将未加密的 API_KEY 添加到 Google Cloud Build Trigger 中的环境变量中,则替换将按预期工作。

【问题讨论】:

  • 根据documentation samples,查看该步骤一切似乎都很好。我唯一注意到的是,您在“args”列表的第一个字符串中有错字。您缺少单引号:functions:config:set' 应该是'functions:config:set'。如果这不是您的问题的根源,最好了解有关您遇到的错误的更多信息。
  • 感谢您指出错字。我编辑了最初的问题。替换不会发生,我最终将字符串 API_KEY 作为我的环境变量。不确定是否推荐使用 secretEnv 作为 args 的一部分

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


【解决方案1】:

我一直在关注 github 说明链接:

https://github.com/GoogleCloudPlatform/cloud-builders-community/

对我来说效果很好。只是为了确认您没有错过任何步骤,您是否重复了创建 firebase-token 所需的相同步骤并将它们应用于 API_KEY?

#### create a key for the api token
gcloud kms keys create api-token --location global --keyring cloudbuilder --purpose encryption

#### create the encrypted token
echo -n $API_TOKEN | gcloud kms encrypt \
  --plaintext-file=- \
  --ciphertext-file=- \
  --location=global \
  --keyring=cloudbuilder \
  --key=api-token | base64

我还必须在 cloudbuild.yaml 中添加另一个秘密:

Secrets:
- kmsKeyName: 'projects/[PROJECT_ID]/locations/global/keyRings/cloudbuilder/cryptoKeys/firebase-token'
  secretEnv:
    FIREBASE_TOKEN: '<YOUR_ENCRYPTED_TOKEN>'

- kmsKeyName: 'projects/[PROJECT_ID]/locations/global/keyRings/cloudbuilder/cryptoKeys/api-token'
  secretEnv:
    API_TOKEN: '<YOUR_ENCRYPTED_TOKEN>'

希望有帮助!

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2023-01-22
    相关资源
    最近更新 更多