我无法在bitbucket部署的应用程序中检索代码中访问的环境变量。当我的应用程序启动时,我想获取db uri,如:const uri = process.env.MONGODB_CONNECTION_URI;
每当我从本地构建并推送工件时,我的环境变量就会成功地从我的机器上本地存储的..env文件中传递出来。显然,我不想提交这个文件。
当我使用Bitbucket管道将我的应用程序部署到GCP时。我能够成功地将一个新的工件推送到GCP。但是在应用程序启动时,它无法检索我的db-uri。
这文章非常接近于描述我想要实现的目标,但我看不出这如何解决这样一个事实,即属性值是一个实际的秘密,我无法将其提交给回购,并且需要从某个地方访问应用程序启动。
这问题描述了如何从云管道中的秘密管理器访问变量,而不是在应用程序本身中。
我使用预定义的google-app-engine-deploy-pipe。this的相关部分如下所示:
branches:
develop:
- step:
name: Deploy
deployment: test
script:
- pipe: atlassian/google-app-engine-deploy:1.0.0
variables:
KEY_FILE: $GCP_SECRET
PROJECT: 'test-project'
DEPLOYABLES: 'test.yaml'
PROMOTE: 'false'
STOP_PREVIOUS_VERSION: 'false'GCP_SECRET是一个基64编码的GCP服务帐户,从Bitbucket内部的秘密获取,运行良好。
在test.yml内部,我有以下内容:
runtime: nodejs
env: flex
instance_class: B1
manual_scaling:
instances: 1
env_variables:
NODE_ENV: "test"
MONGODB_CONNECTION_URI: $MONGODB_CONNECTION_URI所以我的问题是MONGODB_CONNECTION_URI。我尝试在GCP秘密管理器中添加一个新的秘密,其中有一个带有实际连接字符串的条目MONGODB_CONNECTION_URI,但是我的应用程序在启动时找不到这个属性。
我哪里出问题了?在如何传递我误解的秘密方面,有什么基本的东西吗?
我可以在Bitbucket部署管道中定义并传递一个变量吗?还是从Google平台直接访问环境变量的正确方法?
发布于 2021-10-14 11:19:25
我在这指南的帮助下解决了这个问题。
我发现这个解决方案有点麻烦,但至少现在对我来说很好。基本上,我:
发布于 2021-09-27 09:55:07
我建议您参考这个文档链接,以便创建和访问一个秘密管理器.
本文档链接为使用秘密管理器和各种Google服务的提供了资源。
例如,访问秘密管理器秘密并将它们公开为环境变量或通过云函数的文件系统公开。有关详细信息,请参见使用具有云功能的秘密管理器机密。
确保在机密、项目、文件夹或组织上添加秘密版本需要秘密管理器管理角色(roles/secretmanager.admin)。不能在秘密版本中授予角色。
请参阅这对类似问题的讨论。
https://stackoverflow.com/questions/69314970
复制相似问题