Google app engine 如何在google appengine上设置环境变量?
我正试图在google app engine上设置并使用一个环境变量。我的app.yaml文件如下所示。但是,当我使用os.Getenv(“mytoken”)时,我会得到一个空字符串,而不是我设置的实际值。这是GAE臭虫吗Google app engine 如何在google appengine上设置环境变量?,google-app-engine,go,Google App Engine,Go,我正试图在google app engine上设置并使用一个环境变量。我的app.yaml文件如下所示。但是,当我使用os.Getenv(“mytoken”)时,我会得到一个空字符串,而不是我设置的实际值。这是GAE臭虫吗 api_version: go1 handlers: - url: /.* script: _go_app env_variables: mytoken: '88786d9b9a0359824' 我在任何地方都找不到该字段的文档。我只在python配置中看到它,而不
api_version: go1
handlers:
- url: /.*
script: _go_app
env_variables:
mytoken: '88786d9b9a0359824'
我在任何地方都找不到该字段的文档。我只在python配置中看到它,而不是Go配置。如果基于python文档,它可能不适用于go。不幸的是,GAE go运行时不支持app.yaml中的环境变量设置,请参见示例和 根据,PHP支持功能;爪哇,每小时;和Python 然而,在AppEngine的Go运行时中——请参阅——根本没有等效的功能
我建议在打开功能请求时(我在27个打开的FRs列表中没有看到任何等效的功能请求,或者,当然,我建议只“标记”现有的FR以注册您对它的兴趣)。该功能现在已记录在案。但是,正如我刚才测试的,它在AppEngine上不起作用。它在本地服务器上工作,所以不要上当 编辑:它在谷歌AppEngine上工作。我以前的失败是由于一个错误。考虑这一点:
import "os"
var consumer = OAuth1Consumer{
secret: os.Getenv("secret")
}
如果声明为全局变量,则此功能不起作用。问题似乎在于此:尽管目前它仅在开发服务器上工作,而在生产环境中不起作用。@MarkDoyle+1对于linkYep,在本次讨论仅3个月后,新功能就实现了,这真是太好了(它似乎在生产环境中起作用……但就在请求的上下文中,在完成init函数之后——大致与下一个问题的讨论相同……啊,好吧,总比什么都没有好!)。你能澄清一下“如果你声明为全局变量,它就不起作用”的意思吗?您的示例
consumer
变量是package global,因此不清楚您的意思。@DaveC我不确定出了什么问题,我是新手。问题是,如果我像示例代码一样将变量声明为package global,它在AppEngine上不起作用(但是它在本地开发服务器上起作用)。但是,如果我将os.Getenv
移动到某个函数中,它就会工作。我不知道内部。根据下面提供的链接@markdoyle(code.google.com/p/googleappengine/issues/detail?id=12006),直到所有的init函数都运行了,环境变量才准备好,我想说的是,全局变量声明也可能是这样。它从一个函数开始工作,因为到那时环境变量已经设置好了。