JavaScript が無効になっているよ!

2. Hugo を使いブログを GAE で管理

 ·  ☕ 2 分(読了時間)  ·  🐨 Puliyo

前のチャプターで簡単にHugoを使ってブログを作成する方法を説明しました。

本チャプターではGAEへのデプロイ方法を紹介します。


Google App Engine


  1. プロジェクトとgcloudの準備

    クイックスタートページの “Before You Begin” を完了する

  2. main.go を作成

    GAE のラインタイムをGoにする場合、main.go をアップロードしなければならない。

    package main
    
    import (
        "net/http"
    )
    
    func init() {
    	http.Handle("/", http.FileServer(http.Dir("public")))
    }
    

    package mainfunction init() {...} は必須。

    上記 init() 内ではpublicディレクトリ下のファイルを提供している。

    Hugo は生成物をpublicディレクトリに抽出するので、public配下のファイルをHTTPオブジェクトにハンドルさせればよい。

  3. 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
    
  4. いざデプロイ!

    gcloud app deploy を実行することで app.yaml を読み込み、該当プロジェクトに対象ファイルをアップロードしてくれる。

    プロジェクトの指定には事前に gcloud init を実行する必要がある。

  5. デプロイされたウェブサイトを確認しよう! gcloud app browse

  6. すべて良くて、公開しても問題なければ自分のドメインとマッピング

ブログ完成!


次のチャプターにてコスト削減術を伝授

シェア
支援