Ruby
faas

FaaSなruby FaaStRuby

こういうの待ってた

Ruby Serverless Platform


動かす


実行環境


  • macOS High Sierra 10.13.6

  • Ruby 2.5.1p57

  • faastruby 0.2.2


    • アップデートに伴ってリポジトリとの連携がいらなくなった




環境構築


gemをインストール

$ gem install faastruby


ワークスペースを作成

$ faastruby create-workspace workspace


functionを作成

$ faastruby new function

functionを作成するとfunction以下のファイルが自動生成される。

funtionの実行する中身はhandler.rbに記述する。

workspace/

    ├─ function/
    │ ├─ Gemfile
    │ ├─ Gemfile.lock
    │ ├─ handler.rb <-- functionの中身
    │ ├─ faastruby.yml <-- 設定ファイル
    │     └─ spec/
    │     ├─ handler_spec.rb
    │     ├─ spec_helper.rb
    │      └─ helper/
    │     ├─ faastruby.rb


ワークスペースにデプロイ

# デプロイしたいfunctionのフォルダに移動して

$ faastruby deploy-to workspace


呼び出し

# コマンド

$ faastruby run awesome-prod --json '{"name":"Ruby"}'


SlackBot作りましたのでそちらを


実行環境


Server specs: 2 Digital Ocean droplets with 1 vCPU / 1GB Mem / 25GB Disk ($5/mo)



関数の制限


  • handler.rbから別のrbファイルを呼び出す場合は、同階層にファイルを置かなくてはならない(別フォルダにはアクセスできない)

  • 使えるRAMは、今の所100MBまで

  • スレッドやプロセスには上限があり、それを越えるとエラーが出る

  • 関数の実行が60秒を越えるとプロセスがkillされる

  • tempファイルにだけ書き込みが可能、tempファイルは5MBまで書き込みできる

  • functionの返り値はHashかArrayかString