自由帳

とりとめのない学習メモです。主に Web サービスのシステム基盤や運用に関することを書いています

AWSの請求情報をSlackに通知するLambda関数をGolangで書いてみた

Go を勉強しているので、AWSの請求情報をSlackに通知するLambda関数を Go で書いてみた。

事前準備

下記が必要。詳細は割愛する。

  • SlackのIncoming WebHookのURL生成
  • AWS SAM CLIのインストール
  • Goのインストール

コード

d-shimizu/NotifyAwsBillingToSlack に置いた。 コメントやインデントが整ってなかったりと些末なところでもなかなか汚いので追って直す。

SlackのIncoming WebHookのURLはパラメータストアのものを取得して呼び出すようにしているので、Incoming WebHookのURLを事前にパラメータストアへの登録しておく必要がある。 template.yamlには既存のAPI Gatewayの設定を削除して、IAMポリシーでssm:GetParameterの権限付与、Cloudwatch Eventsで所定の時間(ここでは9時)に実行されるような設定を追加する。

月額の料金に加えて、サービスごとの料金も通知するようにしている。

あとはデプロイすれば動くはず。

まとめ

Go を勉強の一貫で、AWSの請求情報をSlackに通知するLambda関数をGo で書いてみた。 構造体とポインタはまだ難しく感じる。