NI+CのSoftLayerエンジニアの常田です。

弊社のSoftLayerチームでは検証環境としてある程度自由に検証を実施しています。
とは言え、予算はあるためたまに請求金額を目視しているのですが忘れがちです。

今回は、知らず知らずのうちに使ってしまっているSoftLayerの費用を把握しましょう。
SoftLayerの来月の請求金額(Next Invoice)をAPIを使って取得してその値を Slack に送ります。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import SoftLayer
import subprocess

client = SoftLayer.Client()

# 翌月の請求額の取得
nextInvoice = client['SoftLayer_Account'].getNextInvoiceTotalAmount()

strings = u"昨日までのSoftLayerの利用費."
strings += u"Next Invoice: $" 
strings += str(nextInvoice)
strings += u" "
strings += u"ご確認をよろしくお願いします"

option = u'{"channel": "#chatopts", "username": "billing", "text":"' 
option += strings
option += u'", "icon_emoji": ":credit_card:"}'

cmd = "curl -X POST --data-urlencode 'payload=" + option + "' https://hooks.slack.com/services/xxxxxxxx"

subprocess.call (cmd, shell=True)
  • slack側はIncoming WebHockを利用しています。
  • 面倒だったので subprocess を利用しましたが pycurl とか使ったほうがスマートかも知れません。
  • 細かいこと言えば他にも有ると思うのですが NextInvoiceTotalAmount を利用しました。

実際に通知されれると下の図の様な感じで通知されます。これで確認をしておけば対応できることも有るかもしれません。

NewImage

参考

この記事は以下のエントリーに触発されて書きました。