みつろぐ

やれることはやってみる

GoogleAppEngineでGolangアプリケーションを作る

GoogleCoundPlatformでGolangアプリケーションを開発する際の手順書です

開発環境

Google Cloud SDKのインストール

# パッケージダウンロード
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-170.0.1-darwin-x86_64.tar.gz
tar xzvf google-cloud-sdk-170.0.1-darwin-x86_64.tar.gz
./google-cloud-sdk/install.sh

# Pathの登録
gcloud components install app-engine-go

Componentsのインストール

GoogleAppEngineに用意されているプラグインを追加します

gcloud components install app-engine-go

初期設定

コマンドを叩くとGoogleCloudPlatform関連のセットアップができます。ちなみに東京のリージョン名は「asia-northeast1-a」になります

gcloud init

動作テスト

以下のようなmain.go, app.yamlファイルを作成します

package sample

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World")
    })
}
runtime: go
api_version: go1
handlers:
- url: /.*
  script: _go_app

ローカル、リモートでの動作テストは以下のコマンドを実行することで行なえます

# ローカル
dev_appserver.py . --host=0.0.0.0 --enable_host_checking=0

# リモート
gcloud app deploy --log-http --verbosity=debug

ローカルではPCではなくスマートフォンなどからも利用することを考慮してhost,enable_host_checkingのオプションをつけています

リモートではデプロイ時のログを確認したいため必要なオプションを追加しています