クラウド実行環境向けフローの作成

概要

クラウド実行環境で実行するフローは、「クラウド実行環境とは」で記載したように、通常のNode-REDのフローと差異があります。

ここでは、この差異を踏まえたクラウド実行環境向けのフローの作り方を説明します。

準備

LCDP in / outノードのインポート

クラウド実行環境で実行するフローは、LCDP inノードから始まり、LCDP outノードで終わる必要があります。

LCDP in / outノードは、Discover Assetsに公開していますので、以下の手順でプロジェクトにインポートしてください。

  1. 検索欄にlcdp-toolkitと入力し、プルダウンから名称を選択してください
  2. lcdp-toolkitのオフィシャルアセット(enebularの帯付きのアセット)が表示されますのでクリックします
  3. 右上のインポートボタンを押します
  4. インポート先を選択するダイアログが表示されますので、インポート先のプロジェクト名と、このアセットに対するコラボレーターの権限を設定し、インポートボタンを押します

クラウド実行環境の作成

プロジェクトにクラウド実行環境を作成します。 作成方法については、「クラウド実行環境の作成」を参照ください。

フローの作成方法

フローの作成

フローの作成」を参照し、フローを追加してください。

フローの作成は、フローエディターか、enebular editorで行います。

フローエディターは、フローの概要タブの右側に表示された編集ボタンを押すと起動します。

enebular editorで行う場合は、お使いのPCにenebular editorをインストールする必要があります。「enebular editor」を参照し、準備してください。

フローの編集

LCDP in / outノードの配置

フローエディターを開くと、左側にパレットが表示され、その右隣にフローを編集するワークスペースが表示されます。

LCDP in / outノードのインポートを実施済みであれば、パレットのネットワークカテゴリにLCDP inノードと、LCDP outノードがあります。

これらのノードをワークスペースにドラッグ&ドロップします。

クラウド実行環境にデプロイしたノードが実行されると、LCDP inノードが実行されます。

このとき、LCDP inノードが出力するmsgの内容は以下です(HTTPトリガー、スケジュールトリガーのどちらのトリガーから呼び出されたかに応じ内容は異なります)。

項目 HTTPトリガー スケジュールトリガー エージェント実行環境からのメッセージ受信 テーブルの更新トリガー SlackBot I/F 補足
msg.triggeredBy http scheduler agent ds-table-changed slack-bot この値を利用してトリガーの種類を判別ください。
msg.uhuru コンテキスト情報など コンテキスト情報など コンテキスト情報など コンテキスト情報など コンテキスト情報など ウフル作成のノードが複数のノードにまたがって利用する情報を保持します。フローの実行時に変更、削除を行わないでください。
msg.payload HTTPのクエリパラメーターやbody部 {} {} テーブルの更新内容 *1 Slack Payload
msg.req HTTPのヘッダー、メソッド等 - - - - HTTPトリガーの場合のみ存在します。

*1: テーブルの更新内容は以下の形式です。

{
  tableId: <更新のあったテーブルID>,
  eventName: <更新の種類(INSERT/MODIFY/REMOVEのいずれか)>,
  oldItem: <更新前のアイテム(INSERTの場合は含まない)>,
  newItem: <更新後のアイテム(REMOVEの場合は含まない)>
}

詳細については、LCDP inノードの情報タブのヘルプをご参照ください。

LCDP outへ入力するmsgの構造を以下に示します。

項目 HTTPトリガー スケジュールトリガー エージェント実行環境からのメッセージ受信 テーブルの更新トリガー SlackBot I/F 補足
msg.uhuru コンテキスト情報など コンテキスト情報など コンテキスト情報など コンテキスト情報など コンテキスト情報など LCDP inノードが設定した値。
msg.payload HTTPレスポンスで返す値 - - - -
msg.statusCode HTTPレスポンスで返すステータスコード(デフォルト200) - - - -
msg.headers HTTPレスポンスで返すヘッダー情報 - - - -
msg.cookies HTTPレスポンスで返すCookie情報(任意) - - - -
msg.isBase64encoded HTTPレスポンスの内容がBase64エンコードされているかを表す(デフォルトfalse) - - - -  

詳細については、LCDP outノードの情報タブのヘルプをご参照ください。

環境変数の利用

クラウド実行環境に設定した環境変数をフローから参照できます。参照方法については、Node-REDの「環境変数を利用する」のページを参照ください。

クラウド実行環境に環境変数を設定する方法については、「環境変数」を参照ください。

異なるオリジンからのアクセス方法

異なるオリジンからクラウド実行環境のHTTPトリガーで設定したURLにアクセスしたとき、CORSエラーが発生します。 HTTPレスポンスで返すヘッダー情報msg.headersに、CORSエラーを回避するために必要なヘッダー情報をフローで設定することにより、異なるオリジンからのアクセスを許可できるようになります。

詳細については、Discover Assetsに公開しております、lcdp-cross-domain-sample-flowフローを参照ください。

ログ出力

クラウド実行環境でログを出力するには、debugノードを使います。

Node-REDのパレットからdebugノードをワークスペースへ配置します。たとえば、LCDP inノードでログを出力したいときは、debugノードをLCDP inノードにつなぎます。その後、debugノードのノードプロパティの 出力先システムコンソールにチェックをつけます。 これで、クラウド実行環境でログが出力されるようになります。

注意点

フローを作成するにあたり、以下の点に注意してください。

  • フローは、クラウド実行環境のタイムアウトに設定した秒数以上、処理を継続することはできません
  • 1回のフローの呼び出しで、複数回LCDP outノードを呼び出すことはできません(LCDP outノードが実行されるとそこで処理を中断します)
  • 利用していないプライベートノードをプロジェクトに配置しておくとフローの実行時間が遅くなります
  • クラウド実行環境にデプロイできるファイルサイズは50MB以内になります(このファイルサイズとは、フロー、ノード、Private Node、Node-REDなど作成したフローを実行するために必要なすべてのファイルを含むZIPファイルのサイズです)

results matching ""

    No results matching ""