2019/01/24

Google Cloud FunctionsにGo言語サポートきましたよ!ʕ◔ϖ◔ʔ (HTTP Functions編)

ついに来た!


Today, we're excited to announce support for Go on Cloud Functions.
Get Go-ing with Cloud Functions: Go 1.11 is now a supported language

GCPのCloud Functionsに、Go言語のサポートが来ました!素晴らしい!!
という訳で、早速使ってみましょうʕ◔ϖ◔ʔ



2つの機能


以下の2つの機能があるようです。
  • HTTP functions:
    • HTTPのリクエストに応答する
  • Background functions:
    • Cloud Storageのバケットにファイルが追加された時などに発火されるeventに応答する

先のGCPブログ記事だけでなく、以下の公式動画「Go Cloud Functions」も非常に参考になります。


準備

さっそくコードを書いて動かしたいのですが、2019/01/24現在でCloud Functionsがベータ版ということもありgcloudツールのbeta機能をインストールするなど準備が必要です。

こちらの記事を読みながら以下を実施しておきます。
1. GCP プロジェクトを選択または作成します。
2. プロジェクトに対して課金が有効になっていることを確認します。
3. Cloud Functions API を有効にする。(API を有効にすると、認証情報を得る必要はありません。)
4. Cloud SDK をインストールし、初期化します。
5. gcloud コンポーネントを更新し、インストールします。

gcloud components update &&
gcloud components install beta

クイックスタート: gcloud コマンドライン ツールの使用

HTTP functions

動画に登場するサンプルを使います。以下をfunction.goとして保存します。
// function.go
package hello

import "net/http"

func F(w http.ResponseWriter, r *http.Request) {
        msg := []byte("Hello, 世界!")
        w.Write(msg)
}

では、デプロイしてみましょう。
記事「Cloud Functions Tokyo Region を試してみた」を参考にして東京リージョンを使います。
gcloud functions deploy hello \
--runtime go111 \
--entry-point F \
--region asia-northeast1 \
--trigger-http

実行結果のhttpsTriggerに記載のURLをブラウザで開くと、無事に関数が動作していることが確認できましたʕ◔ϖ◔ʔウヒョー

まとめ


Go言語で書いた「HTTPリクエストに応答する関数」が、とても簡単にCloud Functionsにデプロイできるということが確認できました!素晴らしいですね(*´ω`*)

次回は小ネタを挟みつつBackground Functionsを使ってみたいと思います!

0 件のコメント: