簡體   English   中英

使用秘密環境變量設置Firebase函數配置

[英]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_KEYAPI_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM