2019年11月26日火曜日

ngrokがURLを払い出していなかった!?

久しぶりにngrokをチェックしていたらhttpのURLが払い出されていないことが発覚した。そこで、example.jsのログ(~/pill-reminder/log/example*)を見てみると リスト1のようになっていた。

2019-11-20 12:26:53.814:     undefined/google-home-notifier
2019-11-20 12:26:53.814: GET example:
2019-11-20 12:26:53.815: curl -X GET undefined/google-home-notifier?text=Hello+Google+Home
2019-11-20 12:26:53.815: POST example:
2019-11-20 12:26:53.816: curl -X POST -d "text=Hello Google Home" undefined/google-home-notifier
2019-11-20 12:26:53.820: sendNgrokUrl(undefined/google-home-notifier)
2019-11-20 12:26:55.369: ****** sendNgrokUrl 成功 ******
2019-11-20 12:26:55.446: Google HomeのIPアドレス:
リスト1.example.jsのログ

なんと、11/20の時点でngrokはURLの払い出しに失敗していたのだ!
それに今日の今日まで気が付かなかった。設定ファイル(pill-reminder)も ngrokのURLが
undefined/google-home-notifier
のままになっている。おかしいな・・・。被験者宅に設置したときチェックしたはずなのに・・・。

foreverコマンドを入力してexample.jsをいったん止めて、再び起動した。ngrokダッシュボードではhttpのURLが表示されたが設定ファイルはundefinedのまま。example.jsのログを見てもちゃんとURLが払い出されているし・・・。そこで、もう一度exampleを停止してから起動。今度は最初からundefined。ngrokのダッシュボードで残っていたhttpのURLをクリックしてゾンビを消してから再びexample.jsを落として立ち上げると今度はうまくいった。ngrokのダッシュボードにも設定ファイルにもログにも払い出されたhttpのURLが出ている。

一体何が悪かったのだろう?
今回のトラブルを整理すると次のようになる。
  1. 被験者宅に機器を設定していた段階でngrokはhttpのURLを払い出していなかった
  2. したがって設定ファイルはundefinedのままだった(と思われる)
  3. それに気づいた今日、一度example.jsを落として再び立ち上げたが設定ファイルに反映されなかった
  4. 2度目の停止・立ち上げではundefinedのままだった
  5. ngrokダッシュボードでURLゾンビをけしてから3度目の停止・立ち上げを行うと今度はうまくいった
これはこれまでにも経験的に感じていたことだが、何かのタイミングでngrokがURLを払い出してくれないことがある。
その一つとしてngrokダッシュボードにゾンビが残っているケースがある。ダッシュボードからURLをクリックしてゾンビを消すと次からは払い出しがうまくいくような気がする。もしかして今回も第2クールの時のURLがゾンビとして残っていたのだろうか?それを見てうまく払い出されたと勘違いしていたのだろうか?
とにかくngrokは要注意である。





0 件のコメント:

コメントを投稿