たまたまCloud Functionsでは、依存関係の問題で時系列予測のProphetは動かせなそうという話を耳にすることがあり、あれそうなのかなぁと思ってちょっと調べてみました。
結論から言うと、ランタイム : Python 3.7ではデプロイでエラーになりましたが、ランタイム : Python 3.8では問題なくデプロイできました。
ランタイム : Python 3.7の場合はこんなようなエラーが出ました。
・ ・ ・ File "/tmp/pip-wheel-nggfjnxj/fbprophet/fbprophet/forecaster.py", line 14, in <module> import numpy as np ModuleNotFoundError: No module named 'numpy' ---------------------------------------- ERROR: Failed building wheel for fbprophet ERROR: Failed to build one or more wheels error: `pip_download_wheels` returned code: 1; Error ID: AE8F796E
ランタイム : Python 3.8では、デプロイできました。
requirements.txtに、pystanはいるみたいです、numpyは書かなくても大丈夫でした。
コードとデータはこちらの公式ページのサンプルを拝借しております。
https://facebook.github.io/prophet/docs/quick_start.html#python-api
左がGCFのテスト、右が公式ページです。動きました。
ちなみに、とにかく手軽にProphetを動かしたいだけならRのGUIツールであるExploratoryを使うのがおすすめです。Exploratoryは凡人が簡単にデータサイエンスのパワーを増強できる仙豆みたいなもので私はExploratoryを愛しています。また、とりあえずGCP+時系列予測であればいいのであれば、BigQuery MLのARIMAを使うという選択肢もあるかもしれませんね。