常田です。

Las Vegasで開催しているInterConnect2016にてサーバレスで動く実行環境が発表されました。従来の、Cf Runtime,Container,VirtualMachineにつづく4番目の実行環境です。

さっそく、OpenWhisk を動かしてみました。

何者であるのかまださっぱり理解していませんが「Hello」をみてみないわけには行きません。

手順に従って進めていきます。
また既にCFコマンドが導入されている環境で実施しましたのでクリーン環境では少し手順が違うかもしれません。

NewImage

申込画面が表示されるので申し込むと4,5時間で使えるようになりました。

まずは以下の場所よりツールを導入しましょう

NewImage

wskコマンドラインツールを導入します。

sudo pip install --upgrade https://new-console.ng.bluemix.net/openwhisk/cli/download

Bluemixの自身のnamespaceに登録をします。(以下はxxxxにしてますが画面に出ている内容で入力します)

wsk property set --auth xxxxxx --namespace "xxxxxxx"

さて次のコマンドをなげると { message: hello}が戻ってきました。

vagrant@vagrant-ubuntu-trusty:~$ wsk action invoke /whisk.system/samples/echo -p message hello --blocking --result
{
    "message": "hello"
}

ダッシュボード画面を見るとこのようになっています。

NewImage

きちんと動いているようです。
次にマニュアルを参考にプログラム(javascript)を動かしてみましょう。

  • https://new-console.ng.bluemix.net/docs/openwhisk/index.html

以下のコードを hello.js として保管します。

/**
 * Hello world as an OpenWhisk action.
 */
function main(params) {
    var name = params.name || 'World';
    return {payload:  'Hello, ' + name + '!'};
}

次にこのjavascriptを登録します。(参考に返り値も含めて載せておきます)

vagrant@vagrant-ubuntu-trusty:~/work/open$ wsk action create hello hello.js
ok: created action hello

早速呼び出してみます。

vagrant@vagrant-ubuntu-trusty:~/work/open$  wsk action invoke hello --blocking --result
{
    "payload": "Hello, World!"
}

このように action invoke hello で先ほどのhello.jsの結果が帰ってきています。
次に引数付きで実行します。

vagrant@vagrant-ubuntu-trusty:~/work/open$ wsk action invoke hello --blocking --result --param name Fred
{
    "payload": "Hello, Fred!"
}

実行できました。

NewImage

登録されてたactionのリストはGUIでは見えないですね。あくまでこちらはダッシュボードの位置付けでしょうか。

vagrant@vagrant-ubuntu-trusty:~/work/open$ wsk list
entities in namespace: bluemixiphone-contest_dev
packages
actions
/bluemixiphone-contest_dev/hello                                  private
triggers
rules

wskコマンドで色々操作は出来そうです。

さて実際にこれらをどうやって使えるのでしょうか?

こちらにAPIのドキュメントがありました。
次回はこちらを参考にCurlやPythonから呼び出してみたいと思います。

それにしてもサーバレスでJavascript,Swiftが動く環境がIBMから登場するとは2年前には想像もできませんでした。しかもSwift言語。そしてこのOpenWhisk自体がプロプライエタリ製品ではなくOpenSourceで公開されているとうことがここ最近のIBMの大きな変化と受け止められますね。