AWSの料金をDiscordに送信するやつ

AWSを使おうと思って1年半くらいたちました。
……マジ?

AWS破産をしたくないのでとりあえずまずは監視ツールから作成です。
これがあるから破産しないという代物ではないんですけどね。

本編

AWSにサインアップ

当たり前だけどこれをやらなくてはいけません。

リージョン選択

安いところにしようかと思ったけど混乱しそうなので東京で統一で……

Budgets を作成する

予算を作成
多分この「予算を作成」に変わったのかな?

IAMの利用を開始する

新しくロールを作成
  1. 信頼されたエンティティタブの中に「AWSのサービス」
  2. ユースケースの中に「Lambda」を選ぶ
許可するポリシーフィルターの選択

Billing ポリシー

名前を付けてロールを作成

ロールのARNをコピー

DiscordのWebhook URLを取得

  1. チャンネルの編集
  2. 連携サービス
  3. 新しいウェブフック
  4. Webhook URLをコピー

lambda.jsonの書き換え

  • runtimeをpython3.7に
  • regionを"ap-northeast-1"に
  • roleと"variables"下、accountId, WebhookURL, budgetNameを書き換え

↑これがどこまで有効だったのかよく分からない。

lambda_function.pyの書き換え

datetime.date.strftime()って3.7で動いたっけ

AWS Lambdaに戻って関数の作成

からのzipにしたさっきのファイルをアップロード

環境変数の設定

「設定」「環境変数」にあった
WebhookURLとかいろいろを置いておく

アクセス権限の設定

「設定」「アクセス権限」から設定。
実行ロールが想定したロールになっているか確認する。
なってなかったので死ぬほど時間がかかった。

EventBridgeでなんやかんやする

参考元のサイトを見ながらで、なんも苦戦しなかった気がする。

テストの実行

テンプレートオプションのhello-worldでテストの実行をした。
pytzとかのpip installとかよく分からなくなったので切り捨てたので確認。