3. 利用方法

3.1. NEC BaaS ノードの利用方法

NEC BaaS ノードを Node-RED の Flow エディタ画面上に配置後、ノード内の設定ダイアログで動作に必要な情報を設定する必要があります。

注釈

各設定値は設定ダイアログを使用せず、上流からノードへの 入力メッセージ ( msg.payload 等)として指定できるものがあります。ノードの設定ダイアログと入力メッセージで同じ値を重複して指定した場合、後者の入力メッセージの値が優先されます。詳細は Node-RED ブラウザの右上に表示される各ノードの info タブを参照してください。

3.1.1. 認証ノード

NEC BaaS への 認証(パスワード認証/クライアント証明書認証) に使用するノードです。 認証ノード(auth)の設定ダイアログを開き、以下を設定してください。

  • パスワード認証を行う場合は、 Action 欄で login を選択してください。
  • パスワード認証に必要なアカウント情報を Email (または User), Password 欄に入力してください。
_images/login_dialog.png
  • クライアント証明書認証を行う場合は、 Action 欄で Use Client Cert authentication を選択してください。
  • クライアント証明書認証に使用する証明書形式を選択後、使用する証明書情報を指定してください。その際、証明書ファイルの絶対パスを Filename 欄に入力してください。
_images/login_cert.png
  • Initialize? をチェック後、接続先の NEC BaaS サーバ 情報を Config 欄に設定してください。 Base URI は必ず末尾を /api としてください。
_images/login_config.png

注意

Initialize? のチェックを有効にするノードは、 必ず Flow 画面(タブ)内で1つとしてください。接続先として異なるテナント/アプリを使用したい場合は、異なる Flow 画面(タブ)上に本ノードを配置し、 Config欄で 「新規にnebula-serverを追加...」 を選択して追加設定してください。 「新規にnebula-serverを追加...」 以外を選択した場合、追加ではなく更新設定になるためご注意ください。

3.1.2. ユーザ取得ノード

NEC BaaS に登録された ユーザ情報を取得 するノードです。 ユーザ取得ノード(user)の設定ダイアログを開き、以下を設定してください。

  • Action 欄で操作を選択してください。
操作 Action 欄
ログイン中のユーザ取得 Get the current user
ユーザIDによるユーザ取得 Get the user by ID
全てのユーザを取得 Get all users

3.1.3. オブジェクトデータ保存ノード

NEC BaaS のオブジェクトストレージに対して データ保存や削除 を行うノードです。 データ保存ノード(object)の設定ダイアログを開き、以下を設定してください。

  • Bucket Name 欄に バケット名を入力してください。
  • Action 欄で操作を選択してください。
操作 Action 欄
オブジェクトの保存 Save the object
オブジェクトの削除 Delete the object
オブジェクトの全削除 Delete all objects
バケットの削除 Delete the bucket (注1)
  • 注1) バケットの削除を行う場合は、認証ノード Config 内の App Key 欄に マスターキー を設定する必要があります。

3.1.4. オブジェクトデータ取得ノード

NEC BaaS のオブジェクトストレージから データを取得 するノードです。 データ取得ノード(object)の設定ダイアログを開き、以下を設定してください。

  • Bucket Name 欄にバケット名を入力してください。
  • 全てのオブジェクトデータを取得する場合は、 Use Search conditions? のチェックを無効にしてください。
  • 検索条件を指定する場合は、 Use Search conditions? のチェックを有効にして条件式を入力してください。条件式は 5 項目まで作成でき、 OR/AND 条件のいずれかを指定できます。
_images/object_in_condition.png

注意

検索条件で指定する値は、上記の赤円部分で値の型(文字列/数字等)を選択できます。例えば、上記のキー age に対して値の型を文字列とした場合は "30"、数字とした場合は 30 として扱われます。

  • Sort 欄では、指定したキーに対して昇順/降順を指定できます。
  • Skip Count 欄では、指定した件数以降のオブジェクトデータを取得します。
  • Upper Limit 欄では、取得するオブジェクトデータの上限数を指定します。
    • 上限数の値はデフォルトで 100 となっています。 上限数を無限大(制限なし)にしたい場合は -1 を指定します。
  • Projection 欄では、取得したオブジェクトに含まれるフィールドを指定します。
    • 例えば、{"name":1} とした場合は、 取得したオブジェクトに name のフィールドのみ含まれます。
    • Projection 欄では、フィールドの表示/非表示が混在する指定はできません。例えば、 {"name":1, "age":1} のような指定はできますが、 {"name":1, "age":0} のような指定はエラーとなります。

3.1.5. Function ノード

NEC BaaS が提供する様々な機能へのアクセス手段を JavaScript で実装できるノードです。 Function 欄 に 実行するスクリプトを記述することで、他 NEC BaaS ノードでは対応できない複雑なロジック等を実装することができます。

注意

Initialize? の設定方法は認証ノードと同じです。認証ノードと同じく、 Initialize? のチェックを有効にするノードは 必ず Flow 画面(タブ)内で1つとしてください。

前述のデータ保存ノードと同様の機能を Function ノードで実装する場合は、 以下のスクリプトを記述します。 上流ノードから来た msg の payload をそのままバケットに書き込む例です。

var Nebula = flow.get('Nebula');
var bucket = new Nebula.ObjectBucket('testBucket');
bucket.save(msg.payload)
    .then(function(robj) {
        node.send({payload: robj});
    })
    .catch (function(error) {
        node.send({payload: error});
    });
return;

3.1.6. Push 送信ノード

NEC BaaS の管理下にあるクライアント端末に Push 送信 するノードです。 Push 送信ノード(push)の設定ダイアログを開き、以下を設定してください。

  • 特定の「チャネル」向けに Push 送信したい場合は、 Channels 欄に配信先チャネル名を入力してください。

    例) channel1, channel2, ...

  • 特定の「ユーザ/グループ」向けに Push 送信したい場合は、 Receivers 欄に受信者を入力してください。

    例) user_id, g:group1, g:group2, ...

  • Push 送信するメッセージ内容を Message 欄に入力してください。

  • Push Type 欄で Push 送信方法を選択後、必要に応じて各送信方法の設定値を入力してください。

3.1.7. Push 受信ノード

NEC BaaS の SSE Push サーバから Push 受信 するノードです。 Push 受信ノード(push)の設定ダイアログを開き、以下を設定してください。

  • 特定の「チャネル」宛の Push を受信したい場合は、 Channels 欄にチャネル名を入力してください。 Channels の指定がない場合は、 Push 送信で Channels 指定されていない Push のみ受信します。

    例) channel1, channel2, ...

  • 特定の「ユーザ/グループ」からのみの Push を受信したい場合は、 Senders 欄に送信者を入力してください。 Senders の指定がない場合は、 任意の送信者("g:anonymous")からの Push を受信します。

    例) user_id, g:group1, g:group2, ...

  • デバイスを一意に特定するデバイストークンを Device Token 欄に入力してください。

    例) UUID 等

Push ノードを受信待機状態とするには、上流から一度だけ入力を実行してください。

注釈

入力時のメッセージで Push 受信の設定値を指定しない場合、 msg.payload の値は空の JSON オブジェクト {} にしてください。

正常に受信待機状態となった場合は、出力メッセージに以下のログが出力されます。

result: "ok", payload: "SsePush: Connection established." // Push 受信待機状態の成功時ログ

受信待機状態の間は、連続して Push データを受信できます。 Push データ受信時は出力メッセージに以下のログが出力されます。

result: "ok", payload: {type: "message", data: "abcde", ...} // Push データ受信時のログ

注意

Node-RED 上の各タブ画面内(各 Flow 内)で、同一の接続先( TenantID・AppID )を利用する複数の Push 受信ノードが存在する場合、 Push 受信待機状態にできるノードはいずれかの 1 ノードのみになります。 また、複数の Push 受信ノード間で受信待機状態とするノードを切り替える場合、受信待機状態となる前に一時的にエラーログ(401エラー等)が出力される場合があります。

3.1.8. API-GW ノード

ユーザが定義した REST API を使用して Cloud Functions 機能 を呼び出すノードです。 API-GW ノードの設定ダイアログを開き、以下を設定してください。

  • 実行する API 情報として、 API Name, Method, Subpath, API Data を入力してください。本パラメータに対応した API が実行されます。
  • API 実行のレスポンスをバイナリ(buffer)で受信する場合は、Response のチェックを有効にしてください。
  • Headers 欄では API 実行要求時の Header を追加/削除できます。

注釈

ユーザが定義した REST API 情報は、 Nebula CLI ツール を使用して事前に NEC BaaS サーバへ登録する必要があります。

3.2. 補足事項

3.2.1. NEC BaaS ライブラリの使用

Function ノード内にスクリプトを実装する際、 NEC BaaS ライブラリを利用できます。 NEC BaaS ライブラリのインスタンスは、下記いずれかの方法で取得できます。

var nb = flow.get('Nebula');  // Flow context を利用
var nb = nebula.get();        // 上記を簡易化したメソッド

NEC BaaS の各ノード間で NEC BaaS ライブラリのコンテキストを共有するため、 Flow context を使用しています。 Flow context は同一タブ内にあるノード間で共有されます。

NEC BaaS ライブラリのインスタンスは、認証ノードまたは Function ノードの初期化時(initialize 有効時)に生成されます。