share facebook facebook twitter menu hatena pocket slack

2018.09.04 TUE

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

甲斐 甲

WRITTEN BY 甲斐 甲

概要

関数作成のサンプルを見る限り、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

元記事はこちら

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

甲斐 甲

甲斐 甲

2018/7にJOIN。 最近の好みはサーバレスです。なんでもとりあえず試します。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。