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映像,将变量设置为一些虚拟值,这样您就不必担心多次设置它们