首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用cloudbuild将秘密管理器秘密传递给app.yaml中的引擎环境变量

如何使用cloudbuild将秘密管理器秘密传递给app.yaml中的引擎环境变量
EN

Stack Overflow用户
提问于 2021-10-10 13:54:15
回答 2查看 985关注 0票数 0

下面是我的 app.yaml

代码语言:javascript
运行
复制
runtime: python39
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
  python_version: 3

env_variables:
     SEC: %sec%

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

,这是我的应用程序引擎的cloudbuild.yaml,试图将一个秘密的谷传递给app.yaml作为env可验证的

代码语言:javascript
运行
复制
   steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: 'bash'
      args: ['-c', "export _VAL=$(echo $$SEC) 
              && echo $$SEC;echo $_VAL  && sed -i 's/%sec%/'$$SEC'/g' app.yaml
              && gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy"
      ]
      secretEnv: ["SEC"]
    availableSecrets:
      secretManager:
      - versionName: projects/$PROJECT_ID/secrets/db_secret/versions/3
        env: 'SEC'
    
    timeout: '1600s'
EN

Stack Overflow用户

回答已采纳

发布于 2021-10-11 14:49:47

过去,我只使用">>“将env附加到我的app.yaml底部就可以做到这一点。使用此方法,您的env_variables部分需要是app.yaml的最后一个部分。

不过,我不再使用这种方法了,秘密会出现在您的云构建日志中。这些天,我只是导入秘密管理程序包来获取应用程序中的机密。

cloudbuild.yaml

代码语言:javascript
运行
复制
steps:
- name: "gcr.io/cloud-builders/gcloud"
  secretEnv: ['SECRET_ONE','SECRET_TWO']
  entrypoint: 'bash'
  args: 
  - -c
  - |
    echo $'\n  SECRET_ONE: '$$SECRET_ONE >> app.yaml
    echo $'\n  SECRET_TWO: '$$SECRET_TWO >> app.yaml
    gcloud -q app deploy
availableSecrets:
  secretManager:
  - versionName: projects/012345678901/secrets/SECRET_ONE
    env: 'SECRET_ONE'
  - versionName: projects/012345678901/secrets/SECRET_TWO
    env: 'SECRET_TWO'

app.yaml

代码语言:javascript
运行
复制
runtime: go116
main: cmd
service: serviceone
env_variables:
  PROJECT_ID: project-a0a00
  PORT: 8080
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69515785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档