enebular の新機能「クラウド実行環境」の HTTPトリガーと LINE Notify を組み合わせて試す

以下の公式ブログでも紹介されていた enebular の新機能を軽く試してみたという話です。

●Web APIが簡単に作れたり、クラウド上での定期実行も可能な実行環境をリリース | enebular blog
　https://blog.enebular.com/function/apps-environment/
●新リリースのenebularクラウド実行環境の使い方 | enebular blog
　https://blog.enebular.com/enebular/how-to-use-enebular-cloud-exec-environment/

具体的には、クラウド実行環境の HTTPトリガーと LINE Notify を組み合わせて、HTTPリクエストをトリガーにした LINEアプリへの通知を試します。

## LINE Notify の準備
LINE Notify を利用するためには、アクセストークンを発行する必要があります。
アクセストークンの発行に関して参照した記事や、curl を用いた動作確認の手順を、以下の Qiita の記事に書いていますので、詳細は以下をご参照ください。

●Node-RED で functionノードや専用ノードを使わず LINE Notify を利用する（changeノードを利用、Sticker送信も試す） - Qiita
　https://qiita.com/youtoy/items/ad4651b6438040a353f6

### enebular の「クラウド実行環境」を利用する
それでは、enebular の「クラウド実行環境」を使うために、設定から着手します。

### クラウド実行環境の設定
まずは、今回用のプロジェクトを新規作成し、そのプロジェクトを選択した後の画面で実行環境の追加を行いました。
![実行環境の追加.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/729dad4d-59c0-81ca-c79e-007089e261b7.jpeg)

作成直後の画面は、こうなりました。
![新規作成直後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/71d5b90f-4fb8-7889-0fcc-14013d40578e.jpeg)

[冒頭にも掲載していた公式ブログ](https://blog.enebular.com/enebular/how-to-use-enebular-cloud-exec-environment/)で、「HTTPトリガー」の項目に書かている設定を行っていきます。HTTPトリガー関連では、以下を設定しました。

- HTTPトリガー
   - 設置を「ON」
   - パス 「test01」

### フローの作成
次にクラウド実行環境で実行対象にするフローを作成します。

その前に、[冒頭にも掲載していた公式ブログ](https://blog.enebular.com/enebular/how-to-use-enebular-cloud-exec-environment/)で以下の部分に書かれていた「[クラウド実行環境用のノード](https://enebular.com/discover/privatenode/7861b7c9-35cd-4ad7-bb0a-840251568a8d)」をインポートしておきましょう。
![クラウド実行環境用のノード.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ae0f4cf3-dea6-6dbc-c8b3-362355ec2941.jpeg)

インポートを行った後でフローの新規作成を行うと、フロー作成画面でクラウド実行環境用のノードが使えるようになっています。
![クラウド実行環境用のノード（フロー作成画面上）.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/3397882f-3caa-3cf9-571a-b46ad0270550.jpeg)

このノードを使って、以下の記事に書いていたフロー（※ 「[簡単なテキスト送信を試す](https://qiita.com/youtoy/items/ad4651b6438040a353f6#%E7%B0%A1%E5%8D%98%E3%81%AA%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E9%80%81%E4%BF%A1%E3%82%92%E8%A9%A6%E3%81%99)」という部分で登場しているフロー）をベースに、今回用のフローを作成しました。

●Node-RED で functionノードや専用ノードを使わず LINE Notify を利用する（changeノードを利用、Sticker送信も試す） - Qiita
　https://qiita.com/youtoy/items/ad4651b6438040a353f6

なお LINE Notify を利用する部分は、「[node-red-contrib-line-messaging-api](https://flows.nodered.org/node/node-red-contrib-line-messaging-api)」などの LINE Notify用のノードを使ったほうが簡単ですが、ここでは自前で実装してみています。

ベースにしたフローと違っている部分を、以下の画像内で矢印を使って示します。
![作成したフロー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b287a683-57aa-800b-01b7-04cd4be5c40a.jpeg)

まず、赤矢印の部分は上で出てきていた「クラウド実行環境」のノードで、開始部分と終了部分にそれぞれノードをセットする必要があります。また、緑矢印の部分はベースにしたフローと同じ changeノードですが、そこで設定している内容が少し違っています。

具体的には、元にしたフローの設定に、1つ設定を追加しています。元のフローでは injectノード中に設定していた内容を、こちらでは以下の赤線で示した部分にセットしています。
![changeノードのを追加した部分.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4671fe69-032d-cc88-5fc7-02d083d2e11c.jpeg)

上の画像ではテキストの一部が隠れてしまっていますが、「値の代入」の 3つ目に以下を設定しています。

- msg. 「payload.message」 に 文字列「クラウド実行環境から、メッセージ送信」を代入

フローが完成したら、フローをデプロイしてください。

### クラウド実行環境のデプロイ
フローのデプロイをした後は、クラウド実行環境のデプロイも必要です。

プロジェクトの画面に戻り、上で作成した実行環境を選択してから、「概要」の下にある「デプロイ」と書かれたボタンを押します（※ 上で作ったフローを、クラウド実行環境の対象として選んでください）。
![クラウド実行環境のデプロイボタン.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/cb158b29-b1fc-4622-1d82-b1a972d5210e.jpeg)

このデプロイまで完了したら、「設定」タブを選択して、その中の「HTTPトリガー」の項目で書かれている URL を使ってフローを実行します。
![HTTPトリガーのURL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4a87ba1b-49f1-4129-ecbc-483800154585.jpeg)

手軽に試したいので、この URL をブラウザの URL欄に入力しアクセスする、という方法を用いました（curl を使うのも良さそう）。そうすると、ブラウザ上には `{"status":200,"message":"ok"}` という LINE Notify のレスポンスが表示されて、LINEアプリにメッセージが届いたことが確認できました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/enebular?src=hash&amp;ref_src=twsrc%5Etfw">#enebular</a> のクラウド実行環境を初めて試してみました。<br><br>LINE Notify にメッセージを送るフローを作り、クラウド実行環境の HTTPトリガー経由でそれが実行される形です。 <a href="https://t.co/Xrncm6JKxf">pic.twitter.com/Xrncm6JKxf</a></p>&mdash; you (@youtoy) <a href="https://twitter.com/youtoy/status/1513087910454902787?ref_src=twsrc%5Etfw">April 10, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

初めてのクラウド実行環境のお試しを、無事に完了させることができました。

## enebular のプランごとの制限
なお、クラウド実行環境は enebular のプランごとに異なる制限があるようです。
自分のプランは「トライアル/フリー」に該当するので、以下の赤線で示した内容が適用されるようです。
![実行環境の制限.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/3babee11-10e8-2281-a67c-2d35e4b0c2f0.jpeg)
![環境ごとの制限.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/6288fceb-bf15-8907-4004-dea9f3783bea.jpeg)