クラウド実行環境で、アクセスするパスによって分岐する仕組みを体験してみる

今回は、enebularクラウド実行環境で、アクセスするパスによって分岐する仕組みを体験してみましょう。この仕組みを使えば、ひとつの実行環境で複数のページや複数の機能を載せられるようになります。

たとえば、enebular のクラウド実行環境を sample-1234567890/ という HTTP トリガで作成した場合に

  • https://lcdp003.enebular.com/sample-1234567890/ といったパスによるアクセスと、
  • https://lcdp003.enebular.com/sample-1234567890/exe1 といった、「/exe1 」を付加したパスによるアクセスで、

動きを変えたいときに重宝します。

クラウド実行環境の準備

過去記事「新リリースのenebularクラウド実行環境の使い方 」の「クラウド実行環境の準備」を参考にクラウド実行環境を準備します。

HTTP トリガー設定

image

過去記事「クラウド実行環境での HTTP トリガーに設定する重複しない URL をつくる TIPS」を参考にHTTP トリガー設定します。

Discover Flow からフローをインポート

今回のサンプルはこちらです。

lcdp-path-exe-branch

image

こちらをインポートボタンをクリックしてして、対象のプロジェクトを選択してインポートします。

image

インポート出来たらエディタで開いてみます。

image

「実行環境のパス名を自動取得」の change ノードをクリックします。

image

プロパティが開いたら完了ボタンをクリックします。

image

ノードの右上に青い丸が出てきて、フローを保存可能になります。

image

右上の保存ボタンをクリックして、フローをデプロイします。

フローの仕組み

image

まず、LCDP in で入ってきたデータの流れから「実行環境のパス名を自動取得」の名前の change ノードで実行環境のパス名を自動で取得します。もし https://lcdp003.enebular.com/sample-1234567890/ であれば sample-1234567890 の部分です。

image

req.url で今回アクセスしてきた URL が分かるので、/ (スラッシュ) で split を使って文字を区切って 0 から数えて 1 番目の値を取得します。これで実行環境のパス名が取得できます。

msg.BasePath という値に格納されています。

image

次に「exe1 と通常の分岐」の名前の change ノードの中で、アクセスしたパスに応じた分岐をしてます。

image

先ほどの実行環境のパス名 msg.BasePath を使って、それ以下のパスがフォームからのデータ送信である /exe1のパスか、それ以外の通常アクセスかを区別しています。

image

/exe1のパスでサクセスした場合は、こちらのフローに行きます。

image

「exe1 結果 JSON」という template ノードの中身はシンプルに {"message":"exe1"} というJSON データを作成し次の LCDP out ノードに伝えることで、 HTTP レスポンスされる流れです。

image

exe1 以外、つまり https://lcdp003.enebular.com/sample-1234567890/ のようなルートパスなアクセスの場合も含めての流れはこちらです。

image

「通常結果 JSON」という template ノードの中身はシンプルに {"message":"default"} というJSON データを作成し次の LCDP out ノードに伝えることで、 HTTP レスポンスされる流れです。

フローのデプロイ

フローをクラウド実行環境に反映します。

過去記事「新リリースのenebularクラウド実行環境の使い方」の「フローのデプロイ方法」を参考に、クラウド実行環境にフローをデプロイします。

HTTP トリガー URL 確認

準備ができたら、 HTTP トリガーの URL にアクセスしてみましょう。enebular のクラウド実行環境に sample-1234567890/ という HTTP トリガを作成したときに https://lcdp003.enebular.com/sample-1234567890/ といったパスです。

image

この場合 exe1 以外の流れなので、{"message":"default"} というJSON データがレスポンスされます。

exe1 のパスをつけて確認

つづいて、HTTP トリガーの URL に exe1 をつけてアクセスしてみましょう。enebular のクラウド実行環境に sample-1234567890/ という HTTP トリガを作成したときには https://lcdp003.enebular.com/sample-1234567890/exe1 といったパスです。

image

この場合 exe1 のパス流れなので、{"message":"exe1"} というJSON データがレスポンスされます。

発展した仕組みやちょっとした注意点

このように、クラウド実行環境でアクセスするパスによって分岐する仕組みを体験できました。ひとつの実行環境で、複数のページや複数の機能を載せることができるので重宝します。

ただ、あまり複雑に作りすぎると、フローも複雑になっていきます。私がつくるとしたら、おおよそ 5 機能以下であれば 1 つの仕組みでも追えるかなとも思います。自分に合った規模感でうまい塩梅で機能を作りましょう。

最近のブログ記事 「enebular クラウド実行環境で動作するシンプルなフォームの仕組みを作成してみる 」でも活用されているので、発展した使い方が見たい方はぜひ併せてご覧ください!