herokuでone-off dynoを利用してバッチを走らせる方法

rakeタスクを作らないで単純にメソッドを走らせたい、そしてメモリをたくさん使うアプリなのでsizeを変えてrails runner

$ heroku run:detached --size=standard-2x bundle exec rails runner Tasks::SomeTask.execute --app myapp

[AWS]リージョン間でkeypairをコピーする方法

Private keyからPublic keyを生成してそれをimportする。CLIでimportする方法もあるけど、リージョン数は10つぐらいなので手動で。

ssh-keygen  -y -f wazaterm.pem > wazaterm.pub

[Linux] シンプルなプロセス監視にはimmortalが便利

プロセスがなにかの理由で死んだら、単純にリスタートさせたい。けど、systemdとかmonitとかの設定ファイルを書くのが面倒だなって思っていて調べていた。シェル(Bash)でLoopでかけそうだけど、

until myserver; do
    echo "Server 'myserver' crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

Ref: Stackoverflow

これも面倒だと思ってしまいました。スクリプトの前にone command置く感じでやりたいなって調べてみると、immortalというツールを発見!早速インストール。

$ curl -s https://packagecloud.io/install/repositories/immortal/immortal/script.deb.sh | sudo bash
$ sudo apt-get install immortal

使い方もシンプルで

$ immortal /bin/sh -c "sleep 5 && date > /tmp/sleep.log"

付属のimmortalctlで、管理できる。

$ immortalctl                                
  PID     Up   Down   Name    CMD                                                                                      
22400   4.6s          22364   /bin/sh -c sleep 5 && date > /tmp/sleep.log 
$ immortalctl halt 22364  

RailsでGoogle+シャットダウンに伴うGoogle Sign-in対応

[Action Required] Google+ APIs and OAuth requests are being shutdown on March 7, 2019というメールが来ていた。会社でGoogle Sign-Inを使っているので、影響があるかどうか調べて、変更を行った。

まずは、APIコンソールで確認。

Google+ APIをある程度の頻度で叩いてるので、変更が必要と認識。

Sign-Inに使用しているのGemは、omniauth-google-oauth2でgithub issueを探ると最新バージョンではGoogle+ dependencyはないとのこと。したがって、さっそくバージョンアップグレード。

bundle update omniauth-google-oauth2

Gemfile.lockを確認すると最新バージョンが入っていない。jwtのバージョンが古いことに起因しているようだ。

 bundle update google-api-client

もうひとつサインインではないが、関係のありそうなgoogle-api-client(主にCalendar APIに利用)のバージョンを上げて、jwtが2.0以上になったことを確認。

もう一度、bundle update omniauth-google-oauth2で最新にするもうまくいってなさそうなので、Gemfileにバージョン指定。

gem "omniauth-google-oauth2", '~>0.6'

bundle installして最新のもになってのを確認。

問題の切り分けに新しいプロジェクトをconsole APIに作り、tokenなどを作成し、テスト後、問題がなかったので本番環境にデプロイした。

数時間後、APIコンソールでgoogle+を叩いていないことを確認し、Google+シャットダウンに伴うGoogle Sign-inの対応完了。

所感:Googleに振り回れるがつらい。Hangoutも消えそうな気がするし。。