Python
Flask
JSON
gcp
cloudfunctions

Google Cloud FunctionsのPython(Beta)でHttpトリガーのときJSONを返す


概要

関数作成のサンプルを見る限り、Flaskが利用できるみたいだったので、試してみました。


手順

> cd 任意のディレクトリ

> touch main.py
> vi main.py


main.py

from flask import jsonify, make_response

def flask_json_response(request):
return make_response(jsonify({'hoge': 'fuga'}))


で、デプロイします。

> gcloud beta functions deploy flask_json_response \

--trigger-http \
--runtime=python37

ポイントとしてはFlaskをpip installしてなくてもCloud Functions上では利用できる状態になっているってことでしょうか?

けど、実際にはローカル開発時にpip installしそう。どうでしょう?

で、呼び出します。

> curl --include https://us-central1-プロジェクトID.cloudfunctions.net/flask_json_response

HTTP/1.1 200 OK
Content-Type: application/json
Function-Execution-Id: a55fsn8a2dc7
X-Cloud-Trace-Context: 9b776cf314416e08c181efaab7524a1e
Date: Thu, 09 Aug 2018 06:33:42 GMT
Server: Google Frontend
Content-Length: 21
Alt-Svc: quic=":443"; ma=2592000; v="44,43,39,35"

{
"hoge": "fuga"
}

はい。

Content-Type も自動で、application/json になってくれてますね。

わかれば簡単なのですが、なにせ公式ドキュメントがまだないので^^;;;


参考

Flask Application Object

http://flask.pocoo.org/docs/0.12/api/#flask.Flask.session_interface

もっとも簡単なFlaskの作り方

https://qiita.com/5zm/items/f283c201344ae347ea2d

Cloud FunctionsでPython利用記事まとめ

https://qiita.com/kai_kou/items/2f65db5305ba280ad81e