LoginSignup
1
1

More than 3 years have passed since last update.

Cloud FunctionsでGETリクエストを受けてHello Worldを返す関数をデプロイするメモ

Last updated at Posted at 2019-12-14

なにこれ

タイトルの通り。
GCP初めて。
クイックスタート: gcloud コマンドライン ツールの使用を参考しながら自分用に削除したり、付け足ししたりしてます。

環境準備

  1. GCPのプロジェクトを新規で立てる
  2. Cloud Shellを起動する
  3. Google Cloud SDKを最新に更新する sudo gcloud components update
  4. Google Cloud SDKのベータ版機能をインストールする sudo gcloud components install beta

Hello World!を返す関数をデプロイする

プログラムはGo言語でサクッと書く。

package functions

import (
    "fmt"
    "net/http"
)

func HelloWorldHTTP(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case http.MethodGet:
        fmt.Fprintln(w, "Hello World!")
    default:
        http.Error(w, "Not Allowed", http.StatusMethodNotAllowed)
    }
}

コマンドでデプロイする

gcloud functions deploy HelloWorldHTTP --runtime go111 --trigger-http

関数を新規登録する時には確認有り

Allow unauthenticated invocations of new function [HelloWorldHTTP]?
(y/N)?

デプロイ完了したら以下が表示される。

Deploying.function (may take a while - up to 2 minutes)...done.
availableMemoryMb: 256
entryPoint: HelloWorldHTTP
httpsTrigger:
  url: hogehoge
labels:
  deployment-tool: cli-gcloud
name: projects/hogehoge/locations/us-central1/functions/HelloWorldHTTP
runtime: go111
serviceAccountEmail: hogehoge@appspot.gserviceaccount.com
sourceUploadUrl: hogehoge
status: ACTIVE
timeout: 60s
updateTime: '2019-12-14T15:49:56Z'
versionId: '1'

動作確認

curl -X GET [url]
Hello World!

curl -X POST -d "hoge" [url]
Not Allowed

できてるー。

所感とか雑多なメモ

  • 簡単なAPI作成するのにめっちゃ便利。安いし。料金のドキュメント
  • 2019/12/14時点ではGoのランタイムは1.11が最新っぽい。1.12, 1.13は動かず。実行環境のドキュメント
  • Cloud Shell便利。だけどこいつ何者?
  • asia-northeast1リージョンにデプロイしたい
  • 日本語ドキュメントが全体的にAWSよりわかりやすい気がする。Cloud Functionsのドキュメント
  • コード変更変更してからデプロイまでするフローどうやって管理するんだ?
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1