![](/img/trans.png)
[英]Firebase Cloud Functions - FIREBASE_CONFIG environment variable is missing
[英]Set firebase functions config with secret environment variable
為源自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']
對於自定義的Google雲構建器,我遵循了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_KEY
或API_KEY
。 如果我將未加密的API_KEY添加到Google Cloud Build觸發器中的環境變量中,則替換將按預期進行。
我一直在按照github的說明鏈接進行操作:
https://github.com/GoogleCloudPlatform/cloud-builders-community/
對我來說很好。 只是為了確認您沒有錯過任何步驟,您是否重復了創建firebase令牌並將其應用於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>'
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.