【Bluemix】OpenWhiskでCloudant(エディタ編) 前編

前回,簡単なアクションを実行してエディターでのOpenWhiskの使い方を説明しました.

前回に引き続き今回もエディターでのOpenWhiskの使い方を説明していきます.
さらに今回はCloudantと連携して,アクションだけでなく,シーケンス・トリガー・ルールを作りながら説明していきます.


流れとしては,以下のようにいきます.
1. Cloudantのドキュメントに変更があった場合に発生するトリガーとCloudantからドキュメントを読み込むアクションの中間の橋渡し的なアクション作成
2. 1のアクションとCloudantのドキュメントを読み込むアクションを繋げてシーケンス作成
3. Cloudantのドキュメントに変更があった場合に発生するトリガーの作成&2のシーケンスに繋げてルール作成
4.Cloudantのドキュメントの値を変更して確認
※CloudantのDB作成は省略します

長くなるので,1・2と3・4で分けて前編/後編の2回に分けて書いていきたいと思います.


【1.アクション作成】

OpenWhiskのエディタです.
(OpenWhiskのエディタまでの遷移や設定は前回の内容を参照)
1のアクションの作成を行います.「アクションの作成」を選択します.
create_action.jpg

アクション作成画面です,名前を「Read Document」とします.
このアクションはCloudantが変更されたときに発生するトリガーから,変更のあったドキュメントのIDを受け取り,Cloudantのドキュメントを読み込むアクションに橋渡しする役割を持ちます.
(トリガーのJSONのキー名と読み込み処理に必要なJSONのキー名が違うため)
名前を入力したら右下のアクションの作成を選択します.Node.jsで処理を書いていきます.
create_action2.jpg

main関数の処理を以下のように書き換えます.
トリガーからはidというキーで来るのに対して,後続のアクションへはdocidというキーで渡さなけばいけないため,このような処理になっています.

function main(params) {
    var mes = {};
    mes.docid = params.id;
    return mes;
}

右下の「ライブにする」を選択して保存します.
create_action3.jpg

これでこのアクションは完成です.
次は2のシーケンス作成にいきます.


【2.シーケンス作成】

シーケンスはアクションを数珠繋ぎにして,前のアクションの返り値を次のアクションの入力値にできる仕組みです.他のサーバーレスアーキテクチャにはない特徴なのではないでしょうか.

1で作成したアクションを左のマイアクションから選択し,右下の「シーケンスにリンク」を選択します.
create_sequence.jpg

自分で作成したアクションやBluemixが用意しているアクションを繋げることができます.
今回はBluemixが用意しているCloudantのアクションを繋げたいのでCloudantを選択します.
create_sequence2.jpg

CloudantのアクションはDB作成からドキュメント読み込み,テーブル削除まで様々あります.
ドキュメントの値を読み込みたいので,「read document」を選択します.

さらに,どのCloudantのドキュメントを読み込みたいのか指定をしなければいけません.
なので,CloudantをバインドしてCloudantの指定+自動で接続情報が付与されるようにします.
左側にあるプラスマーク「NEW BINDING」を選択します.
create_sequence3.jpg

バインドの設定の名前(何でもOK)の入力,Cloudantのインスタンスの選択,CloudantのDBの選択をして「構成の保存」を選択します.
(ここでは,CloudantDBという名前,インスタンスはプルダウンの中から適切なものを,DBはopenwhiskというDBを選択しています)
create_sequence4.jpg

「シーケンスに追加」を選択してシーケンスを作ります.
create_sequence5.jpg

シーケンスが正しいかの確認画面です.
1で作ったアクションが先頭にきていればOKです,「これは適切なようです」を選択します.
create_sequence6.jpg

シーケンスに名前をつけます.
「Read Document Sequence」としました.
「アクション・シーケンスの保存」を選択します.
create_sequence7.jpg

シーケンスが作成されました.
「完了」を選択します.


さて,前半はシーケンスを作成したところで終わりです.
後半はトリガー&ルールの作成,確認をしていきます!
後半へ続く

シェアする

  • このエントリーをはてなブックマークに追加

フォローする