enebularのWeb Flow Editorはフロー開発環境です。enebularで作成したフローをサービスとして継続的に動かすには、今まではHerokuやAWS Lambdaの環境をユーザーのみなさんが用意してデプロイする必要がありました。先日リリースしたクラウド実行環境を利用することで、これからはenebular内でサービス化まで完結できるようになりました。
参考:「Web APIが簡単に作れたり、クラウド上での定期実行も可能な実行環境をリリース」(enebularブログ)
本記事では、クラウド実行環境の使い方について、準備やフローの作り方を紹介します。
目次
クラウド実行環境の準備
まずは、クラウド実行環境を準備する手順を紹介します。
プロジェクトのダッシュボードのメニューの「実行環境」をクリックします。
実行環境の画面に移ったら、画面右下の [+] ボタンをクリックします。
実行環境作成のダイアログが表示されるので、名前を入力して「OK」をクリックします。実行環境作成には1~2分ほどかかります。
これだけの手順で、クラウド実行環境を用意できます。
次にクラウド実行環境を動作させるトリガーの設定について紹介します。
トリガー設定
実行環境にデプロイしたフローを実行させるトリガーとして、以下の2種類を片方のみ、あるいは両方とも設定できます。
- HTTPトリガー
WebページのようにURLにアクセスした際にフローが実行される - スケジュールトリガー
指定した時間でフローが定期実行される
それぞれの設定方法を説明します。
HTTPトリガー
HTTPトリガーの起点となるURLを生成します。実行環境の「設定」を開き、「設定を編集する」をクリックします。
「HTTPトリガー」の項目で、スイッチをOFFからONにし、「パス」欄にパスを入力します。このパスはenebularユーザー全体でユニークである必要があります。すでに同じパスが使用されている場合にはエラーとなるので、その場合は別のパスを入力します。
設定が終わったら、設定の編集画面の右下にある「保存」ボタンをクリックします。
スケジュールトリガー
スケジュールトリガーは、まずフローをデプロイしてから設定してください。
実行環境の設定を開き、「設定を編集する」をクリックします。
スケジュールトリガーの項目で、スイッチをOFFからONにし、周期(毎年~毎分)を設定します。最大は年に1回、最小は1分に1回となっています。
※ ※ ご注意 ※ ※
フローをデプロイしなくてもスケジュールトリガーは動作します。実行時間を無駄に消費してしまわないようにご注意ください。
設定が終わったら、設定の編集画面の右下にある「保存」ボタンをクリックします。
フローの作り方
次にクラウド実行環境で動かすフローの作り方を紹介します。
まず、クラウド実行環境ではLCDP inノードとLCDP outノードが必須となります。これらはクラウド実行環境の入口と出口になりますので、Discoverで公開されているものからインポートします。
https://enebular.com/discover/privatenode/7861b7c9-35cd-4ad7-bb0a-840251568a8d
また、フローを作る際には以下の点に注意してください。
- 必ずLCDP outノードで終わるようにする
LCDP outノードに達さないフローは、タイムアウトで設定した時間になるまで動作し続けてしまい、制限のある実行時間を無駄に消費してしまいます。 - グローバル/フローコンテキストは保持されない
1回の動作の中で使用する分には構いませんが、LCDP outノードで終了した後は保持されません。 - ファイルシステムへの書き込みはできない
クラウド実行環境のファイルシステムは読み込み専用となっています。ファイルシステムへ書き込むノードはエラーになるため、使用しないでください。
クラウド実行環境のフローの例
1. Webページ
単純にWebページを表示するフローです。ここでの例は、単純にHTMLで書いたWebページを表示させるだけですが、データベースや他のWebサービスから取得した情報を表示するWebページを作ることも可能です。
フローは単純です。テンプレートノードにHTMLを書いて、changeノードでhtmlであることを示すヘッダを追加してます。
これをクラウド実行環境にデプロイし、設定したURLにアクセスすると以下のようなページが表示されます。
ただし、動作の確認のたびにクラウド実行環境にデプロイして確認すると、時間がかかってしまいますし、実行時間を消費してしまいます。このため、以下のようにhttp inノードとhttp responseノードを追加するとWeb Flow Editorで用意されている一時的なURLから動作確認ができます。
このフローは以下でDiscover Assetsで公開しているので、テンプレートとしてお使いください。
https://enebular.com/discover/flow/94dd0909-e98e-4f8c-a9c6-cb1dffceb713
2. 定期通知
クラウド実行環境の定期実行を利用して、情報を定期的にチェックし、その情報をメールやSNSで通知することも可能です。
以下のフローの例は、天気予報のページから情報を取得し、メールでその日と次の日の洗濯指数を教えてくれるフローです。たとえば、毎日朝7時に動作させるように設定すれば、洗濯して外干しできそうかメールで伝えてくれます。
このフローが動作すると以下のようなメールが送られてきます。
この例で使用しているのは千代田区の洗濯指数が毎日掲載されているページです。Webページを取得し、必要な情報のみをピックアップしています。詳細は、enebularブログの「Webサイトを定期的にチェックする」で紹介しているので、そちらを参照ください。
このフローでは、クラウド実行環境なりのポイントが2つあるので、紹介します。
ノードの完了をcompleteノード、catchノードでキャッチする
このフローで使用しているemailノードは、出口がありません。メールが送信し終わったらLCDP outノードに繋げて、フローを完了させたいところですが、その繋ぐ場所がありません。
こういう場合は、completeノードを使用します。completeノードは指定したノードの完了をキャッチできるノードです。completeノードのプロパティで以下のようにチェックを入れたノードの完了をキャッチできます。
また、emailノードで送信が失敗した場合もフローを完了させるため、catchノードも同じ様にemailノードのエラーをキャッチできるように設定し、completeノードとcatchノードをLCDP outノードに繋げます。
環境変数を使用する
クラウド実行環境では、環境変数を設定できます。これをフローで使用することで、フローを変更することなく、フローで使用する値を変更することができます。
今回のフローでは、メールの送信先アドレスを環境変数として、設定しています。
環境変数は、クラウド実行環境の設定画面で設定できます。設定画面の環境変数の項目で、キーと値を設定します。入力が終わったら「追加」をクリックし、設定を保存します。
今回のフローでは、EMAIL_ADDRという環境変数からメールの送信先アドレスを設定しているので、設定内容は以下のようになっています。
ちなみにフローのchangeノードで環境変数からメールの送信先に設定しています。以下が設定箇所です。
このフローもDiscover Assetsで公開していますので、参考にしてください。
https://enebular.com/discover/flow/f2bee8ac-84f8-4826-96d2-21d624f58ea1
洗濯指数のページは、http requestノードで指定しているURLを利用したい地域を設定してください。
また、メール送信元のアカウントも設定する必要があります。emailノードの設定方法については、enebularブログの「メール・ノードを使おう」もご覧ください。
3. Webhook
クラウド実行環境は固定のURLを取得できるので、各サービスの通知で使用されているWebhookの受け取り先を作ることができます。
以下のフローの例は、LINEbotの例です。LINEで位置を送るとその位置の花粉量を返してくれるbotです。
このフローでは、LINE公式アカウントを利用しています。LINE公式アカウントでは、LINEが送られてくるとその内容をWebHookで送ってくれる機能があるので、それをクラウド実行環境で受け取り、花粉量をLINEで返信するという流れになっています。
このフローやLINE公式アカウントの設定方法等は、「花粉のピークは過ぎたかもしれないけど、enebularで花粉bot作ってみた」で解説していますので、そちらをご覧ください。
フローのデプロイ方法
クラウド実行環境にフローをデプロイする方法を紹介します。いくつか方法はありますが、今回はフローの画面からデプロイする手順を紹介します。
デプロイしたいフローの概要画面を開き、「デプロイ」をクリックします。
次にダイアログにデプロイする先の選択が表示されるので、「実行環境を選択」をクリックします。次のダイアログでは、デプロイしたい実行環境のチェックボックスにチェックを入れ、「デプロイ」をクリックします。
デプロイ履歴の画面に遷移するので、デプロイステータスが、「デプロイ中」から「デプロイ済み」になればデプロイ完了となります。
クラウド実行環境の使い方は以上です。
ほかには、ログ機能もあるので、実行環境にデプロイしたフローがうまく動作しない場合は、フローの動作状態を確認することもできます。
今後もクラウド実行環境のノウハウを紹介していきますので、enebularブログをチェックお願いします(定期的にenebularブログをチェックするフローも実行環境で動かせそうですね)。
また、クラウド実行環境にかかわらずenebularで何か困ったことがありましたら、サインイン後の右上のアカウント名をクリックすると出てくる「サポート」からお問い合わせください。
【参考】クラウド実行環境の制約
プロジェクト内のクラウド実行環境の数は、enebularのプランに応じて以下の制約があります。
(2022年4月の情報です。最新の情報はドキュメントの「実行環境とは」をご覧ください。)
実行環境の制限
プラン | 個数 |
エンタープライズ | 5 |
トライアル/フリー | 2 |
環境ごとの制限
また、1つの環境ごとにHTTPリクエスト回数や実行時間、ログサイズの制約があります。enebularのプランに応じて、以下の制約となります。
HTTPリクエスト回数
プラン | 1ヶ月あたり | 1日換算 | 1時間換算 |
エンタープライズ | 3,000,000回 | 96000回ほど | 4000回ほど |
トライアル/フリー | 50,000回 | 1600回ほど | 66回ほど |
実行時間
プラン | 1ヶ月あたり | 1日換算 | 1時間換算 |
エンタープライズ | 1000時間 | 32時間ほど | 1時間15分ほど |
トライアル/フリー | 24時間 | 45分ほど | 1分50秒ほど |
ログサイズ
プラン | ログサイズ |
エンタープライズ | 5GB |
トライアル/フリー | 0.1GB |