AWSを使おうと思って1年半くらいたちました。
……マジ?
AWS破産をしたくないのでとりあえずまずは監視ツールから作成です。
これがあるから破産しないという代物ではないんですけどね。
本編
AWSにサインアップ
当たり前だけどこれをやらなくてはいけません。
リージョン選択
安いところにしようかと思ったけど混乱しそうなので東京で統一で……
Budgets を作成する
予算を作成
IAMの利用を開始する
許可するポリシーフィルターの選択
Billing ポリシー
名前を付けてロールを作成
ロールのARNをコピー
DiscordのWebhook URLを取得
- チャンネルの編集
- 連携サービス
- 新しいウェブフック
- 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にしたさっきのファイルをアップロード
アクセス権限の設定
「設定」「アクセス権限」から設定。
実行ロールが想定したロールになっているか確認する。
なってなかったので死ぬほど時間がかかった。
EventBridgeでなんやかんやする
参考元のサイトを見ながらで、なんも苦戦しなかった気がする。
テストの実行
テンプレートオプションのhello-worldでテストの実行をした。
pytzとかのpip installとかよく分からなくなったので切り捨てたので確認。
参考
AWSでやらかしたので料金をWebhook(Discord)に通知できるようにした振り返り
AWS 料金を定期的に Slack に通知したい | CPU100%
describe_budget — Boto3 Docs 1.26.81 documentation
.zip ファイルアーカイブで Python Lambda 関数をデプロイする - AWS Lambda
AWS Lambda 環境変数の使用 - AWS Lambda
Schedule Expressions for Rules - Amazon CloudWatch Events
lambdaでエラー - Qiita
AWSの料金を毎日Slackに通知する - Qiita
python3.8でlambda-uploader使用した時にpython3.8が見つからないとエラーを吐かれた時の原因調査 - Qiita
LambdaでAWSの料金を毎日Slackに通知する(Python3) - Qiita