GAS (Google Apps Scripts)を使ってドメインやSSL証明書の失効にたいして、なんとかしてみます。
GASとは
Google Apps Scripts とは、要はGoogle Apps版のVBAです。ですが、VBAと違うところは、Googleのサーバーで実行されるという点です。この点と、時間で実行(Cronみたいなもの)が出来ます。つまり、定期実行のためだけにいちいちサーバを建てたり、そのあとのお守りとかいらないという、クール!
経緯
もともと統合監視ツールであるzabbixとかでやろうと思ってましたが、SSL証明書はいいのですが、ドメインが結構たいへんです。whoisを使えばいいのはわかるのですが、各国のレジストラがバラバラでwhoisを設定しているせいか、whois取得ライブラリが各LL言語あるものの、お名前.comはたいてい対応していません(RFCとかないのかね?)。この程度の瑣末な話しなら、モンキーパッチでなんとでもなるのですが、それすらダルいと思った。
GASでやるメリット
- 設定が楽、非エンジニアでもできる
- サーバにログインして設定するより、スプレッドシートのほうが楽で、一目瞭然
もちろんスプレッドシートをご操作で全消しされたらOutですが、まあメリットのほうが大きいかと。全消しからのデータ復元は、ファイル -> 変更履歴を表示から戻せるし、GAS側でチェックを入れることも可能
で、こんなかんじに
コードはgistに置きました。なんのヒネリもないしょうもないプログラムです。
画面はこんな感じ
- C列: 失効日
- E列: メアド、カンマ区切り
- F列: 計算式 =rounddown(<対象Cell>-NOW())
他の列はプログラム上の意味はありません。
定時実行のトリガーを設定
ここがGASのいいところ、サーバ実行なので、定時実行が出来ます。スクリプトエディタの画面から、下記の時計っぽいアイコンをクリック。 あとは実行する関数を指定して終わり。
注意!とりあえず1回メール飛ばしといて!
GASは他サービスへ連携する時に必ず認証が必要だと言ってきます。この場合GASでスプレッドシートを動かす認証と、GASからメールを飛ばす認証の2つが聞かれるので、わざと期限切れにして、1回メールを飛ばす必要があるはずです。
GASの時間実行について
開始の時間は1時間単位までしか指定できないので、実際にGASが走る分単位まで指定出来ません。また、GASの処理速度もGoogleのサーバの機嫌次第で早くなったり遅くなったりします。その点は考慮の上、GASを使いましょう。
また、時間実行で失敗やエラーメッセージが出た場合は、すぐではないですが、こういう理由でコケましたというメールが飛んできます。ここは関心しました、エライ!