我正在将golang服务从App Engine标准环境移植到灵活环境中,并且对在开发/测试过程中访问app.yaml有疑问。
在我的app.yaml中,我有一个设置环境变量的区域,稍后我可以通过os.GetEnv(...)在代码中访问该区域:
env_variables:
FORGE_CLIENT_ID: 'my-client-id'
FORGE_CLIENT_SECRET: 'my-client-secret'
在App Engine标准环境中,此操作运行良好,因为我正在使用App Engine开发服务器dev-server.py
,我相信它将负责读取app.yaml文件并使这些环境变量可用。
但是,在开发过程中的灵活环境中,该服务仅通过go run *.go
启动,并且该应用程序似乎没有在app.yaml中获取任何信息,这意味着我得到了一个错误,我的环境变量没有设置。
我了解到app.yaml是在灵活环境中的部署期间使用的,但我不了解在开发过程中如何使用或是否使用它。如何从开发服务器访问这些环境变量?
谢谢。
答案 0 :(得分:0)
您将需要基于是否表示dev vs live的if / else,那么您只需解析yaml文件即可获取并设置这些变量。例如,我的一项服务(仍然以您的标准思维运行)仍在使用旧的SDK,而Yaml需要该版本。我这样解析:
win32api.SetCursorPos(...)
很明显,此文件随后存储在全局文件中,因此我不必每次都打开文件,但是,如果仅在本地开发人员中解析文件,则没有关系。 os.SetEnv
可能最适合您的情况。这只是对我有用的一种解决方案。
答案 1 :(得分:0)
对于Google App Engine flexible,开发服务器不使用“ app.yaml”,因为配置是在本地设置的。一种解决方法是在运行开发服务器之前设置环境变量。您可以检查question来设置仅用于该命令的变量。