はじめに
enebularのクラウド実行環境でSteinと似た機能(オレオレStein)を実行しています。
フロー
クラウド実行環境の利用制限
クラウド実行環境は利用に制限があります。
フリープランの場合、毎分実行してもHTTPリクエスト回数の上限以内(60 * 24* 30 = 43,200 < 50,000)ですが、フローの実行時間の合計を24時間以内にする必要があり、現在は4分毎の実行で利用上限以内に収まっています。
ところどころにヒゲがあるのはクラウド実行に失敗した場合、次回以降の実行になるため、前回の実行からの経過時間を表しています。
データストア機能
SteinはGoogleスプレッドシートにデータを永続化させていますが、enebularでもデータストア機能がリリースされ、enebularの中でデータを永続化することができるようになりました。
(うれしい気づき)プロジェクト作成時にプライベートノードが自動で追加されるようになった
以前はプロジェクトを作成した後にクラウド実行環境用のプライベートノードを手動で追加する必要がありましたが、現在はプロジェクト作成時にデフォルトで追加されるようになりました。
データストア用のプライベートノードも追加されます。
フローエディタのパレットに表示されるデータストア用のノードです。
データストア機能の利用制限
データストア機能もクラウド実行環境と同様に利用に制限があります。
Stein(Googleスプレッドシート)からの置き換え検討
現在は4分毎に実行しているので、フリープランの場合は上限を超えてしまい(12 * 24 * 30 = 10,800 > 10,000)、Googleスプレッドシートからの置き換えは難しいです。
テーブルの作成
データストアを使用する場合、最初にテーブルを作成します。
今回はInfoMotionで使用しないため、カスタム設定を選択しました。
メインキー名を入力して、作成ボタンを押します。
データ検索画面からデータストアの内容を確認・追加・削除・更新できます。
クラウド実行環境からデータストアへ書き込み
サンプルフローです。
データストアのデータを取得・更新する
サンプルフローです。
バックアップ・リストア
データストアの設定メニューにバックアップ・リストアの機能があります。
バックアップボタンを押すと、バックアップファイルのリンクがメールで送られてきます。
メール本文のリンクをクリックするとzipファイルがダウンロードされます。
zipファイルを解凍すると、json.bakファイルが出力されます。
中身を確認するとbase64で符号化されています。
$ cat table-20231210-20231210142420-1.json.bak
W3sibGFiZWwiOiIyIiwidGltZXN0YW1wIjoxNzAyMTg1NTgwNTQxfSx7ImxhYmVsIjoiMSIsInRpbWVzdGFtcCI6MTcwMjE4NTM5OTI1NX0seyJsYWJlbCI6IjMiLCJ0aW1lc3RhbXAiOjE3MDIxODU3MjUxMDF9LHsibGFiZWwiOiJ0ZXN0IiwidGltZXN0YW1wIjoxNzAyMTg1NjUyMzM3fV0=
base64でデコードするとjsonデータを確認できます。(macOSのターミナルで確認)
$ cat table-20231210-20231210142420-1.json.bak | base64 -D
[{"label":"2","timestamp":1702185580541},{"label":"1","timestamp":1702185399255},{"label":"3","timestamp":1702185725101},{"label":"test","timestamp":1702185652337}]
リストアは管理画面でjson.bakファイルをドラッグ&ドロップするだけです。
Firefoxだとテーブル表示が崩れる(Chromeは問題なし)
enebularの管理画面でデータストアのデータ検索画面で、Firefoxの場合、テーブル表示が崩れてしまうので、Chromeを使用します。(サポートへ問い合わせ中)