はじめに
2年ほど前(2022.5 頃)にpythonで作成し、Render.comにデプロイしたスクレイピングアプリを、久しぶりに見直して少しいじった際、正常にデプロイできなくて困った時の話です。
正直、ほんの少しコードをいじった(スクレイピングで抽出するテキストの条件指定を変えた)だけで大きな仕様変更もなく、認証情報も変更なかったのになぜエラーになるのか分かりませんでしたが、丁寧にドキュメントを読んだら普通に対処できたので、その記録の意味で記事を書きます。
何をしていたか ー 前提条件
Pythonと種々のライブラリを使用して、特定の新聞社の公式サイトから毎日、特定URLの記事をスクレイピングしてLINE Messaging APIを介して自分のLINEアカウントへ送信していました。
今回のエラーと使用言語等は無関係でしたので詳細は割愛します。
あらかじめRender.comでUpdate Repositoryとして設定したGitHubのリポジトリにPushすれば、自動でデプロイされるようになっていました。
エラーの内容
問題のエラーは、GitHubのリモートリポジトリにPush後、連携している Render.comにて自動デプロイされる段階で起こっていました。(GitHubには正常にPushできていました。)
デプロイ時にRender.com の Dashboard > Events にはデプロイの結果等が表示されますが、以下のようなメッセージが...
Exited with status 1 because of an internal system error. Our team has been notified.
こういう時、英語が読めるとかっこいい( 便利 )ですけど、わからないのでGoogleレンズで読みました 笑
内部エラーのため、ステータス1で終了しました。私たちのチームに通知されました。
だそうです。
結論から
Googleで適当に検索したんですが、いろんな記事に惑わされました。
基本に立ち返って、ちゃんとドキュメントを読むことに。
GitHubへのPushは正常でしたので、GitHubとRender.comの連携時の問題だと考え、「Connect GitHub」の項目内を探すと、トラブル時の対応についての記載を発見。
GitHub デプロイが期待どおりに動作しない場合は、Render の GitHub アプリの構成ミスが原因である可能性があります。たとえば、間違ったリポジトリのセットに対して構成されているか、以前はパブリックだったリポジトリがプライベートになっている可能性があります。
https://docs.render.com/github#troubleshooting
と、ここでリポジトリがプライベートになっていることを思い出しました。
物は試しでリポジトリのvisibilityをPrivateからPublicへ変更。
その後、手動で再デプロイしたところ正常にデプロイできました。めでたしです✨
余談
ただ、以前デプロイした時もリポジトリはPrivateだったはずなので、もしかしたらRender側で仕様変更があったのかもしれません(未確認)。
まあ、ちゃんとドキュメントを読んで対処することの大切さを改めて確認できました。
ちなみに、リポジトリをPublicにするにあたって、認証情報の環境変数への移行やコード全体の見直しをする機会にもなりました。
個人で使う小さなプログラムですが、公開することで人目を意識してプログラミングをするようになるので、自分にとってもためになったと思います。
最後に
知識共有として、GitHubリポジトリのvisibility変更手順を載せます。
-
現在Publicになっている場合は、
Change to Private
というボタン、現在Privateになっている場合はChange to Public
というボタンがさらに表示され、それをクリックして画面を進める
以上の手順で変更できました。UIは記事作成時のものなのでご注意を。
DangerZoneなんて書いてあるので、ぱっと見怖いですね。重要な項目なので間違って操作しないようにとの配慮なのでしょうか。
段階的に確認画面が出ますので、必要に応じて触ってみればいいと思います。
参考