OpenWhiskでもShell芸

Hideaki Tokida
3 min readJan 18, 2017

--

先日、Severless Meetup Tokyo #2 に OpenWhiskのスピーカーとして参加させていただきました。このMeetupの楽しいところはLambdaだけでなくAzure やGoogleと行った様々な代表的な Serverless / FaaS / NoOps というものを一気に並べて見れることで非常に楽しめることでしょう。

そんな中でもAzure FunctionsのBashとかちょっと面白かったものが出ていたのでOpenWhiskでもやってみたいと思います。

OpenWhiskでは、Dockerアクションを作ることができます。このDockerアクションはいろいろな可能性があるのですがルールさえ守ればちょっとイレギュラーなことが実行できたりします。

適当なディレクトリで exec という実行権限 chmod +x execをつけた以下の内容のファイルを作ります。

#!/bin/sh
echo {\"msg\":\"Hello, `bash --version`\"}

次にこれをzipで固めます

zip action.zip exec

そして登録しましょう

wsk action create sh_test action.zip --docker

で実行してみます。

$ wsk action invoke sh_test --blocking --result
{
"msg": "Hello, GNU bash, version 4.3.42(1)-release (x86_64-alpine-linux-musl) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later \u003chttp://gnu.org/licenses/gpl.html\u003e This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law."
}

無事に動きましたね。実際に引数とかを取る場合にはなにせ `sh` ですのでJSONで渡ってくる文字列を操作するのは大変そうですが純粋に起動するだけであればこれで動くことになります。また他のOpenWhiskのアクション同様にAPIgateway経由でゴニョゴニョしても良いでしょう。

では、よいServerless生活を!

--

--

Hideaki Tokida

もっぱら最近はクラウド関連なのだけどそういえば昔は文房具とかライフハック的な事が好きだった。OpenWhisk/Docker/Ansible/AWS/Softlayer/Bluemix コメントは私の個人的見解で、必ずしも所属企業の立場、戦略、意見を代表するものではありません。