セクションナイン の 吉田真吾(@yoshidashingo)です。
各社FaaSプラットフォームを提供していますが、Auth0という認証SaaSの別プロダクトであるWebtaskの話をServerlessconf Londonで聞いているところなので聞きながら試してみてます。
Getting Started
- Webtaskのサイトにアクセスします。
GithubやFacebookなどでログイン(アカウント作成)します。
wtクライアントをインストールします
$ npm install wt-cli -g
ちなみにこのクライアントはオープンソースで開発されています。
- 環境の初期化をします
$ wt init <作成したアカウントのメールアドレス(https://webtask.io/cliにあらかじめ表示されています)> Please enter the verification code we sent to <メールアドレス> below. Verification code:
メールアドレスに6桁の確認コードが届いているので入力して環境の初期化をします。
- サンプルコードを試す
$ echo "module.exports = function (cb) {cb(null, 'Hello');}" > hello.js $ wt create hello.js Webtask created You can access your webtask at the following url: https://xxxxxxxxxxxxxxxxxxxx.run.webtask.io/hello?webtask_no_cache=1
こんな表示が出るのでURLにアクセスすると、コードが実行されて画面に表示されますね。
- ちょっとコードを編集してみましょう。
$ wt edit hello
と入力するとブラウザ上がエディタが起動してコードが編集可能になります。
コードを以下のように編集して実行すると、
var view = (function view() {/* <html> <head> <title>Welcome to Webtasks</title> </head> <body> <h1>Hello, <%= name %></h1> </body> </html> */}).toString().match(/[^]*\/\*([^]*)\*\/\s*\}$/)[1]; module.exports = function (context, req, res) { console.log('hoge'); res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(require('ejs').render(view, { name: context.data.name || 'Anonymous' })); }
HTMLをレスポンスして
ログ出力されるコードが簡単に実行できました。
実行環境について
Webtaskの実行環境も他のFaaSと同様にコンテナベースでできており、Dockerをベースにしているそうです。(かつ常に実行環境が裏で事前にプロビジョニングされておりウォーミングされている)
その他のアクション
セッション内ではデモとしてSlackを使ったChatOpsが披露されていました。
それ以外にもGitHubのリポジトリにサンプルがたくさん入っており、Webtaskにホストしているコードをスケジュール実行する方法や、認証後のJWTの内容を自分でカスタマイズする方法などがあり、結構有用かもしれないと思っているところです。