demodulizeを知った(Rails)

ActiveSupportにあった。知らなかった。

> 'Foo::Bar'.demodulize
=> "Bar"

便利。

504 Gateway Time-out画面にならず真っ白になる(ELB&Nginx)

ELBにもタイムアウトがあって、そっちが効いちゃってた。
http://dev.classmethod.jp/cloud/aws/change-elb-timeout/

ELBからのヘルスチェックをRailsレイヤで返す

http://blog.tnantoka.com/posts/56
みたいにNginxで返してるとUnicornが落ちてもOutOfServiceになってくれない。

Nginxの設定を以下のように変更。

upstream example {
  server unix:/tmp/unicorn-example.socket;
}

server {
  listen 80 default_server;
  server_name _;

  location / {
    return 301 https://example.com$request_uri;
  }

  location = /healthcheck {
    proxy_pass http://example;
    break;
  }
}

Railsは/healthcheckokを返す。

class WelcomeController < ApplicationController
  # 認証とかSkipする。
  skip_before_action :foo, only: [:healthcheck]
  skip_before_action :bar, only: [:healthcheck]

   def healthcheck
    render plain: 'ok'
  end
end

ログが無駄にでるけど、返せなかった時にログあった方が楽なので、ひとまずこのままにしている。

GolangでAWSの課金額を取ってきてチャットワークに通知

https://github.com/tnantoka/awsaifu

GolangでSSL証明書の有効期限を取ってきてチャットワークに通知 - blog.tnantoka.com とほぼ同じ。なんかイマイチな感じしてきたのでリファクタリングしたい。

aws/aws-sdk-go · GitHubを使ったんだけど、Goに慣れてないのもあって、結構つまづいた。

https://github.com/mob-akiyama/sensu-plugins-go/blob/master/rds.go がめちゃくちゃ参考になった。ありがとうございます。

課金額の取得はこの辺りを参考にした。

GolangでSSL証明書の有効期限を取ってきてチャットワークに通知

最近なぜか学習欲が湧いており、いろいろ浮気しちゃってるけど、引き続きGoの練習中。

で、調度良い題材が降ってきたのでいつもならRubyで済ませるところをGoでやってみた。

まず、事前準備として、以前も使ったチャットワーク通知部分を別パッケージに分離した。
https://github.com/tnantoka/chatsworth

名前はチャギントンから借りた。響き似てるよね、チャットワークとチャッツワース。

本題の方はこちらに置いた。
https://github.com/tnantoka/notafter

復数サイトにアクセスする…これはgoroutineだ!channelだ!!ということで使ってみました。
ようやくGoらしいプログラムを書いた気分。

次はAWSのSDKを触ってみようと思っている。