I recently upgraded to the latest version of the Go SDK (1.8.0), and now when I call os.Getenv("SERVER_SOFTWARE") I get a blank string. I am using this to determine if I am on my local development server or the live environment, and I am not aware of any other way to check. So an answer to either question would suite me just fine: 1) Why is that returning a blank string now? or 2) Is there some other way to check if I'm on the dev server?
So... I've been finding lots of "hey, I'm dumb and there's a better way" answers to my questions lately. This seems to be one of those. So if I back up a step, and address the real question that I'm trying to answer, everything becomes much simpler. I'm just trying to have a way to determine if I'm on the dev server or the live server. I was researching a totally unrelated problem, and found this: appengine.IsDevAppServer(). It's fully documented: https://developers.google.com/appengine/docs/go/reference#IsDevAppServer, I just never saw it until now.
Use the os.Environ
function to see what environment variables are set for the development server. See if any of them are candidates for distinguishing between the development and production servers. For example, the APPLICATION_ID
environment variable.
Accessing Application IDs in the Development Web Server
The development server simulates the production App Engine service. One way in which it does this is to prepend a string (
dev~
) to theAPPLICATION_ID
environment variable.