{GCP App Engine}App Engine で Go アプリをビルドする

 

https://cloud.google.com/appengine/docs/standard/go/building-app?hl=ja#cloud-shell

https://dev.classmethod.jp/articles/gae-webapp/

https://www.topgate.co.jp/gcp05-google-app-engine-run-application#google-app-engine

 

-- 1. 前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet

 

gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com --project project01-9999999

 

-- 2. App Engine 用の基本的なウェブサービスを作成する


mkdir go-app

cd go-app

vim app.yaml

runtime: go115  # or another supported version


vim main.go

package main

import (
        "fmt"
        "log"
        "net/http"
        "os"
)

func main() {
        http.HandleFunc("/", indexHandler)

        port := os.Getenv("PORT")
        if port == "" {
                port = "8080"
                log.Printf("Defaulting to port %s", port)
        }

        log.Printf("Listening on port %s", port)
        if err := http.ListenAndServe(":"+port, nil); err != nil {
                log.Fatal(err)
        }
}

func indexHandler(w http.ResponseWriter, r *http.Request) {
        if r.URL.Path != "/" {
                http.NotFound(w, r)
                return
        }
        fmt.Fprint(w, "Hello, World!")
}

 

-- 3. ウェブサービスを App Engine にデプロイする

gcloud app create

gcloud app deploy

gcloud app describe


gcloud app browse


curl https://project01-9999999.an.r.appspot.com

 

コンソールをみると削除や停止が非活性化されており、削除や停止ができない。
削除や停止には条件がある模様

-- 4. クリーンアップ

gcloud projects list

gcloud projects delete project01-9999999


コンソールをみるとプロジェクトが削除されずに残っている。
コンソールからプロジェクトを削除した。