enebular で作成したLINEボットを Herokuにデプロイする


<font color = "RED">2022.3.7更新
※2022.2.28 より、AWS や　Heroku にデプロイしなくても、enebular 単体で対応可能になりました。
※enebular でそのまま対応する場合はこちらの記事をご覧ください。
https://qiita.com/tatsuya1970/items/b3ddad7c5c1b009f0051

</font>

<br>
enebular は、Node-REDで開発するのにとても便利なツールです。

ただ、あくまでも開発時の動作確認のためのツールのため、制限時間が１時間という縛りがあります。
制限時間を超過しても都度更新したら使えるのですが、そのたびにURLが変わってしまいます。


<del>
LINEのチャットボットのように、継続的に使用するには、AWS、Herokuなどにデプロイする必要があります。
</del>

以下、Heroku にデプロイする方法をまとめました。




<br>

## Herokuのアカウント作成

Heroku のサイトにアクセス
https://signup.heroku.com/login

[![Image from Gyazo](https://i.gyazo.com/7abb30e9fd3923905e5a5f7cc4dd14d2.png)](https://gyazo.com/7abb30e9fd3923905e5a5f7cc4dd14d2)

クレジットカードの登録が必要ですが、無料プランの場合は、請求されません。

Account Setting
[![Image from Gyazo](https://i.gyazo.com/b0c996d97d00f0d99c7bca711084e697.png)](https://gyazo.com/b0c996d97d00f0d99c7bca711084e697)

APIキーを控える
[![Image from Gyazo](https://i.gyazo.com/1759883abc9e1a94621bcf536b0d76da.png)](https://gyazo.com/1759883abc9e1a94621bcf536b0d76da)


##enebular での設定

この画面で「コネクション」
[![Image from Gyazo](https://i.gyazo.com/3286d77c6aa2f02a395118d2ecdbcefe.png)](https://gyazo.com/3286d77c6aa2f02a395118d2ecdbcefe)

「＋」ボタン
[![Image from Gyazo](https://i.gyazo.com/49a2b9792377d0815ab42ffe9c9b2817.png)](https://gyazo.com/49a2b9792377d0815ab42ffe9c9b2817)

コネクション種別： Heroku
コネクション名：　なんでも可
HerokuAPIトークン：　さきほどのAPIキー
[![Image from Gyazo](https://i.gyazo.com/b71566fa23dafea7c927f2a0bd9ae8d4.png)](https://gyazo.com/b71566fa23dafea7c927f2a0bd9ae8d4)

コネクションができる
[![Image from Gyazo](https://i.gyazo.com/b06421a57d7892661a0dc31f1e5cc25e.png)](https://gyazo.com/b06421a57d7892661a0dc31f1e5cc25e)

この画面の「デプロイ」をクリック
[![Image from Gyazo](https://i.gyazo.com/516f4385e9dae78ba94b6b24fad1db36.png)](https://gyazo.com/516f4385e9dae78ba94b6b24fad1db36)

さっき作ったコネクションをクリック
[![Image from Gyazo](https://i.gyazo.com/d74e144f375f08d83c326ecf77c070c5.png)](https://gyazo.com/d74e144f375f08d83c326ecf77c070c5)

一番下の「Deploy to Heroku」をクリック
[![Image from Gyazo](https://i.gyazo.com/2f07cb6b744e04af73b485e8e49324c6.png)](https://gyazo.com/2f07cb6b744e04af73b485e8e49324c6)

Heroku 画面が開く
App Name、Password UserName　を入力し「deploy app」をクリック

[![Image from Gyazo](https://i.gyazo.com/1cae8cb82db7313a30115bae6183aac8.png)](https://gyazo.com/1cae8cb82db7313a30115bae6183aac8)


Deplpy ボタンの下で処理が走り、
[![Image from Gyazo](https://i.gyazo.com/7c46e9deb9563df802d11e8ca2f8cb83.png)](https://gyazo.com/7c46e9deb9563df802d11e8ca2f8cb83)


Your app was successfully deployed.
[![Image from Gyazo](https://i.gyazo.com/725e91a4813658d15679ade81e1c299f.png)](https://gyazo.com/725e91a4813658d15679ade81e1c299f)

と出たらOK


<br>


再度この画面から deplpoy
[![Image from Gyazo](https://i.gyazo.com/84ed8945d3db63bf46a796741fadad4b.png)](https://gyazo.com/84ed8945d3db63bf46a796741fadad4b)

コネクション bot をクリック
[![Image from Gyazo](https://i.gyazo.com/3b17cfd9bcff7cb86ecefbaa234cddda.png)](https://gyazo.com/3b17cfd9bcff7cb86ecefbaa234cddda)

さっき作ったアプリ名をチェックし[Deploy]


[![Image from Gyazo](https://i.gyazo.com/72ba2794dfb9f22a0bf43f0ab6f1a6d2.png)](https://gyazo.com/72ba2794dfb9f22a0bf43f0ab6f1a6d2)


左下に小さく
「Deploy Successfully 」と出たら成功
（分かりづらい）


##LINEの設定
最後に 
LINE の　Webhook アドレスを
https://{herokuのアプリケーション名}.herokuapp.com/{呼び出せれるパス}
に変える。
[![Image from Gyazo](https://i.gyazo.com/fd28da83a9a7b630eda425c111be02ff.png)](https://gyazo.com/fd28da83a9a7b630eda425c111be02ff)


## herokuをある程度常時稼働に

最後の最後に、
herokuの無料枠では30分何もアクセスがないとサーバーがスリープモードに入ってしまうらしいので、以下の処理を追加する。
（10分に１回起こす）

<font color="RED"><B>追記(2022.2.25)</B>
ただ、この方法でもHeroku の無料枠では、1か月1000dynoまでで、月の途中で制限がかかる可能性高い。
月額7ドルのHobby プランならスリープしないので、ガチのサービスでは最低Hobbyプランにアップグレードしたほうがいい。
※すいません。dyno の意味をよく分かってないです。</font>
<br>

Heroku にアクセスし、「Configure Add-ons」 をクリック

[![Image from Gyazo](https://i.gyazo.com/7fda69c7725004eec5b5184566685c5e.png)](https://gyazo.com/7fda69c7725004eec5b5184566685c5e)

[Heroku Schedular]をクリック
[![Image from Gyazo](https://i.gyazo.com/68a9c327f8a8bbb1b115a33cd219efe1.png)](https://gyazo.com/68a9c327f8a8bbb1b115a33cd219efe1)

Submit Order form
[![Image from Gyazo](https://i.gyazo.com/c1a9e17045c5864df8e19b3b5bdb67e8.png)](https://gyazo.com/c1a9e17045c5864df8e19b3b5bdb67e8)

追加された。
クリック
[![Image from Gyazo](https://i.gyazo.com/5e4f735243818ff9db3c516c8ae77e90.png)](https://gyazo.com/5e4f735243818ff9db3c516c8ae77e90)

Create Job
[![Image from Gyazo](https://i.gyazo.com/010f158027651df8ad8cf08887de6543.png)](https://gyazo.com/010f158027651df8ad8cf08887de6543)


以下画像の 
1 : Every 10minutes
2 : curl + このチャットボットのherokuアドレス（https://{アプリ名}.herokuapp.com ）

Save job

[![Image from Gyazo](https://i.gyazo.com/319899e120d0a373213e5a648d90fe3a.png)](https://gyazo.com/319899e120d0a373213e5a648d90fe3a)


これで、ある程度利用できます。

<br>




<br><br>
これで、heroku にenebular の環境が構築されましたので、次回からは、以下のようにheroku からenebular にアクセスしてください。

「Open App」
[![Image from Gyazo](https://i.gyazo.com/06312893d5c4ec06d6e0237e97d5b1bc.png)](https://gyazo.com/06312893d5c4ec06d6e0237e97d5b1bc)


enebular のログイン

<font color ="RED">ここのユーザ名、パスワードは、一番最初のherokuデプロイのときに設定したこのアプリのユーザ名、パスワードです。</font>
※結構ハマった

[![Image from Gyazo](https://i.gyazo.com/a31ab4801f47148b1add07120ac9a9ff.png)](https://gyazo.com/a31ab4801f47148b1add07120ac9a9ff)


enebular に繋がります。
もう、デプロイの左横の「i」の表記は無く、URLは固定され、落ち着いて開発できます。

この画面からデプロイすれば、変更内容が、即チャットボットに反映されます。

[![Image from Gyazo](https://i.gyazo.com/f80c77b3bb5729bd238a06d5f74fd451.png)](https://gyazo.com/f80c77b3bb5729bd238a06d5f74fd451)


以上です。