14.3 クラウドサービスにデプロイする

クラウド上のサービスにサーバーレス・コンテナのアプリをデプロイしましょう。AWSとGoogle Cloudのそれぞれ代表的なサービスについてのフローを紹介します。

それぞれのサービス向けにデプロイするベースとなるアプリケーションはローカルで普通に動く {"message":"hello"} というメッセージを返すウェブサービスです。ハンドラー部分は以下の通りです。 net/http 形式のハンドラー関数を作っています。実行環境向けの特別なライブラリは不要です。

リスト14-4: sampleapp/handler.go
package sampleapp

import (
	"encoding/json"
	"net/http"
)

func Handle(w http.ResponseWriter, _ *http.Request) {
	h := Hello{Message: "Hello world!"}
	enc := json.NewEncoder(w)
	enc.Encode(&h)
}

var Handler = http.HandlerFunc(Handle)

type Hello struct {
	Message string `json:"message"`
}

ハンドラーを起動するmain.goを作ります。 これも特別なところはありません。

リスト14-5: sampleapp/cmd/main.go
package main

import (
	"log"
	"net/http"
	"sampleapp"
)

func main() {
	log.Fatal(http.ListenAndServe(":8080" ...