AWSでPythonを定期実行しようとした話

システム開発 学習記録


AWSでPythonを定期実行

ここ最近、Twitterを運用するよりもTwitterのシステムを作ることにハマってしまったしばっちですが、やっとアプリケーションが完成し、クラウド上で実行するところまで来ました。

しかし、アプリケーションが完成してはや2週間、まだクラウド上で実行ができておりません。

  1. Xサーバーで実戦
  2. Herokuで実戦
  3. AWSのLambdaで実戦

議事録として、何で失敗したのかをここに記載しておきます。

Xサーバーで実戦→ssh接続ができずに、そもそもpython環境を作れなかった(エラーの原因は不明・・・)

Herokuで実戦→Herokuがなんなのかがよくわからず、諦めた(笑)

AWSのLambdaで実戦→デプロイは完了するものの、pythonとnumpyのバージョンエラーでテストが実施できずに挫折(同様のエラーが起きている方はネット上にいたのですが、知識不足のため解決策の理解ができなかった)

これらはことごとく失敗し、ちょっと前に学んだEC2上でPythonを実行し、それをcronを用いて定期実行してみることにしました。

簡易プログラムであれば、ネット上に転がっている情報で実行はできたものの、今回のアプリケーションが「Twitterと連携」「スプレッドシートと連携」など複雑なことをしているので、今「モジュールエラー」というわけわからない部分で止まっています。

cronを利用せずにアプリケーションを正常に動かすことができているため、モジュールのインストールは完了している。

考えられるのは、めんどくさくて対応しなかった「pyenv」なる仮想環境が原因なのではと仮説を立てた。

とりあえず今日はここまで進んだので、明日の自分に期待をし、今から新規事業のコンテンツ作成をしていこうと思います。

※今までの経験上、明日には定期実行を問題なくできそうな予感が満載です(笑)

20220224追記

Pythonの仮想実行環境を作成し、実行環境をルート上から変更したところ、無事自動でPythonの実行ができるようになりました。

アプリケーションの定期実行はできたのですが、Twitterとの連携ができておらず、ssh上で直接実行した場合はうまくいくのに、cron上ではTwitterに反映されない。

理由がわからないのですが、またさらに明日の自分に期待して、別の仕事を進めていこうと思います。