Google Cloud Functionsとは
Google Cloud Functions (以下Cloud Functions) は、GoogleがGoogle Cloud Platformで提供しているサーバレスアーキテクチャです。AmazonではAWS Lambdaとして提供しているものと同じサービスに当たります。どちらが優れているとは利用用途に寄るため一概に言えないですが、従来のCloud FunctionsではNode.jsしか利用できませんでしたが、Python 3系にも対応しましたので紹介します(2018年8月7日現在ベータ版)。
プロジェクト作成
最初にGCP のコンソール画面を開きプロジェクトを作成します。既に存在している場合は、それを利用して頂いても大丈夫です。
Cloud Functionsの利用
ナビゲーションメニューからコンピューティング項目にある「Cloud Functions」を選択すると、Cloud Functionsのダッシュボードが開きます。一度も作成したことがなければ、画面中央に「Google Cloud Functions」と表示され「APIを有効にする」ボタンが表示されます。ボタンを押下してCloud Functionsの利用を始めましょう。次に「関数を作成」ボタンを押下します。
関数の作成
今回は、あるURLにリクエストしたらレスポンスとしてjson形式で1~10がランダムに並んでいる配列を返しましょう。そして次のように設定して下さい。
- トリガー … HTTP
- ソースコード … インライン エディタ
- ランタイム … Python 3.7 (ベータ版)
- main.py … 以下のソースコード
import random
import flask
def randint(request):
list10 = list(range(1, 11))
random.shuffle(list10)
return flask.make_response(flask.jsonify(list10))
ここではFlaskを利用してレスポンスを生成しています。(本来であればmain.pyタブの右にあるrequirements.txtにFlaskを示す必要があると思われますが、今回は特に記述なく関数を作成することができました。)全ての入力が完了したら「作成」ボタンを押下します。
1~2分待つと、Cloud Functionsの関数一覧が表示されます。そして作成した関数の左に緑のチェックマークが表示されるまで待ちます。ここで一点注意があります。緑のチェックマークが表示されてから更に1~2分待たないとレスポンスが返ってきません。
今回はトリガーに「HTTP」を選択したので、ブラウザよりURLを叩くことでレスポンスを確認することができます。そのURLは「関数の詳細」画面に表示されています。上の画面から関数を選択すると「関数の詳細」画面が表示されます。その中にある「トリガー」タブを選択するとURLが表示されるのでリンクをクリックしましょう。するとレスポンスが表示されるでしょう。
まとめ
いかがでしたでしょうか。特に難しい設定なくCloud Functionsを利用できることが分かって頂けたかと思います。Cloud Functionsはまだまだ発展途上ですが、現時点でも使い方は様々あるかと思います。中にはCloud Functionsを利用し、サーバレスでホームページを作るような面白い使い方をしている方も居られます。このサービスがあることにより、いろいろな可能性が広がるものと思われます。