injectノードを使う
前回に引き続き、ゴミサンプルで使ったノードの動きを見ていきます。今回はinjectノードです。injectノードを利用すると手動でフローを起動できます。ついでにmsgオブジェクトのプロパティに値を設定することもできます。公式ドキュメントはこちら。
injectノードのプロパティ
フローエディタでinjectノードをダブルクリックしてプロパティを確認します。msgオブジェクト配下のプロパティにいろいろな値を設定してみます。選択肢はこんな感じ。
- flow.
- フローレベルのコンテキスト
- global.
- グローバルレベルのコンテキスト
- 文字列
- 文字列を指定できます
- 数字
- 数字を指定できます
- 真偽
- true/falseを指定できます
- JSON
- JSONオブジェクトを指定できます
- Buffer
- バイナリ値を指定できます
- IoT系だとこういうInputも必要なのかもしれません
- 日時
- 現在時刻を指定できます
- 値はUNIXTIME形式です
- JSONata式
- Debugノードの記事でもでてきたJSONata式、JSONに対してクエリを書いて値を抽出して指定できそうです
- 環境変数
- 環境変数の値を指定できます
- msg.
- msgオブジェクト内のプロパティの値を指定できます
- プロパティ間の値のコピーができるということですかね
flow.とglobal.は利用するのに準備がいりそうなので、今の段階ではおいといて、他の選択肢を一通り指定してみました。
{ _msgid: '496f3dcab49c367e', payload: 'Hello World!', number: 777, boolean: true, json: { key: 'value' }, buffer: <Buffer 30 31 30 31 30 31>, datetime: 1631801070247, env: '/Users/wataru', msgid: '496f3dcab49c367e' }
プロパティ下部には繰り返し設定があります。
- 指定した時間間隔
- 指定した時間間隔、日時
- 指定した日時
「指定した時間間隔」を選択するとデプロイした直後から繰り返しinjectが実行されます。要はcronみたいなもんですね。
まとめ
外部からフローを実行するのが難しい場合は、injectノードを使ってエミュレートできます。cronっぽい動きをさせたいなら繰り返し機能ですね。これも何かと便利そうです。
コメント
コメントを投稿