我无法检索在我的比特桶部署应用程序的代码中访问的环境变量。当我的应用程序启动时,我想获取db uri,如下所示:const uri=process.env.MONGODB_CONNECTION_URI;
每当我从本地构建并推送工件时,我的环境变量都会从本地成功传递。我在本地存储在我的机器上的env文件。显然我不想提交这个文件。
当我使用比特桶管道将我的应用程序部署到GCP时。我能够成功地将一个新的工件推送到GCP。但是在应用程序启动时,它无法检索我的db-uri。
这篇文章非常接近于描述我想要实现的目标,但我不明白这是如何解决这样一个事实,即属性值是一个实际的秘密,我无法提交给回购协议,需要在应用程序启动时从某处访问它。
此问题描述了如何从云管道中的秘密管理器访问变量,而不是在应用程序本身中。
我使用预定义的谷歌应用程序引擎部署管道
。我的bitbucket管道的相关部分。yml看起来像这样:
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
是base-64编码的GCP服务帐户,从Bitbucket中的SECRET获取,运行良好。
在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部署管道中定义并传递变量吗?还是直接从谷歌云平台访问环境变量的正确方法?
在这本指南的帮助下,我解决了这个问题
我觉得这个解决方案有点老套,但至少现在对我来说效果不错。基本上,我:
我建议您参考此文档链接,以便创建和访问机密管理器。
此文档链接提供了将Secret Manager与各种Google云服务结合使用的资源。
例如,访问秘密管理器机密,并将其作为环境变量或通过云函数中的文件系统公开。有关详细信息,请参阅将秘密管理器机密与云函数一起使用。
确保添加机密版本需要机密、项目、文件夹或组织上的机密管理器管理员角色(roles/secretmanager.Admin)。不能在秘密版本上授予角色。
请参阅关于类似问题的讨论。
我想知道是否有可能从非谷歌App Engine服务器上使用API搜索存储在谷歌云存储中的文件。
在谷歌云存储中,我在名为图像的根桶中有一个名为猫的桶。我正在使用google-api-ruby-Client gem上传文件。我可以将文件上传到根桶“图像”,但上传到“图像/猫”不起作用。我知道谷歌云存储中的存储桶没有斜杠的概念,所以我无法弄清楚如何指定嵌套存储桶的名称。 这给出了nil:NilClass的错误
我是一个非营利组织的谷歌办公套件管理员,刚刚发现了数据导出功能,这似乎就像个人账户的外卖。 导出文件已经准备好,现在可以从谷歌云平台存储中的存储桶下载。然而,有很多很多文件夹,试图进出每个文件夹来下载很多很多。每个文件中的zip文件听起来都是一个令人头疼的问题。 我在Mac上使用Transmit,它可以通过与Amazon S3的互操作性连接到谷歌云存储。然而,当我连接时,我什么也看不到(因为我不使
我有一个具有统一访问控制的Google云存储桶,我在权限中添加了“诱惑者”。它说该对象是公共的,但当我尝试打开链接时,仍会收到此消息:“匿名调用方没有storage.objects.get access to the Google Cloud storage object”错误代码为“401”。我希望任何用户都能够访问该链接。我该怎么做?提前谢谢! 向你问好本
我建立Android应用程序链接到谷歌云存储。我想允许访问GCS到我的Android应用程序只。 谷歌提供三种安全连接地面军事系统的解决方案: Oauth 2.0(谷歌账户也是如此) 资料来源:https://developers.google.com/storage/docs/authentication?hl=FR 是否有其他通过地面军事系统安全连接的解决方案?我希望通过这种方式在地面军事系统
我们一直在使用服务,在(AWS)中,我们意外删除了一个目录,因此我们认为它应该在中,但是经过查看,尽管处于打开状态,但它并不存在。