如何根据项目ID设置变量?

时间:2016-03-23 17:14:29

标签: google-app-engine go

我目前有一个包含2个项目的App Engine Go应用:myapp-prodmyapp-staging

我希望能够根据应用程序在prod或staging中运行来设置某些变量的值。

应用程序是否有办法检测它正在运行的环境?

由于

2 个答案:

答案 0 :(得分:2)

您可以使用appengine.AppID()函数获取应用程序的名称/ ID:

// AppID returns the application ID for the current application.
// The string will be a plain application ID (e.g. "appid"), with a
// domain prefix for custom domain deployments (e.g. "example.com:appid"). 
func AppID(c Context) string

您可以使用appengine.IsDevAppServer()来判断您的应用是在运行模式下运行(使用AppEngine SDK)还是实时运行(在生产环境中):

// IsDevAppServer reports whether the App Engine app is running in the
// development App Server. 
func IsDevAppServer() bool

或者您也可以使用包含上述两种信息的appengine.ServerSoftware(),合并为一个字符串:

// ServerSoftware returns the App Engine release version.
// In production, it looks like "Google App Engine/X.Y.Z".
// In the development appserver, it looks like "Development/X.Y". 
func ServerSoftware() string

答案 1 :(得分:1)

使用environment variable描述您的应用是处于制作还是暂存状态。添加到app.yml

env_variables:
  ENVIRONMENT: 'production'

在您的代码中,

import "os"

if v := os.Getenv("ENVIRONMENT"); v == "production" {
  // You're in production
}