した直方体スマートフォン用の表示で見るぷるぷるした直方体エンジニアの雑記です。2018年版、無料でWebサイトの定期操作スクリプトを動かす2018-06-162018年版、無料でWebサイトの定期操作スクリプトを動かすdevelopment古来よりある「Webサイトを定期的にポチポチしたい」というニーズ。私も昔herokuで作った記憶がありますが、最近また需要がゴキのように湧いて出てきました。奴らは忘れた頃にやってきます。以前ツールを作った時からかなり時間が経ち、より便利なサービスが出ているはずです。そこで、2018年現在の「できるだけ安くWebサイトを定期的にポチポチするスクリプトを動かす」方法を調べてみました。Lambdaherokuピタゴラスイッチ言語インフラ環境構築・コーディングローカル環境で動作確認したい新しいタブで開きたいHerokuのセットアップRubocopまとめ要件の洗い出しまずは要件を整理します。一日一回、Webサイトにログインしてクリックなどの単純な操作をする操作は長くとも5分で終わるクレデンシャルはデプロイ時に設定できれば十分ユーザー認証を付けてスクリプト側で管理する必要はない他人が勝手に実行できないランニングコストをなるべく安くしたい非常にシンプルですね。お金がかからず、簡単な方法があれば最適です。以下の理由から、インフラから考えるのが妥当でしょう。常時実行で安いか、5分だけ実行で定期実行に対応しているか、に絞って探せる2018年現在、このような要件を満たすインフラは多くあります。その中でも無料で使えそうなサービスをいくつか考えてみます。Environment簡単にcronが設定でき、デプロイも簡単です。バックグラウンド実行は9時間/月まで無料なので、お金も掛からなさそうです。LambdaCloudWatchと組み合わせてcronのような定期実行が可能です。100万回/月の呼び出しまで無料です。実行の制限時間が5分ちょうどなので、少し怪しそうです。heroku古参ですが、未だに極めて実用的です(すごい)。add-onもタダです。ピタゴラスイッチこれは特定のサービスではなく、様々な小さな処理を組み合わせてピタゴラスイッチ的に目的を達成する闇の手法を指します。家の扉が開いたのをトリガーとしてIFTTTを経由しcurlを叩く......などなど。遊びでやるには楽しいですが、3日経つとメンテ出来なくなりそうなので今回は却下です。選択肢はいくつかありますが、枯れ具合はherokuが一番良さそうですし、無料枠も十分にあります。今回の目的に一番適っていると考え、結局またherokuにしました。言語herokuが対応している言語はいくつかありますが、herokuの対応、Seleniumの扱いと書きやすさのバランスを取ってrubyに決定しました。インフラ環境構築・コーディングと、大層な見出しを付けましたが、herokuなので一瞬です。Chrome)を使うのにいくつか追加で設定が必要ですが、下記記事にまとまっている通りなので従えば完了です。katsulog.techこれだけだとあまりに寂しいので、コーディングの小ネタを少しだけ書いておきます。ローカル環境で動作確認したい本番はHeadlessモードですが、開発中は実際に動いているところを確認したいです。これは簡単に実現でき、テスト用の環境変数が設定されていればただのChromeで、されていなければHeadlessで起動するようにするだけでOKです。endend新しいタブで開きたいSeleniumが提供していない機能なので、無理やり書き換える必要があります。下記StackOverflowの投稿を参考にすると実現できます。stackoverflow.comHerokuのセットアップgitリポジトリを今回のHeroku環境に対応させるのは、以下のようなコマンド列で簡単にできます。schedulerRubocopかけよう。まとめ未だにherokuが目的に適うことに驚きました。GCPやAWSで同じことができても、「オッさすが大企業だな」と思うだけですが、こう長く無料のままだと不安になってきます。知見はありませんが、何かの参考になれば幸いです。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。