Cloud Run を最速で触ってみる

chidakiyo
Apr 10 · 8 min read

Cloud Run とは

事前に必要なこと

コンポーネントをupdateする

gcloud components update

betaコンポーネントをinstallする

gcloud components install beta

Cloud Runのリージョンを設定する

gcloud config set run/region us-central1

ビルドとデプロイ

ディレクトリの作成

mkdir helloworld-go
cd helloworld-go

ソースコードの作成

package mainimport (
        "fmt"
        "log"
        "net/http"
        "os"
)func handler(w http.ResponseWriter, r *http.Request) {
        log.Print("Hello world received a request.")
        target := os.Getenv("TARGET")
        if target == "" {
                target = "World"
        }
        fmt.Fprintf(w, "Hello %s!\n", target)
}func main() {
        log.Print("Hello world sample started.")        http.HandleFunc("/", handler)        port := os.Getenv("PORT")
        if port == "" {
                port = "8080"
        }        log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil))
}

コンテナ化し、GCR(Google Container Repository)にアップロードする

# Use the offical Golang image to create a build artifact.
# This is based on Debian and sets the GOPATH to /go.
# https://hub.docker.com/_/golang
FROM golang:1.12 as builder# Copy local code to the container image.
WORKDIR /go/src/github.com/knative/docs/helloworld
COPY . .# Build the command inside the container.
# (You may fetch or manage dependencies here,
# either manually or with a tool like "godep".)
RUN CGO_ENABLED=0 GOOS=linux go build -v -o helloworld# Use a Docker multi-stage build to create a lean production image.
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
FROM alpine# Copy the binary to the production image from the builder stage.
COPY --from=builder /go/src/github.com/knative/docs/helloworld/helloworld /helloworld# Run the web service on container startup.
CMD ["/helloworld"]

コンテナをBuildし、GCRにuploadする

gcloud builds submit --project ${PROJECT_ID} --tag gcr.io/${PROJECT_ID}/helloworld

Cloud Runにデプロイします

gcloud beta run deploy --project ${PROJECT_ID} --image gcr.io/${PROJECT_ID}/helloworld

サービス名を入力

リージョンの入力

アプリケーションへのアクセス

デプロイしたアプリケーションを確認する

Cloud Run のメニューを開く

サービスの詳細を確認する

Web UI上からデプロイしてみる

おまけ : カスタムドメインの適用

感想

google-cloud-jp

Google Cloud Platform 製品などに関連するコミュニティが記載したテクニカル記事集。掲載された意見は著者のものであり、必ずしも Google のものを反映するものではありません。

57

57 claps
chidakiyo

Written by

chidakiyo

Engineer

google-cloud-jp

Google Cloud Platform 製品などに関連するコミュニティが記載したテクニカル記事集。掲載された意見は著者のものであり、必ずしも Google のものを反映するものではありません。