in openwhisk/actionProxy.go [114:147]
func (ap *ActionProxy) SetEnv(env map[string]interface{}) {
// Propagate proxy version
ap.env["__OW_PROXY_VERSION"] = Version
// propagate OW_EXECUTION_ENV as __OW_EXECUTION_ENV
ee := os.Getenv("OW_EXECUTION_ENV")
if ee != "" {
ap.env["__OW_EXECUTION_ENV"] = ee
}
// require an ack
wa := os.Getenv("OW_WAIT_FOR_ACK")
if wa != "" {
ap.env["__OW_WAIT_FOR_ACK"] = wa
}
// propagate all the variables starting with "__OW_"
for _, v := range os.Environ() {
if strings.HasPrefix(v, "__OW_") {
res := strings.Split(v, "=")
ap.env[res[0]] = res[1]
}
}
// get other variables from the init payload
for k, v := range env {
s, ok := v.(string)
if ok {
ap.env[k] = s
continue
}
buf, err := json.Marshal(v)
if err == nil {
ap.env[k] = string(buf)
}
}
Debug("init env: %s", ap.env)
}