Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

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" ...

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now