質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1278閲覧

Heroku 動作しない

raspypy

総合スコア247

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2020/09/07 00:48

編集2020/09/13 04:06

##今行っていること

1カ月前に動作確認した際、動いていたプログラムが急に動かなくなってしまいました。
原因が分からず困っております。

##プログラム内容
deployしたプログラムコードを掲載します。

##heroku log
heroku logs --tailで取得した情報は次のとおりです。
crashが発生しているのですが、今まで発生していませんでした。

text

12020-09-07T00:30:40.814943+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/callback" host=remote-plc.herokuapp.com request_id=1ce21cf8-616b-461e-a524-548ecba183b9 fwd="147.92.150.193" dyno= connect= service= status=503 bytes= protocol=https

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「正常に動いていたのが確認できて以降は、再度デプロイはしていない」という前提と認識します。
以下、クライアントに接続しているところがありますが、このコネクションは確立されていますでしょうか?
原因を切り分けるため、アプリケーションからの接続ではなく、別の方法(ブラウザからアクセスするなどして)でコネクションが確立されているかを確認してみてください。

Python

1client.username_pw_set("xxxxx", "hogehoge") 2client.connect("xxxxx.cloudmqtt.com", xxxxx)

確立されているなら、原因の心当たりがないため、以下を参考にして詳細ログを追うのもいいかもしれませんが、herokuのターミナル上に出ているものと変わりない気はします。

https://qiita.com/m-itoidcf/items/77d064147a32169b5449

投稿2020/09/07 03:16

ImPathy

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raspypy

2020/09/13 04:06 編集

回答ありがとうございます。 https://[アプリ名].herokuapp.com/callback にブラウザでアクセスしてみましたが、Application Errorと表示されてしまいます。
ImPathy

2020/09/07 04:28

すみません、少し伝え方が悪かったです。 "xxxxx.cloudmqtt.com"(pythonのコード上で接続を仕掛けに行っているクライアント)には、ブラウザ上からアクセスできますでしょうか?
raspypy

2020/09/07 06:14

次の方法で確認しました。 pythonのコードに記述している、次の部分を、ブラウザのurl入力部に貼り付けて開けるか確認。 "xxxxx.cloudmqtt.com" 結果は、『接続がタイムアウトしました』と表示されました。
ImPathy

2020/09/07 06:50

「クライアントに接続できるか」を確認したいから、 "xxxxx.cloudmqtt.com"(pythonのコード上で接続を仕掛けに行っているクライアント)には、ブラウザ上からアクセスできますでしょうか?"と聞きました。 "xxxxx.cloudmqtt.com”は本当に、実際に接続を仕掛けに行っているクライアントですか? 正しくは"tailor.cloudmqtt.com"ではないのですか?(貼り付けていただいたログの6行目には、そのようにドメインが表示されています)実際に接続を試みているクライアントへの確立ができているかを今一度ご確認ください。 また改めて確認しますが、最初の回答に 「正常に動いていたのが確認できて以降は、再度デプロイはしていない」という前提と認識します。」 と記載しました。つまり、正常に動いていたときからプログラムに一切変更を加えていないし、再度デプロイもしていない、という前提でよろしいですか? その前提が崩れる(=何かしらの変更を加えた)のであれば、その変更箇所が原因となっていることが考えられます。 今一度、状況を整理してみてください。「動かなくなった」ということは、その原因が必ずどこかにあります。それを特定するために、問題は切り分けて考えたいところです。
raspypy

2020/09/13 04:06 編集

「正常に動いていたのが確認できて以降は、再度デプロイはしていない」という前提と認識します。」 この認識に間違いはございません。
ImPathy

2020/09/07 08:19

>heroku ps:scale web=0 >heroku ps:scale web=1 を実行しても同じ (EAI_AGAIN)が表示されてしまいます。 再起動すらできないということですよね?一旦クライアント云々の話は忘れてください。 heroku restartも試してみていただけますか? それでも再起動ができないなら、branchをdeployした上で、heroku psを叩いてみてください。 いずれのコマンドを叩いた場合でも、実行結果ログは全て記載をお願い致します。
raspypy

2020/09/07 23:16 編集

今日 >heroku ps:scale web=0 >heroku ps:scale web=1 を実行したら、実行することができましたが、やはり再起動でエラーがでていました。 実行したコマンドとログを掲載しました。確認していただけると助かります。
raspypy

2020/09/07 23:16 編集

再起動に関する情報を以下に追加しました。
raspypy

2020/09/13 04:07 編集

エラーが発生しました。
ImPathy

2020/09/08 01:25

ありがとうございます。やはりクライアントへの接続が正常に行えていないような気がしますね。 以下コードをpythonの実行環境(heroku上ではなく、ご自身のローカルマシン上)で実行し、結果を教えていただけますか?"xxxxx"の部分は、実際の値と置換してください。connectに失敗した場合例外を拾って、コンソールにエラーログが吐かれると思います。私自身、mqttに明るくはないのでそこはご理解ください。 また、環境はwindowsでしょうか?いずれにしろ、tailor.cloudmqtt.comに対してnslookupが通るかどうかも試してみてください。 **************************** import paho.mqtt.client as mqtt client = mqtt.Client() # クラスのインスタンス(実体)の作成 client.tls_set("/etc/ssl/certs/ca-certificates.crt") client.username_pw_set("xxxxx", "hogehoge") # これがうまくいくかを確認したい client.connect("xxxxx.cloudmqtt.com", xxxxx)
raspypy

2020/09/13 04:07 編集

こちらこそコメントありがとうございます。 ローカル環境でも試してみました。(以下、python3で確認した結果です。)
ImPathy

2020/09/08 02:02

ちょっと待ってください。 ローカル環境、つまりherokuプラットフォームとは全く関係がないところで実行しても同様のエラーが出る、ということは、pythonのアプリケーション自体に問題があるということになりますよ? プラットフォームを乗り換えようとするのは結構ですが、まずはアプリケーションでなぜ当該エラーが出ているのかを究明するのが先ではないでしょうか。 先ほどもお伝えしましたが私自身はcloudmqttに明るくないため恐縮ですが、恐らくインスタンスを立ててそのインスタンスに接続を仕掛けているようなイメージでしょうか?であればそのインスタンスが正しく接続できる状態かどうかを調べる術はありますか?
raspypy

2020/09/13 04:07 編集

heroku側にあるのではと考えていますが、間違えていますでしょうか。
ImPathy

2020/09/08 05:04

>ローカル環境で動作させても、クラウド上(Heroku)で動作させても、同じエラーとなります。 >⇒(client.connect("xxxxx.cloudmqtt.com", xxxxx)に接続できない。 >ということは、アプリケーションではなく、接続できないことが問題だと捉えています。 ここまで、私と認識は一致しています。つまり、アプリケーション側の実装に依存しないエラーであるということです。 >そして、接続できない原因が、heroku側にあるのではと考えていますが、間違えていますでしょうか。 ⇒ローカル環境で実行しても同様のエラーで接続できないのであれば、その原因がherokuに依存しないことは明白なのでは?そもそも、ローカル環境で実行するときはherokuは一切関係ないと思うのですが・・・ また、先ほどの質問へのレスポンスも頂きたいです。 >先ほどもお伝えしましたが私自身はcloudmqttに明るくないため恐縮ですが、恐らくインスタンスを立ててそのインスタンスに接続を仕掛けているようなイメージでしょうか?であればそのインスタンスが正しく接続できる状態かどうかを調べる術はありますか?
raspypy

2020/09/08 05:53

>先ほどもお伝えしましたが私自身はcloudmqttに明るくないため恐縮ですが、恐らくインスタンスを立ててそのインスタンスに接続を仕掛けているようなイメージでしょうか?であればそのインスタンスが正しく接続できる状態かどうかを調べる術はありますか? こちらの回答になるか分かりませんが、 CloudMQTTなし(ただのLINE BOTプログラム)でも試してみましたが、同じエラー(H10)となってしまいました。
ImPathy

2020/09/08 07:29 編集

>CloudMQTTなし(ただのLINE BOTプログラム)でも試してみましたが、同じエラー(H10)となってしまいました。 原因箇所が絞れてきましたね。では、そのLINEBOTのみのプログラムで、デバッグで1行1行ステップして、どの行でエラーを吐くか確認してみてください。エラーになった行を教えていただけますか?
raspypy

2020/09/08 07:38

少し時間をください。長い間お付き合いありがとうございます。
raspypy

2020/09/12 14:34

根本原因はわかりませんが、私のアカウント(アプリ)が使えないようです。 突然このようになったのはよく分かりませんが、別のアカウントを新たに作成し、同じプログラム(もちろんMQTTの情報も更新)をデプロイすると、動きました。 ちょっとHerokuは使うのをやめようかなと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問