在Google Cloud Build中使用Google Cloud Secret作为环境变量

尼尔斯·克西奇(Niels Kersic)

我正在使用Cloud Build将Node应用程序部署到Google Cloud Run,并且希望在构建过程中运行一些测试。我的测试需要一些环境变量,因此我一直遵循本指南来实现。

该指南有以下注意事项:

注意:要在环境变量中使用密钥,您需要在变量名称前添加下划线“ _”,并使用'('进行转义。例如:_VARIABLE_NAME = $(cat password.txt)&& echo -n \ )_变量名称。

但是,我不太确定如何执行此操作。我已经尝试了以下方法cloudbuild.yaml

  - id: Execute tests
    name: node
    args: ['_VAR_ONE=$(cat var-one.txt)', '_VAR_TWO=$(cat var-two.txt)', 'jest -V']

返回以下内容:Error: Cannot find module '/workspace/_VAR_ONE=$(cat var-one.txt)'我还尝试了以上注释提到的转义符的一些变体,但它们导致相同的错误。

将秘密作为环境变量纳入我的代码的最佳方法是什么?另外,如果我需要使用多个环境变量,那么将Cloud KMS与.env文件配合使用会更好吗?

谢谢!

Tanjin

看起来您不正确地使用entrypointnode图像提供的内容您正在有效地运行以下命令:

node _VAR_ONE=$(cat var-one.txt) _VAR_TWO=$(cat var-two.txt) jest -V

我想离开一下,说这种模式在Node中不起作用,您需要调用之前首先指定环境变量node,例如VAR_ONE=$(cat foo.txt) VAR_TWO=bar node run test

无论如何,我认为您要运行的是:

_VAR_ONE=$(cat var-one.txt) _VAR_TWO=$(cat var-two.txt) jest -V

这就是我们的操作方式-假设您有上一步将秘密内容写到文件中,var-one.txt并且var-two.txt在上一步中-这是您在该node步骤中的使用方式,这只是您使用的标准方式从命令行运行命令时的环境变量:

- id: Execute tests
  name: node
  entrypoint: '/bin/bash'
  args:
     '-c', 
     '_VAR_ONE=$(cat var-one.txt) _VAR_TWO=$(cat var-two.txt) jest -V'
  ]

您需要确保在节点环境中使用指定的变量(即process.env._VAR_ONEprocess.env._VAR_TWO)。我认为您不需要在_此处添加字符前缀,但我尚未对其进行测试以确认这一点。您可以尝试上述方法,我认为它应该会使您更进一步。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Google Cloud上包含环境变量?

如何在Google App Engine标准环境中使用Google Cloud Build或其他方法设置环境变量?

Google Cloud Build 和 App Engine 环境变量

Google Cloud Build - 为 Dockerfile 传递环境变量

在 Google Cloud Build 中使用 Google Cloud Storage

Google Cloud from_service_account_json环境变量

在Xamarin中为Google Cloud API设置环境变量

使用SDK在Google Cloud中设置环境变量时出错

如何使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量对 Cloud Storage URL 进行签名?

无法以xamarin形式为Google.Cloud.Translation设置GOOGLE_APPLICATION_CREDENTIALS环境变量

如何使用 Google Cloud Console / Firebase Console 使环境变量在所有 Cloud Functions 中全局可用?

如何在VPC Perimeter中使用Google Cloud Build?

Google Cloud:如何在 Cloud Datalab 中使用 Cloud ML

Google Cloud Build超时

如何在本地环境中使用Google Cloud SDK

在Google Cloud App Engine中托管Rails App并设置环境变量

是否可以在 Google Cloud Run 中添加依赖环境变量?

Google Cloud Functions的开发环境

定期使用Google Cloud Scheduler触发Google Cloud Build

定期使用Google Cloud Scheduler触发Google Cloud Build

在Google Cloud Composer中使用json文件导入变量

Google Cloud Build + Google Secret Manager替代问题

在不使用环境变量的情况下验证Google Cloud愿景(通过代码设置凭据)

Google Cloud Build Dockerfile中的Google AppEngine ENV变量

使用Google Cloud Build on GCS部署失败

使用Dockerfile从Google Cloud Build部署到Google App Engine Flex环境

在Java中使用Google Cloud Storage

无法在GAE应用中使用Google Cloud

无法在 Google Cloud Datalab 中使用 graphviz