Google cloud functionを使ってみた覚書です。
サーバを立てずに、python仕様のAPIを作りたいというのがモチベです。
TL;DR
・Google Cloud Functionを使うために無料枠とか調べたのでメモ
・とりあえず、最初のサンプル動かしてたのでメモ
無料枠について
以下URLにアクセスすると、無料枠などがあるようです。200万リクエストまでは毎月無料とも書いてあるので、個人で使う分には実質タダなのでは。ただ、いろんなとこで細かく金がかかりそうなので、実際使ってみて、課金状況をウォッチですかね。
https://cloud.google.com/free/docs/free-cloud-features?hl=ja#cloud-functions
使ってみた
さきほどのページの右上の、無料で利用開始ボタンを筋肉で押しました。
押すと速攻、無料トライアルであることをアピールされます。
$300の無料枠が90日つく模様。円安であることを実感するお値段です。
ここまで来ると、Google cloud functionの文字がどこにも見当たらなくなります。
仕方ないので、検索窓にfunctionといれると観念して、Coud Functionsが出てきます。
[+ファンクションを作成]を押すと、有効化しろと催促されます。
有効にするボタンを押します。
設定
基本設定
いろいろ聞かれたので適当に設定していきます。第一世代か第二世代かについては、新しい方が良いかと思い第二世代をチョイス。第二世代の方がコスパが良いようですね。関数名は任意のものをいれます。
東京は、Tier1料金設定で、asia-northeast1。Tier1とTier2の違いは不明だが、料金設定はTier1の方が安い。
引用https://cloud.google.com/functions/docs/locations?hl=ja#tier_1_pricing
ランタイム、ビルド、接続、セキュリティの設定
メモリとか少ない、気がする……けど、このままでとりあえずいきます。無料枠の範囲でしか使わないですしね。
ちなみに、Google Cloud Functionは、一次ファイルを/tempに保存できるのですが、そこで使える容量がこのメモリぶんらしいです。API起動に必要なあれこれ(具体的には不明)も/tempに保存されそうなので256MBがまるっと使えるわけではなさそう。そして、/tempがうまるとAPIがうごかなくなるようなので、もし使う場合は一時的に利用してすぐ消すのがよさそう。
Node.jsがランタイムとして設定されているので、とりあえずPythonに変更。
最初からサンプルコードがあるので、そのままデプロイ。
少し時間かかります。数分コースです。
画面が切り替わるため[関数の詳細]ページに行き、テスト中をクリック。
CLOUD SHELLでテストする、をクリックすると、ダイアログがでるので続行。
下の方にターミナルが出てるので、さらに実行と押すと、結果が返ってきます。
ファンクションの詳細の、右側の[編集]->[コード]を押すと、プログラム編集画面に戻ることができます。HelloをGood Eveningなどに変えて再デプロイするとそのまま反映されます。
以上