Cloud Functionsはローカル環境で走らせて、ローカルホストで呼び出すことが可能です。
環境:
python 3.7.0 pip 20.0.2 macOS mojave
引数なし
まず、main.pyで簡単な関数を作ります。
//main.pyファイルにて def hello_world(): print("hello world!")
functions-frameworkをpipでインストールし、–target引数から関数名を呼びだします。
$ pip install functions-framework // main.pyがあるディレクトリにて $ functions-framework --target hello_world
これで以下のように走り始めるはずです。
[2020-06-23 10:53:33 +0900] [19844] [INFO] Starting gunicorn 20.0.4 [2020-06-23 10:53:33 +0900] [19844] [INFO] Listening at: http://0.0.0.0:8080 (19844) [2020-06-23 10:53:33 +0900] [19844] [INFO] Using worker: threads [2020-06-23 10:53:33 +0900] [19847] [INFO] Booting worker with pid: 19847
これで今ローカルホストでcloud functionsがスタンバイしている状態なので、以下のコマンドで呼び出せます。
$ curl http://localhost:8080
引数あり
引数をjson形式でつけることも可能です。
===main.py=== def my_function(request): request_json = request.get_json() var_in_json = request_json["foo"] print(var_in_json) return 'Hello World' ===terminal=== 以下のコマンドをたたけば、john doeが出力される。 $ curl -d '{"foo": "john doe"}' -X POST -H "Content-Type: application/json" http://localhost:8080