ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

作成した Node.js スクリプトをサーバーレスな AWS Lambda で手軽に定期実行する

以前作成した映画情報取得用スクリプトのように

blog.honjala.net

定期的に実行したいスクリプトを作成した場合、

そのスクリプトをどこで動かすか、というのが悩みどころになる。

いくつか方法はあるのだけど、

ローカルのPCでタスクスケジューラなりcronなりで動かす方法は

無料だし手軽にできるけど、実行したい時間にPCを起動しておく必要がある。

さくらインターネット等のVPSを借りてcronで動かす方法は

費用はそんなに高くないけど、ファイアウォールの設定等

安心して使える環境を作るまでのハードルが結構高い。

一昔前はそこで頑張ってVPSを立てるか、諦めるかしかなかったのだけど、

今はそんな時のためのサーバーレス(=サーバ管理のいらない)なサービスが使える。

今回は AWS の AWS Lambda を使って、

作成したスクリプトを定期実行する環境を作ってみたい。

続きを読む

Node.jsでテレビの映画放映情報をWebスクレイピングしてSlackに通知する

最近素晴らしいことに家族内でSlackを使ってやりとりするようになった。

せっかくなので何かボット的なものを作ろう、ということで

昔Clojureで作った、

「映画情報をスクレイピングして通知する」スクリプトのNode.js版を作って、

定期的にSlackに通知するようにしてみたい。

blog.honjala.net

続きを読む

Windowsでタスクスケジューラを使用せずにnode.jsスクリプトを定期実行する

会社の自分のPC(Windows)で何かを定期的に実行したいときは

だいたいPythonなりnode.jsなりでスクリプトを書いて

タスクスケジューラに登録しておく。

のだけど、

タスクスケジューラは未ログイン時に実行しようとすると

ログインアカウントを登録しておく必要があったり、

パスワードを変更した時に更新を忘れて実行に失敗しまくってたり、

そのログイン失敗のせいで社内ネットワークから閉め出されちゃったり、

色々と困ることがある。

Linuxのcrondと同じような仕組みができないか、と探してみたら

「pm2」と「node-cron」の組み合わせで実現できそうだったので、試してみた。

続きを読む

Vue.js + SVG でブロック崩しゲーム(自動版)を作る

数当てゲーム、マインスイーパーに続き、Vue.jsでこども向けゲームを作る。

もう少し動きのあるゲームが作ってみたいので、

今回はボールが跳ね回るブロック崩しゲームに挑戦する。

これまでに作ったゲームは初期処理で何か答えを生成しておいて、

あとはユーザーのイベントに応じて処理を実行するだけだったのだけど、

ブロック崩しの場合はゲームがスタートしたら終始ボールが

動いている必要があるので、この仕組みから考えてみよう。

続きを読む

node.jsでWebスクレイピングして取得データを保存する

node.jsでデータ収集のためのWebスクレイピングを行う。

Webスクレイピングの流れというのはだいたい決まっていて、

  1. WebページにアクセスしてHTMLを取得する
  2. 取得したHTMLの中から必要なデータを抽出する
  3. 抽出したデータを保存する

の3段階となる。

続きを読む

node.jsでリモートのLinux環境やデータベースの操作を自動化する

ぼくが仕事でLinuxサーバ環境に接続して行う操作というのはだいたい決まっていて、

  • コマンドでサーバの状態を確認
  • ログをファイル出力してダウンロード
  • サービスの設定変更と再起動
  • SSHトンネル経由でDBアクセス

のうちどれかを行うことが多い。

基本は手作業だったり、シェルスクリプトを作って

実行したりする形で対応できるものなのだけど、

結構めんどくさいので、

今回はnode.jsでどこまで自動化できるかを試してみたい。

続きを読む