Google cloud platform 在gcloud中将JSON文件作为环境变量传递

Google cloud platform 在gcloud中将JSON文件作为环境变量传递,google-cloud-platform,environment-variables,gcloud,google-cloud-run,Google Cloud Platform,Environment Variables,Gcloud,Google Cloud Run,我试图将一个秘密传递到云运行命令中。秘密是一个json文件。我想把它作为一个环境变量传入 它在docker中非常有效,使用: docker run -it -e "SECRET_ENV=$(<path/secretFile.json)" -p 8080:8080 my_image 当我在gcloud上使用相同的方法时,我得到一个错误,告诉我它试图运行json文件的每一行: gcloud run deploy --image gcr.io/account/project --update

我试图将一个秘密传递到云运行命令中。秘密是一个json文件。我想把它作为一个环境变量传入

它在docker中非常有效,使用:

docker run -it -e "SECRET_ENV=$(<path/secretFile.json)" -p 8080:8080 my_image 
当我在gcloud上使用相同的方法时,我得到一个错误,告诉我它试图运行json文件的每一行:

gcloud run deploy --image gcr.io/account/project --update-env-vars "SECRET_JSON=$(<path/secretFile.json)"

干杯

感谢@Kolban与我一起解决这个问题

感谢@tzovourn对以下内容的建议:

GCP gcloud命令似乎有错误和/或不支持JSON


我最后使用的解决方案是在将json设置为环境变量之前对其进行base64编码。现在docker和gcloud命令采用相同的数据和格式。

感谢@Kolban与我一起解决这个问题

感谢@tzovourn对以下内容的建议:

GCP gcloud命令似乎有错误和/或不支持JSON

我最后使用的解决方案是在将json设置为环境变量之前对其进行base64编码。现在docker和gcloud命令采用相同的数据和格式。

当前gcloud run deploy不支持通过json文件设置环境变量。可以找到有关云运行环境变量的更多信息

您可能需要为此改进提交一个文件。

当前gcloud run deploy不支持通过json文件设置环境变量。可以找到有关云运行环境变量的更多信息


您可能希望为此改进提交一个文件。

我从未见过$filename作为将文件内容输入命令行的方式。我总是看到$cat文件名。。。是否可以再次检查您是否正在编写$filename。我的想法是,应该尝试并执行文件名中的所有命令,并且输出成为变量替换。使用cat尝试了它,但同样的结果感谢您的尝试:它在docker命令中100%有效。在我的开发过程中一直在使用它。谢谢你的努力。。。我刚刚意识到扩展开始了:$<文件名,而不是我误读的$filename。很抱歉给您带来了混乱。我建议的下一件事是将您的命令放在脚本文件中,并使用-x运行该文件,让我们看看是否有任何东西在扩展中被报告为异常。当从sh文件中使用-x运行时,我得到:dict arg的语法错误:我们可能需要查看secretFile.json中的内容。我希望有一个简单的方式在StackOverflow进行现场聊天。。。我很想在您工作时回头看看:-我从未见过$filename作为将文件内容输入命令行的方式。我总是看到$cat文件名。。。是否可以再次检查您是否正在编写$filename。我的想法是,应该尝试并执行文件名中的所有命令,并且输出成为变量替换。使用cat尝试了它,但同样的结果感谢您的尝试:它在docker命令中100%有效。在我的开发过程中一直在使用它。谢谢你的努力。。。我刚刚意识到扩展开始了:$<文件名,而不是我误读的$filename。很抱歉给您带来了混乱。我建议的下一件事是将您的命令放在脚本文件中,并使用-x运行该文件,让我们看看是否有任何东西在扩展中被报告为异常。当从sh文件中使用-x运行时,我得到:dict arg的语法错误:我们可能需要查看secretFile.json中的内容。我希望有一个简单的方式在StackOverflow进行现场聊天。。。我很乐意在你工作的时候回头看看,这是所有不支持的事情中的一个。此外,现在谁在使用JSON进行信息传输,这是所有不支持的东西中的一个。此外,现在谁在使用JSON进行信息传输呢?我们的想法不是通过JSON设置环境变量,而是将环境变量设置为JSONY。你说得对。既然你已经找到了一个解决方法,那么现在你可以在Google云平台上使用来管理机密。这个想法不是通过JSON来设置环境变量,而是将环境变量设置为JSONY。你是对的。既然你已经找到了一个解决办法,那么现在你可以在谷歌云平台上使用。