前のチャプターで簡単にHugoを使ってブログを作成する方法を説明しました。
本チャプターではGAEへのデプロイ方法を紹介します。
Google App Engine
プロジェクトとgcloudの準備
クイックスタートページの “Before You Begin” を完了する
main.go を作成
GAE のラインタイムをGoにする場合、
main.go
をアップロードしなければならない。package main import ( "net/http" ) func init() { http.Handle("/", http.FileServer(http.Dir("public"))) }
package main
とfunction init() {...}
は必須。上記
init()
内ではpublicディレクトリ下のファイルを提供している。Hugo は生成物をpublicディレクトリに抽出するので、public配下のファイルをHTTPオブジェクトにハンドルさせればよい。
app.yaml を作成
app.yaml はGAEの肝:
- アップロードするファイルを管理
- 有効URLとハンドル方法を定義
- インスタンス管理
以下のように定義する。
runtime: go api_version: go1 env: standard # Resource non-hungry setting threadsafe: true automatic_scaling: max_instances: 1 max_idle_instances: 1 min_pending_latency: "3000ms" skip_files: - ^(?!public|main\.go).*$ handlers: - url: /css static_dir: public/css - url: /js static_dir: public/js - url: /img static_dir: public/img - url: /fonts static_dir: public/fonts - url: /.* script: _go_app
いざデプロイ!
gcloud app deploy
を実行することで app.yaml を読み込み、該当プロジェクトに対象ファイルをアップロードしてくれる。プロジェクトの指定には事前に
gcloud init
を実行する必要がある。デプロイされたウェブサイトを確認しよう!
gcloud app browse
すべて良くて、公開しても問題なければ自分のドメインとマッピング
ブログ完成!
次のチャプターにてコスト削減術を伝授