// Sample hello demonstrates a difficult to troubleshoot service.
package main
import (
"fmt"
"log"
"net/http"
"os"
)
func main() {
log.Print("hello: service started")
http.HandleFunc("/", helloHandler)
port := os.Getenv("PORT")
if port == "" {
port = "8080"
log.Printf("Defaulting to port %s", port)
}
log.Printf("Listening on port %s", port)
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil))
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
log.Print("hello: received request")
name := os.Getenv("NAME")
if name == "" {
log.Printf("Missing required server parameter")
// The panic stack trace appears in Cloud Error Reporting.
panic("Missing required server parameter")
}
fmt.Fprintf(w, "Hello %s!\n", name)
}
import json
import os
from flask import Flask
app = Flask(__name__)
@app.route("/", methods=["GET"])
def index():
print("hello: received request.")
NAME = os.getenv("NAME")
if not NAME:
print("Environment validation failed.")
raise Exception("Missing required service parameter.")
return f"Hello {NAME}"
if __name__ == "__main__":
PORT = int(os.getenv("PORT")) if os.getenv("PORT") else 8080
# This is used when running locally. Gunicorn is used to run the
# application on Cloud Run. See entrypoint in Dockerfile.
app.run(host="127.0.0.1", port=PORT, debug=True)