我正在尝试在Google应用引擎上设置和使用环境变量。我的app.yaml文件如下所示。但是当我使用os.Getenv(“mytoken”)时,我得到一个空字符串而不是我设置的实际值。这是一个GAE错误吗?
api_version: go1
handlers:
- url: /.*
script: _go_app
env_variables:
mytoken: '88786d9b9a0359824'
答案 0 :(得分:8)
该功能现已记录here。 但是,正如我刚才测试的那样,它在AppEngine上不起作用。它可以在本地服务器上运行,所以不要被愚弄。。
编辑:适用于Google AppEngine。我以前的失败是由于错误造成的。考虑一下:
import "os"
var consumer = OAuth1Consumer{
secret: os.Getenv("secret")
}
如果您声明为全局变量,它将无效。
答案 1 :(得分:2)
不幸的是,GAE Go运行时在app.yaml中不支持环境变量设置 - 请参阅例如How to set GAE environment-specific environment variables?和https://groups.google.com/forum/#!msg/google-appengine-go/qzMbZapLyAU/eKOZzZO14qQJ。
PHP支持的功能 ,符合https://cloud.google.com/appengine/docs/php/config/appconfig#PHP_app_yaml_Defining_environment_variables; Java,每https://cloud.google.com/appengine/docs/java/config/appconfig#Java_appengine_web_xml_System_properties_and_environment_variables;和Python,每https://cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Defining_environment_variables。
然而,在App Engine的Go运行时 - 请参阅https://cloud.google.com/appengine/docs/go/config/appconfig - 没有相同的功能。
我建议在https://code.google.com/p/googleappengine/issues/list?can=2&q=language=Go&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log打开功能请求(我在27个开放式FR中没有看到任何等效的功能请求,否则,当然,我建议只是“主演”现有的FR注册你对它的兴趣)。
答案 2 :(得分:0)
我无法在任何地方找到该字段的文档。我只在python配置中看到它,而不是Go配置。如果你的基础是python docs here
,它很可能无法使用