常田です。
TriggerとRuleについて見ていきたと思います。
パッケージの情報はこちらに有りました。
組み込まれているPackageからTriggerを探し見たいと思います。以下は alarmsのパッケージの内容を見ているのですが”feeds”とあるのがそうです。actionの場合には”action”になっています。
$ wsk package get /whisk.system/alarms
ok: got package /whisk.system/alarms
{
"actions": [],
"annotations": [
{
"key": "description",
"value": "Alarms and periodic utility"
}
],
"feeds": [
{
"annotations": [
{
"key": "description",
"value": "Fire trigger when alarm occurs"
},
{
マニュアルにある例を見ると
wsk trigger create periodic --feed /whisk.system/alarms/alarm --param cron '/20 * * * * *' --param trigger_payload '{"name":"Odin","place":"Asgard"}'
wsk trigger create everyEightSeconds --feed /whisk.system/alarms/alarm -p cron '*/8 * * * * *' -p trigger_payload '{"name":"Mork", "place":"Ork"}'
このような型式ですね。
トリガーの段階で引数を定義しておくようなので前回のSlackへメッセージを送る事を想定して作ります。
wsk trigger create everyEightSeconds --feed /whisk.system/alarms/alarm -p cron '*/8 * * * * *' -p trigger_payload '{"text":"trigger sample"}'
定義を見てみます。
$ wsk list
entities in namespace: bluemixiphone-contest_dev
packages
/bluemixiphone-contest_dev/mySlack private binding
actions
/bluemixiphone-contest_dev/myslackparam private
/bluemixiphone-contest_dev/myAction3 private
/bluemixiphone-contest_dev/myAction2 private
/bluemixiphone-contest_dev/len private
/bluemixiphone-contest_dev/myAction private
/bluemixiphone-contest_dev/hello private
triggers
/bluemixiphone-contest_dev/everyEightSeconds private
rules
この定義されたTriggerとActionを紐付けるのがRuleです。次にRuleを作成してみます。
wsk rule create --enable myRule everyEightSeconds myAction3
実行されているのがわかります。このままだと延々と動いているので停止しておきます。
wsk rule disable myRule
まだ使い方が分からない部分も多分にありますが興味深いサービスが発表されてたなというのが感想です。部品(Aciton)を一つづつ作れるのもなかなか興味深くDocker型式にも対応しているのでもう少し複雑なものも実行させてみたいところです。いずれにしても「サーバ」という単位ではなく「処理」を登録してその環境自体がクラウドサービスとして提供されていくというのは良いですね。
速報的に3回で使ってみた感じを書いてみましたがもう少ししっかり内容を勉強してなにか使い方を考えていきたいと思います。
最後にドキュメントのリンクを貼っておきます。Getting Startに各種ドキュメントリンクが有りますので覚えておくと良いかと思います。