Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 测试本地依赖于环境变量的应用程序_Go_Google App Engine_Gcloud_Google App Engine Go - Fatal编程技术网

Go 测试本地依赖于环境变量的应用程序

Go 测试本地依赖于环境变量的应用程序,go,google-app-engine,gcloud,google-app-engine-go,Go,Google App Engine,Gcloud,Google App Engine Go,谷歌的应用程序引擎提供了一个列表,其他环境变量可以在中定义。同时,关于如何使用go run在本地测试应用程序的说明。如果我在a中本地测试我的应用程序,是否有gcloud命令(或其他工具)可以在本地容器中创建与应用程序引擎中相同的环境变量?现在我只是用bash脚本在本地设置环境变量,但这意味着我需要在多个位置维护这些变量。这些变量都是运行时元数据。只有运行时可以为这些变量提供值,然后数据特定于部署 如果您的应用程序需要此元数据,您将知道它使用哪些变量以及如何使用它们,并且在指定值时,您仍需要提供变

谷歌的应用程序引擎提供了一个列表,其他环境变量可以在中定义。同时,关于如何使用
go run
在本地测试应用程序的说明。如果我在a中本地测试我的应用程序,是否有
gcloud
命令(或其他工具)可以在本地容器中创建与应用程序引擎中相同的环境变量?现在我只是用bash脚本在本地设置环境变量,但这意味着我需要在多个位置维护这些变量。

这些变量都是运行时元数据。只有运行时可以为这些变量提供值,然后数据特定于部署

如果您的应用程序需要此元数据,您将知道它使用哪些变量以及如何使用它们,并且在指定值时,您仍需要提供变量名称,例如
GAE_SERVICE=“freddie”

出于这些原因,本地测试可能无法为您伪造这些值。当你运行你的应用程序时,没有什么内在的东西可以让它成为一个应用引擎应用程序。它只有在部署后才会变成一个,因为它在应用程序引擎服务上运行

如果在容器中运行代码,则可以向容器运行时提供环境变量。这样做可能比编写以下脚本更可取:

GAE_SERVICE=“freddie”
码头工人跑\
--env=GAE_SERVICE=${GAE_SERVICE}\
...
虽然应用程序引擎并不实用,但有一个理由认为您的代码不能直接绑定到任何运行时(例如,应用程序引擎)元数据。如果是这样,你就不能在其他地方轻松运行它


在其他平台中,元数据将被进一步抽象,某种侧车将元数据转换为一致呈现的形式,而不管您将元数据部署到何处;您的代码不会更改,但某些适配器会为每个运行时正确配置它。

无法使用gcloud命令添加此环境变量。此外,似乎不可能从当前部署的应用程序下载环境变量信息。但是,您可以创建一个自定义docker映像,将变量设置为一些虚拟值,这样您就不必担心多次设置它们